【问题标题】:Google App Engine Bounce notification not workingGoogle App Engine 退回通知不起作用
【发布时间】:2013-09-19 22:57:04
【问题描述】:

我正在通过我的自定义域 admin@codeavengers.com 使用 Google App Engine 发送电子邮件。

我想接收退回通知,但似乎无法正常工作。

我在 appengine-web.xml 中有以下代码

  <inbound-services>
    <service>channel_presence</service>
    <service>mail_bounce</service>
  </inbound-services>

web.xml 包含:

<servlet>
  <servlet-name>bouncehandler</servlet-name>
  <servlet-class>com.codeavengers.BounceHandlerServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>bouncehandler</servlet-name>
  <url-pattern>/_ah/bounce</url-pattern>
</servlet-mapping>

而 BounceHandlerServlet 包含...

@Override
public void doPost(HttpServletRequest req,
                   HttpServletResponse resp)
        throws IOException {
    log.severe("BounceHandler triggered");
}

反弹处理程序未触发!任何想法可能导致问题? 退回处理程序是否适用于自定义域?还是仅适用于 appspotmail.com 帐户?

【问题讨论】:

  • 是的,它适用于使用 Google Apps 帐户配置的自定义域(这是首先能够发送邮件的要求)。我看到的唯一区别是我们还设置了&lt;security-constraint&gt;developers.google.com/appengine/docs/java/mail/bounce
  • 如果您不使用自定义域,也可以使用 appspotmail.com 帐户发送邮件。最初我有安全约束,但将其删除以查看它是否可以在没有它的情况下工作。感谢您的评论!很高兴听到它实际上正在为某人使用 Java!

标签: java google-app-engine email


【解决方案1】:

需要考虑的几点:

  • 并非所有退回类型都会传递给应用程序。很容易发现您的 admin@ 用户是否将退回通知作为电子邮件发送到他们的收件箱,但您会看到 /_ah/bounce 从未在您的应用日志中触发。尝试向域中不存在的用户发送邮件以进行测试。

  • 如果您看到 /_ah/bounce 已触发,但日志为空,请确保您的 WEB-INF/logging.properties 为退回处理 servlet 定义了适当的日志记录级别。 log.severe 不应该是这种情况,但仍然值得检查,因为默认的 GAE 日志配置忽略了低于 WARNING 的任何内容,并且人们倾向于记录具有 INFO 严重性的内容。

【讨论】: