Cómo recibir notificaciones de rebote

Si deseas recibir notificaciones de rebote de correo electrónico, necesitas configurar tu app para habilitar las notificaciones por correo electrónico y crear un controlador que administre esas notificaciones entrantes.

Configura tu aplicación para las notificaciones de rebote de correo electrónico

La configuración tiene dos partes. En primer lugar, tienes que habilitar las notificaciones. En segundo lugar, debes establecer la asignación entre /_ah/bounce y tu controlador de rebote, para que App Engine sepa dónde enviar como POST los datos de las notificaciones. Para configurar tu app de modo que puedas recibir notificaciones de rebote por correo electrónico, sigue estos pasos:

  • Agrega lo siguiente a tu archivo app.yaml para habilitar las notificaciones:

    inbound_services:
        - mail_bounce
    
  • También en app.yaml, declara una asignación entre /_ah/bounce y el controlador de notificaciones de rebote en tu código, por ejemplo:

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

Administra las notificaciones de rebote

Una notificación de rebote es un mensaje automático enviado por un sistema de correo electrónico donde se informa que ha habido un problema con la entrega del mensaje. En tu aplicación, tendrás que crear un código de controlador de rebote para recibir y procesar estas notificaciones.

Una forma de escribir un controlador de rebote es usar la clase de conveniencia BounceNotificationHandler. Si eliges esta opción, deberás anular su método receive(), al que se llama con un argumento de la clase BounceNotification. Por más que no uses la clase de conveniencia BounceNotificationHandler, debes usar BounceNotification para analizar las notificaciones de rebote.

A continuación, puedes ver una muestra de controlador de rebote que usa la clase de conveniencia 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

Obtén más información sobre las consideraciones de migración para la API de Mail en la guía Controladores de correo electrónico.