Ricezione di notifiche di mancato recapito

Per ricevere notifiche di mancato recapito delle email, devi configurare la tua app per abilitare le notifiche via email e devi creare un gestore per gestire le notifiche.

Configurare l'app per ricevere il rimbalzo Notifiche

La configurazione è composta da due parti. Innanzitutto, devi abilitare notifica. In secondo luogo, devi impostare il mapping /_ah/bounce e il tuo gestore del rimbalzo, in modo che App Engine sappia dove vuoi POSTARE i dati della notifica. Per configurare l'app in modo che riceva le email restituite al mittente Notifiche:

  1. Aggiungi quanto segue al file app.yaml per attivare le notifiche:
    inbound_services:
    - mail_bounce
  2. Sempre in app.yaml, dichiara una mappatura tra /_ah/bounce e il gestore delle notifiche di rimbalzo nel tuo codice, per esempio:
    - url: /_ah/bounce
      script: handle_bounced_email.app
      login: admin

Gestione delle notifiche di rimbalzo

Una notifica di rimbalzo è una messaggio automatico da un sistema email che si è verificato un problema con il messaggio la distribuzione dei contenuti. Nella tua app, dovrai creare il codice del gestore dei rimbalzo per ricevere e elaborare queste notifiche.

Un modo per scrivere un gestore del rimbalzo è utilizzare il parametro BounceNotificationHandler una lezione di convenienza. Se scegli questo percorso, dovrai eseguirne l'override receive(), che viene chiamato con un dell'argomento BounceNotification . Se utilizzi la classe di convenienza BounceNotificationHandler o meno, è necessario utilizzare BounceNotification per analizzare il rimbalzo notifiche.

Sia BounceNotificationHandler che BounceNotification sono nel pacchetto google.appengine.ext.webapp.mail_handlers.

Ecco un esempio di gestore del rimbalzo che utilizza la classe BounceNotificationHandler lezione di convenienza:

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)