我正在尝试处理发送到不同地址的入站电子邮件(在开发服务器上),如:
- 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
答案 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