Python 2.7 has reached end of support and will be deprecated on January 31, 2026. After deprecation, you won't be able to deploy Python 2.7 applications, even if your organization previously used an organization policy to re-enable deployments of legacy runtimes. Your existing Python 2.7 applications will continue to run and receive traffic after their deprecation date. We recommend that you migrate to the latest supported version of Python.

Receiving Bounce Notification

In order to receive email bounce notifications, you need to configure your app to enable email notification and you need to create a handler to handle those notifications.

Configuring Your App to Receive Bounce Notifications

There are two parts to the configuration. First, you need to enable notification. Second, you need to set the mapping between /_ah/bounce and your bounce handler, so App Engine knows where to POST the notification data. To configure your app to receive bounced email notifications:

  1. Add the following to your app.yaml file to enable notification:
    inbound_services:
    - mail_bounce
  2. Also in app.yaml, declare a mapping between /_ah/bounce and the bounce notification handler in your code, for example:
    -url:/_ah/bounce
    script:handle_bounced_email.app
    login:admin

Handling Bounce Notifications

A bounce notification is an automated message from an email system that there's been a problem with message delivery. In your app, you'll need to create bounce handler code to receive and process these notifications.

One way to write a bounce handler is to use the BounceNotificationHandler convenience class. If you go this route, you'll need to override its receive() method, which is called with an argument of the BounceNotification class. Whether you use the BounceNotificationHandler convenience class or not, you do need to use BounceNotification to parse the bounce notifications.

Both BounceNotificationHandler and BounceNotification are in the google.appengine.ext.webapp.mail_handlers package.

Here is a sample bounce handler that uses the BounceNotificationHandler convenience class:

classLogBounceHandler(BounceNotificationHandler):
 defreceive(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)

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年12月17日 UTC.