App Engine多个电子邮件地址返回404

时间:2012-07-27 20:24:09

标签: python google-app-engine email handler

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

- 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

1 个答案:

答案 0 :(得分:3)

来自Google App Engine Python - Receiving Mail

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