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:
- Siapkan layanan email berbasis SMTP untuk mendapatkan kredensial SMTP Anda.
- Verifikasi identitas pengirim Anda untuk melakukan autentikasi dengan domain atau alamat email Anda.
- Konfigurasi file sumber dengan kredensial SMTP dan metode pengiriman, lalu deploy aplikasi Anda.
- 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.netatauexample.mailjet.com.Port: Nomor port untuk koneksi. Misalnya,
587untuk 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:
- Login ke layanan penyedia DNS Anda.
- Buka halaman pengelolaan DNS untuk domain Anda.
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:
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.txtTambahkan kode berikut di file
app.yamlAnda 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.netatauexample.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 setelanAPPENGINE_ADMIN_EMAIL_RECIPIENTS.
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:
- Picu bagian aplikasi Anda yang mengirim email.
- Periksa Logs Explorer untuk memastikan tidak ada error terkait panggilan API atau upaya koneksi SMTP.
- 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.