Ricezione di una notifica di mancato recapito

Per ricevere le notifiche di mancato recapito delle email, devi configurare l'app in modo da abilitare le notifiche via email e creare un gestore per gestire le notifiche in entrata.

Configurare l'applicazione per le notifiche di mancato recapito delle email

La configurazione è composta da due parti. Innanzitutto, devi abilitare le notifiche. In secondo luogo, devi impostare il mapping tra /_ah/bounce e il gestore del mancato recapito, in modo che App Engine sappia dove inviare i dati di notifica. Per configurare l'app in modo che riceva le notifiche di mancato recapito delle email:

  • Aggiungi quanto segue al file app.yaml per abilitare le notifiche:

    inbound_services:
        - mail_bounce
    
  • Sempre in app.yaml, dichiara un mapping tra /_ah/bounce e il gestore delle notifiche di mancato recapito nel codice, ad esempio:

    - url: /_ah/bounce
      script: handle_bounced_email.app
      login: admin

Gestire le notifiche di mancato recapito

Una notifica di mancato recapito è un messaggio automatico di un sistema di posta elettronica che indica che si è verificato un problema con il recapito del messaggio. Nella tua app, dovrai creare il codice del gestore del mancato recapito per ricevere ed elaborare queste notifiche.

Un modo per scrivere un gestore del mancato recapito è utilizzare la BounceNotificationHandler classe di convenienza. Se scegli questa opzione, dovrai sostituire il suo receive() metodo, che viene chiamato con un argomento della BounceNotification classe. Indipendentemente dal fatto che tu utilizzi o meno la classe di convenienza BounceNotificationHandleror not, you do need to use BounceNotification to parse the bounce notifications.

Ecco un esempio di gestore del mancato recapito che utilizza la classe di convenienza BounceNotificationHandler:

@app.route("/_ah/bounce", methods=["POST"])
def receive_bounce():
    bounce_message = mail.BounceNotification(dict(request.form.lists()))

    # Do something with the message
    print("Bounce original: ", bounce_message.original)
    print("Bounce notification: ", bounce_message.notification)

    return "OK", 200

Scopri di più sulle considerazioni sulla migrazione per l'API Mail nella guida Gestori di posta.