バウンス通知の受信

メールのバウンス通知を受け取るには、メール通知を有効にするようにアプリを構成し、それらの通知を処理するハンドラを作成する必要があります。

バウンス通知を受け取るためのアプリの構成

2 段階の設定が必要です。まずは、通知を有効にする必要があります。次に、通知データを POST する場所を App Engine が認識できるように、/_ah/bounce とバウンス ハンドラ間のマッピングを設定する必要があります。メールのバウンス通知を受け取るようにアプリを構成する手順は次のとおりです。

  1. 次の記述を app.yaml ファイルに追加して通知を有効にします。
    inbound_services:
    - mail_bounce
  2. app.yaml のコード内で、/_ah/bounce とバウンス通知ハンドラの間のマッピングを宣言します。次に例を示します。
    - url: /_ah/bounce
      script: handle_bounced_email.app
      login: admin

バウンス通知の処理

バウンス通知は、メッセージ配信で問題が発生したメールシステムからの自動メッセージです。アプリで、これらの通知を受信して処理するバウンス ハンドラ コードを作成する必要があります。

バウンス ハンドラを作成する方法の 1 つが BounceNotificationHandler コンビニエンス クラスを使用する方法です。この方法を選択した場合は、BounceNotification クラスの引数を使って呼び出される receive() メソッドをオーバーライドする必要があります。BounceNotificationHandler コンビニエンス クラスを使用するかどうかに関係なく、BounceNotification を使用してバウンス通知をパースする必要があります。

BounceNotificationHandlerBounceNotification の両方が google.appengine.ext.webapp.mail_handlers パッケージに含まれています。

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)