Bermigrasi dari App Engine Mail API ke layanan berbasis SMTP

Untuk meningkatkan keamanan email dan memastikan pengiriman email bervolume tinggi yang andal, migrasikan 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 lain yang didukung. 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.

  • Batas pengiriman harian yang lebih tinggi 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 Anda dengan kredensial SMTP dan metode pengiriman Anda, 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, dan 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 bertindak sebagai sandi untuk koneksi SMTP. Untuk beberapa penyedia seperti SendGrid, nama pengguna adalah nilai tetap seperti apikey, dan kunci API digunakan sebagai sandi.

Memverifikasi 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 Anda sebelum melanjutkan konfigurasi aplikasi.

Untuk menambahkan data DNS ke host domain Anda, 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 Nama atau Host, masukkan detail host.
    • Di kolom Poin atau Nilai, masukkan nilai.

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

Mengonfigurasi file sumber Anda

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>5.0.0</version>
       </dependency>
      
    2. Update project ID Anda:

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

      Ganti PROJECT-ID dengan Google Cloud project IDAnda.

  3. Tambahkan variabel lingkungan berikut di 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. Misalnya, apiKey.
    • SMTP_PASSWORD: sandi atau kunci API yang Anda dapatkan dari penyedia email pihak ketiga Anda. 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 Anda tanpa error. Untuk memverifikasi 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