バウンス通知の受信

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

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

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)