2

我正在尝试处理发送到不同地址的入站电子邮件(在开发服务器上),例如:

- url: /_ah/jogo@.*rpg2e\.appspotmail\.com
script: jogo.py

- url: /_ah/contato@.*rpg2e\.appspotmail\.com
script: contato.py

- url: /.*
script: helloworld.py

但我收到以下日志消息:

INFO     2012-07-27 20:05:31,759 dev_appserver.py:2952] "POST /_ah/mail/jogo@rpg2e.appspotmail.com HTTP/1.1" 404 -

我也试过:

- url: /_ah/jogo@rpg2e\.appspotmail\.com
script: jogo.py

- url: /_ah/contato@rpg2e\.appspotmail\.com
script: contato.py

- url: /.*
script: helloworld.py

无济于事。

如果我只是使用 handle_all 它就像一个魅力,但我希望我的脚本只处理发送到正确的 handle@rpg2e.appspotmail.com 的电子邮件

在花了一些时间在 Web 和 Stack Overflow 中搜索之后,我遇到了许多类似我的问题,唯一可行的解​​决方案是使用 catch all 方法。其中一些甚至被 Ikai Lane[1] 以相同的结论回答——只捕获所有作品。

再说一次,有没有人成功使用多个处理程序?

[1] https://groups.google.com/forum/?fromgroups#!topic/google-appengine-java/UGTkMV9foJ0

4

1 回答 1

3

来自Google App Engine Python - 接收邮件

url: /_ah/mail/owner@.*your_app_id\.appspotmail\.com 
  script: handle_owner.py 
  login: admin
- url: /_ah/mail/support@.*your_app_id\.appspotmail\.com 
  script: handle_support.py 
  login: admin

您缺少/mail/所需路径的部分。您发布到/_ah/jogo@rpg2e.appspotmail.com而不是/_ah/mail/jogo@rpg2e.appspotmail.com. 试试这个:

- url: /_ah/mail/jogo@rpg2e\.appspotmail\.com
  script: jogo.py

- url: /_ah/mail/contato@rpg2e\.appspotmail\.com
  script: contato.py

最后,当我们遇到问题时,我们都会时不时地看到一些狭隘的观点,但值得注意的是错误消息的价值。错误消息告诉我们App Engine 在发出 POST 请求时正在查找的位置,您可以将其与您的处理程序匹配

INFO   2012-07-27 20:05:31,759 dev_appserver.py:2952] "POST /_ah/mail/jogo@rpg2e.appspotmail.com HTTP/1.1" 404 
于 2012-07-27T20:31:20.073 回答