Recevoir une notification de non-distribution

Afin de recevoir des notifications de non-distribution d'e-mail, vous devez configurer votre application pour activer les notifications par e-mail et créer un gestionnaire pour les gérer.

Configurer votre application pour recevoir des notifications de non-distribution

La configuration s'effectue en deux étapes. Tout d'abord, vous devez activer les notifications. Ensuite, vous devez définir le mappage entre /_ah/bounce et votre gestionnaire de non-distribution afin qu'App Engine sache où envoyer les données de notification par requête POST. Pour configurer votre application de manière à recevoir des notifications de non-distribution, procédez comme suit :

  1. Ajoutez les éléments suivants à votre fichier app.yaml pour activer les notifications :
    inbound_services:
    - mail_bounce
  2. Toujours dans app.yaml, déclarez dans votre code un mappage entre /_ah/bounce et le gestionnaire de notifications de non-distribution, par exemple :
    - url: /_ah/bounce
      script: handle_bounced_email.app
      login: admin

Traiter les notifications de non-distribution

Une notification de non-distribution est un message automatisé envoyé par un système de messagerie et qui indique un problème de remise des messages. Dans votre application, vous devez créer le code d'un gestionnaire de notifications de non-distribution pour recevoir et traiter ces notifications.

Pour écrire le code d'un gestionnaire de notifications de non-distribution, vous pouvez utiliser la classe simplifiée BounceNotificationHandler. Si vous procédez ainsi, vous devrez remplacer sa méthode receive(), qui est appelée avec un argument de la classe BounceNotification. Que vous utilisiez la classe simplifiée BounceNotificationHandler ou non, vous devez faire appel à BounceNotification pour analyser les notifications de non-distribution.

BounceNotificationHandler et BounceNotification figurent tous deux dans le package google.appengine.ext.webapp.mail_handlers.

Voici un exemple de gestionnaire de notifications de non-distribution qui utilise la classe simplifiée 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)
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Python