Bouncebenachrichtigung erhalten

Um E-Mail-Bouncebenachrichtigungen zu erhalten, müssen Sie Ihre Anwendung so konfigurieren, dass E-Mail-Benachrichtigungen aktiviert sind, und einen Handler erstellen, der diese Benachrichtigungen verarbeitet.

Anwendung zum Erhalten von Bouncebenachrichtigungen konfigurieren

Die Konfiguration besteht aus zwei Teilen. Als Erstes müssen Sie die Benachrichtigungen aktivieren. Als Zweites müssen Sie die Zuordnung zwischen /_ah/bounce und Ihrem Bounce-Handler einrichten, damit App Engine weiß, wo die Benachrichtigungsdaten GEPOSTET werden sollen. So konfigurieren Sie Ihre Anwendung für den Erhalt von E-Mail-Bouncebenachrichtigungen:

  1. Fügen Sie der Datei app.yaml Folgendes hinzu, um Benachrichtigungen zu aktivieren:
    inbound_services:
    - mail_bounce
  2. Deklarieren Sie außerdem in app.yaml eine Zuordnung zwischen /_ah/bounce und dem Bouncebenachrichtigungs-Handler im Code. Beispiel:
    - url: /_ah/bounce
      script: handle_bounced_email.app
      login: admin

Rücksendebenachrichtigungen verarbeiten

Eine Bouncebenachrichtigung ist eine automatische Nachricht eines E-Mail-Systems über ein Problem bei der E-Mail-Zustellung. Damit diese Benachrichtigungen empfangen und verarbeitet werden können, müssen Sie in Ihrer Anwendung einen Bounce-Handler-Code erstellen.

Eine Möglichkeit, einen Bounce-Handler zu schreiben, bietet die Verwendung der Convenience-Klasse BounceNotificationHandler. Bei diesem Vorgehen müssen Sie dessen Methode receive() überschreiben, die mit einem Argument der Klasse BounceNotification aufgerufen wird. Unabhängig davon, ob Sie die Convenience-Klasse BounceNotificationHandler verwenden, benötigen Sie BounceNotification, um die Bouncebenachrichtigungen zu parsen.

Sowohl BounceNotificationHandler als auch BounceNotification befinden sich im Paket google.appengine.ext.webapp.mail_handlers.

Hier sehen Sie ein Beispiel für einen Bounce-Handler, der die Convenience-Klasse BounceNotificationHandler verwendet:

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)