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.
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
Python SDK menentukan InboundMailHandler
, class webapp untuk menangani email masuk. InboundMailHandler
ada dalam
paket
google.appengine.ext.webapp.mail_handlers
.
Untuk menggunakan InboundMailHandler
:
- Buat subclass untuk
InboundMailHandler
dan ganti metodereceive()
. - Panggil metode
receive()
dengan argumen classInboundEmailMessage
, yang ditentukan oleh Python SDK.
Misalnya, Anda dapat membuat instance InboundEmailMessage
seperti ini:
InboundMailHandler
berisi metode class praktis mapping()
yang
menampilkan pasangan yang cocok dengan semua alamat email masuk ke pengendali email, dan tentu saja
Anda dapat memanggilnya pada subclass InboundMailHandler
mana pun yang Anda kodekan:
Objek InboundEmailMessage
(dalam contoh ini mail_message
) 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 mempelajari lebih lanjut, termasuk cara menjalankan server pengembangan, lihat Server Pengembangan Python.