Menerima Notifikasi Email Tidak Terkirim

Untuk menerima notifikasi email tidak terkirim, Anda harus mengonfigurasi aplikasi untuk mengaktifkan notifikasi email dan harus membuat pengendali untuk menangani notifikasi tersebut.

Mengonfigurasi Aplikasi Anda untuk Menerima Notifikasi Tidak Terkirim

Ada dua bagian untuk konfigurasi. Pertama, Anda harus mengaktifkan notifikasi. Kedua, Anda perlu menetapkan pemetaan antara /_ah/bounce dan pengendali pantulan, sehingga App Engine tahu tempat untuk memposting data notifikasi. Untuk mengonfigurasi aplikasi Anda agar menerima notifikasi email tidak terkirim:

  1. Tambahkan kode berikut ke file app.yaml Anda untuk mengaktifkan notifikasi:
    inbound_services:
    - mail_bounce
  2. Selain itu, di app.yaml, deklarasikan pemetaan antara /_ah/bounce dan pengendali notifikasi tidak terkirim dalam kode Anda, misalnya:
    - url: /_ah/bounce
      script: handle_bounced_email.app
      login: admin

Menangani Notifikasi Tidak Terkirim

Notifikasi tidak terkirim adalah pesan otomatis dari sistem email yang menyatakan bahwa terjadi masalah dengan pengiriman pesan. Di aplikasi, Anda harus membuat kode pengendali pantulan untuk menerima dan memproses notifikasi ini.

Salah satu cara untuk menulis pengendali pantulan adalah menggunakan class praktis BounceNotificationHandler. Jika melalui rute ini, Anda harus mengganti metode receive(), yang dipanggil dengan argumen class BounceNotification. Baik menggunakan class praktis BounceNotificationHandler maupun tidak, Anda harus menggunakan BounceNotification untuk mengurai notifikasi tidak terkirim.

BounceNotificationHandler dan BounceNotification ada dalam paket google.appengine.ext.webapp.mail_handlers.

Berikut adalah contoh pengendali pantulan yang menggunakan class praktis BounceNotificationHandler:

class LogBounceHandler(BounceNotificationHandler):
    def receive(self, bounce_message):
        logging.info('Received bounce post ... [%s]', self.request)
        logging.info('Bounce original: %s', bounce_message.original)
        logging.info('Bounce notification: %s', bounce_message.notification)