Bermigrasi dari App Engine Mail API ke layanan berbasis SMTP

Untuk meningkatkan keamanan email dan memastikan pengiriman email bervolume tinggi yang andal, lakukan migrasi dari Mail API lama ke layanan penyedia email pihak ketiga standar yang menggunakan Simple Mail Transfer Protocol (SMTP), seperti SendGrid, Mailgun, atau Mailjet.

Panduan ini menjelaskan proses migrasi layanan email keluar dari Mail API ke layanan email berbasis SMTP. Anda dapat menerapkan petunjuk ini untuk bermigrasi ke penyedia email pihak ketiga berbasis SMTP, atau menggunakan runtime yang didukung lainnya. Panduan ini tidak memberikan langkah-langkah untuk memigrasikan pesan masuk yang menggunakan alternatif pihak ketiga.

Standar SMTP menawarkan manfaat berikut dibandingkan dengan Mail API App Engine lama:

  • Layanan berbasis SMTP memberikan pengiriman email yang lebih baik dengan mengurangi kemungkinan email ditandai sebagai spam.

  • Dengan layanan berbasis SMTP, Anda dapat mengakses laporan analisis mendetail tentang pembukaan, klik, dan pantulan email. Laporan ini memberikan informasi berguna tentang cara pengguna berinteraksi dengan email Anda.

  • Anda memiliki kontrol penuh atas reputasi pengirim dan autentikasi email Anda.

  • Peningkatan batas pengiriman harian dibandingkan dengan Mail API lama dengan akses ke fitur lanjutan seperti pengujian A/B, segmentasi, dan pembuatan template.

Ringkasan proses migrasi

Proses migrasi mencakup langkah-langkah berikut:

  1. Siapkan layanan email berbasis SMTP untuk mendapatkan kredensial SMTP Anda.
  2. Verifikasi identitas pengirim Anda untuk melakukan autentikasi dengan domain atau alamat email Anda.
  3. Konfigurasi file sumber dengan kredensial SMTP dan metode pengiriman, lalu deploy aplikasi Anda.
  4. Uji aplikasi Anda untuk memeriksa fungsi email Anda.

Menyiapkan layanan email berbasis SMTP

Siapkan akun dengan penyedia email pihak ketiga standar yang menggunakan SMTP, seperti SendGrid, Mailgun, atau Mailjet, lalu ambil informasi berikut dari penyedia yang Anda pilih:

  • Host SMTP: Alamat server SMTP yang digunakan untuk mengirim email. Misalnya, smtp.sendgrid.net atau example.mailjet.com.

  • Port: Nomor port untuk koneksi. Misalnya, 587 untuk enkripsi TLS.

  • Nama pengguna: Nama pengguna login SMTP akun Anda.

  • Sandi atau Kunci API: Sandi akun Anda atau kunci API, yang berfungsi sebagai sandi untuk koneksi SMTP. Untuk beberapa penyedia seperti SendGrid, nama pengguna adalah nilai tetap seperti apikey, dan kunci API digunakan sebagai sandi.

Verifikasi identitas pengirim Anda

Untuk mencegah spam, semua layanan email mengharuskan Anda memverifikasi bahwa Anda adalah pemilik alamat email atau domain yang Anda gunakan untuk mengirim email. Langkah ini sering kali melibatkan penambahan detail DNS tertentu, seperti data CNAME ke halaman pengelolaan DNS host domain Anda.

Ikuti petunjuk penyedia Anda untuk memverifikasi identitas pengirim sebelum melanjutkan konfigurasi aplikasi.

Untuk menambahkan data DNS ke host domain, ikuti langkah-langkah berikut:

  1. Login ke layanan penyedia DNS Anda.
  2. Buka halaman pengelolaan DNS untuk domain Anda.
  3. Tambahkan data CNAME persis seperti yang diberikan oleh penyedia layanan email Anda. Untuk setiap data, lakukan hal berikut:

    • Di kolom Name atau Host, masukkan detail host.
    • Di kolom Poin atau Nilai, masukkan nilai.

Perubahan DNS mungkin memerlukan waktu beberapa jam untuk aktif. Jika verifikasi Anda gagal, tunggu beberapa saat, lalu coba lagi.

Mengonfigurasi file sumber

Untuk menyertakan fungsi SMTP, ikuti langkah-langkah berikut:

  1. Jalankan perintah berikut untuk menginstal Maven:

    sudo apt install maven
    
  2. Tambahkan kode berikut di file pom.xml Anda untuk beralih ke layanan SMTP:

    1. Tambahkan versi untuk dependensi appengine-api-1.0-sdk:

       <dependency>
         <groupId>com.google.appengine</groupId>
         <artifactId>appengine-api-1.0-sdk</artifactId>
         <version>2.0.38</version>
       </dependency>
      
    2. Perbarui project ID Anda:

        <configuration>
          <deploy.projectId>PROJECT-ID</deploy.projectId>
          <deploy.version>1</deploy.version>
        </configuration>
      

      Ganti PROJECT-ID dengan project ID Google Cloud Anda.

  3. Tambahkan variabel lingkungan berikut dalam file appengine-web.xml Anda untuk menyertakan konfigurasi pengirim SMTP Anda:

    ...
    <runtime>RUNTIME</runtime>
    <service>default</service>
    <threadsafe>true</threadsafe>
    <app-engine-apis>true</app-engine-apis>
    <env-variables>
    <!-- This is the master switch to enable the SMTP service.-->
    <env-var name="APPENGINE_USE_SMTP_MAIL_SERVICE" value="true" />
    <!-- SMTP Server Configuration -->
    <!-- The server address from your mail provider.-->
    <env-var name="APPENGINE_SMTP_HOST" value="SMTP_HOST" />
    <!-- The recommended port for TLS connections. -->
    <env-var name="APPENGINE_SMTP_PORT" value="587" />
    <!-- The username for your SMTP login. -->
    <env-var name="APPENGINE_SMTP_USER" value="SMTP_USER" />
    <!-- The API key or password -->
    <env-var name="APPENGINE_SMTP_PASSWORD" value="SMTP_PASSWORD" />
    <!--  Use TLS for a secure connection. -->
    <env-var name="APPENGINE_SMTP_USE_TLS" value="true" />
    </env-variables>
    ...
    </appengine-web-app>
    

    Ganti kode berikut:

    • RUNTIME: versi runtime Java yang didukung.
    • SMTP_HOST: alamat host SMTP. Misalnya, smtp.sendgrid.net atau example.mailjet.com.
    • SMTP_USER: nama pengguna login SMTP akun Anda. Contoh, apiKey.
    • SMTP_PASSWORD: sandi atau kunci API yang Anda peroleh dari penyedia email pihak ketiga. Untuk meningkatkan keamanan, sebaiknya gunakan Secret Manager untuk menyimpan kunci API Anda, bukan menempatkannya di file appengine-web.xml.
  4. Jalankan perintah berikut untuk men-deploy aplikasi Anda:

    mvn package appengine:deploy
    

Menguji aplikasi Anda

Migrasi berhasil jika Anda dapat men-deploy aplikasi tanpa error. Untuk memastikan bahwa layanan email Anda berfungsi, ikuti langkah-langkah berikut:

  1. Picu bagian aplikasi Anda yang mengirim email.
  2. Periksa Logs Explorer untuk memastikan tidak ada error terkait panggilan API atau upaya koneksi SMTP.
  3. Login ke akun penyedia email pihak ketiga Anda (misalnya, Mailgun, Mailjet, SendGrid) dan periksa Feed Aktivitas, Log, atau Dasbor Pengiriman mereka. Email pengujian Anda akan muncul di feed dengan status pengiriman yang ditandai sebagai Processed, Delivered, atau serupa.

Langkah berikutnya