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 mengupdate App Engine SDK ke versi terbaru:

    # Ensure your virtual environment is active
    pip install --upgrade appengine-python-standard
    # Save the new version to your requirements file
    pip freeze > requirements.txt
    
  2. Tambahkan kode berikut di file app.yaml Anda untuk beralih ke layanan SMTP:

    runtime: RUNTIME  # a supported python version
    
    env_variables:
      # Enable the SMTP service.
      APPENGINE_USE_SMTP_MAIL_SERVICE: "true"
    
      # --- SMTP Server Configuration ---
      # The server address from your mail provider
      APPENGINE_SMTP_HOST: "SMTP_HOST"
    
      # The recommended port for TLS connections
      APPENGINE_SMTP_PORT: "587"
    
      # The username for your SMTP login
      APPENGINE_SMTP_USER: "SMTP_USER"
    
      # The API key or password
      APPENGINE_SMTP_PASSWORD: "SMTP_PASSWORD"
    
      # Use TLS for a secure connection
      APPENGINE_SMTP_USE_TLS: "true"
    
      # --- For sending emails to Admins ---
      # A comma-separated list of admin email addresses.
      # This is required if you use the send_mail_to_admins() function.
      APPENGINE_ADMIN_EMAIL_RECIPIENTS: "admin@example.com,another-admin@example.com"
    

    Ganti kode berikut:

    • RUNTIME: versi runtime Python 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 app.yaml.
    • Jika Anda tidak menggunakan fungsi send_mail_to_admins(), hapus setelan APPENGINE_ADMIN_EMAIL_RECIPIENTS.
  3. Jalankan perintah berikut untuk men-deploy aplikasi Anda:

    gcloud app 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