Panduan ini menjelaskan cara menggunakan Mail API untuk menerima email.
Pesan email yang dikirim ke aplikasi Anda diimplementasikan sebagai permintaan HTTP yang berisi data MIME. Untuk memproses pesan email masuk, kaitkan alamat email dengan pengendali skrip di konfigurasi aplikasi Anda, lalu sertakan pengendali dalam kode aplikasi Anda.
Email masuk menghasilkan permintaan HTTP, yang diteruskan ke skrip yang sesuai. Skrip yang menangani email masuk harus berada di layanan default Anda.
Untuk informasi selengkapnya tentang layanan Mail, lihat Ringkasan Mail API.
Sebelum memulai
Anda harus mendaftarkan email pengirim sebagai pengirim yang sah. Untuk mengetahui informasi selengkapnya, lihat siapa yang dapat mengirim email.
Mengonfigurasi aplikasi Anda untuk menerima email
Ketika Anda membuat aplikasi baru, email masuk dinonaktifkan secara default. Untuk mengaktifkan email masuk, Anda harus mengubah file app.yaml
di layanan default.
Tambahkan bagian
inbound_services
yang mengaktifkan layanan email masuk. Contoh:Jika Anda tidak mengaktifkan email masuk dengan menyertakan bagian ini dalam file konfigurasi, email masuk akan dinonaktifkan, dan pesan email yang dikirim ke aplikasi akan diabaikan.
Tambahkan pemetaan yang mengaitkan alamat email yang dipetakan URL dengan pengendali skrip.
Untuk layanan default, alamat email untuk menerima email memiliki format berikut:
[STRING]@[Google Cloud project ID].appspotmail.com
Untuk layanan non-default, alamat email memiliki format berikut:
[STRING]@[servicename]-dot-[Google Cloud project ID].appspotmail.com
Pesan email dikirim ke aplikasi Anda sebagai permintaan POST HTTP menggunakan URL berikut, dengan [ADDRESS] sebagai alamat email lengkap, termasuk nama domain:
/_ah/mail/[ADDRESS]
Untuk menangani email masuk di aplikasi Anda, petakan URL email ke pengendali di file
app.yaml
:Pada contoh di atas,
/_ah/mail/.+
cocok dengan semua email yang dialamatkan ke aplikasi. Jika ingin, Anda dapat menyiapkan beberapa pengendali untuk alamat email yang berbeda, seperti pada contoh berikut:URL pesan email masuk dicocokkan dengan daftar ini dari awal hingga akhir. Jadi, jika URL pesan email cocok dengan lebih dari satu pola, pengendali pertama yang cocok akan dieksekusi. Dengan begitu, Anda dapat menyertakan pengendali "catchall" sebagai pemetaan terakhir. Pengendali berjalan dalam modul default (atau versi aplikasi).
Menangani email masuk
Saat menggunakan framework web Python, konstruktor InboundEmailMessage
menggunakan
byte isi permintaan HTTP. Ada beberapa cara untuk membuat
objek InboundEmailMessage
di Python. Di Flask, request.get_data()
memberikan byte permintaan.
Objek InboundEmailMessage
berisi pesan email. Metode bodies()
menampilkan isi dalam pesan. Jika Anda memanggil bodies()
tanpa argumen, metode ini akan menampilkan iterator yang menghasilkan isi HTML terlebih dahulu, lalu isi teks biasa. Jika hanya menginginkan HTML atau teks biasa,
Anda dapat meneruskan argumen ke bodies()
:
Objek InboundEmailMessage
menyertakan atribut untuk mengakses kolom pesan lainnya:
subject
berisi subjek pesan.sender
adalah alamat pengirim, misalnya"Nobody <nobody@example.com>"
to
adalah daftar penerima utama pesan yang dipisahkan koma, misalnya"Joe <joe@example.com>, Bill <bill@example.com>"
.cc
berisi daftar penerima Cc yang dipisahkan koma, misalnya"Joe <joe@example.com>, Bill <bill@example.com>"
.date
menampilkan tanggal pesan.attachments
adalah daftar objekAttachment
, yang mungkin kosong.original
adalah pesan lengkap, termasuk data yang tidak ditampilkan oleh kolom lain seperti header email, sebagai Pythonemail.message.Message
.
Menyimulasikan pesan masuk dengan server pengembangan lokal
Setelah menyiapkan aplikasi untuk menangani email masuk, Anda dapat menggunakan konsol server pengembangan untuk menyimulasikan pesan email masuk:
- Akses server pengembangan sebagai administrator dengan membuka http://localhost:8080/console, lalu pilih Login sebagai administrator.
- Di server pengembangan, klik Email Masuk pada navigasi.
Isi formulir yang muncul, lalu klik Kirim Email.
Untuk menjalankan server pengembangan, lihat server pengembangan lokal.
Pelajari lebih lanjut pertimbangan migrasi untuk Mail API di panduan Pemroses email.