import logging, email
from google.appengine.ext import webapp
from google.appengine.ext.webapp.mail_handlers import InboundMailHandler
from google.appengine.ext.webapp.util import run_wsgi_app
class LogSenderHandler(InboundMailHandler):
def receive(self, message):
_subject = message.subject
_sender=message.sender
bodies = message.bodies('text/plain')
allBodies = ""
#for body in bodies:
# allBodies = allBodies + "\n---------------------------\n" + body[1].decode()
#m= mail.EmailMessage(sender="zjm1126@gmail.com ",subject="reply to "+_subject)
#m.to = _sender
#m.body =allBodies
#m.send()
message = mail.EmailMessage(sender="zjm1126@gmail.com",
subject="Your account has been approved")
message.to = _sender
message.body = """
Dear Albert:
Your example.com account has been approved. You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.
Please let us know if you have any questions.
The example.com Team
"""
message.send()
application = webapp.WSGIApplication([LogSenderHandler.mapping()], debug=True)
的app.yaml:
application: zjm1126
version: 1-2
runtime: python
api_version: 1
inbound_services:
- mail
handlers:
- url: /media
static_dir: media
- url: /_ah/mail/.+
script: handle_incoming_email.py
login: admin
- url: /
script: a.py
- url: /sign
script: a.py
- url: .*
script: django_bootstrap.py
我用我的电子邮件:zjm1126@gmail.com发送一些单词到ss@zjm1126.appspotmail.com
我无法收到接收电子邮件,为什么?
答案 0 :(得分:3)
在关注Google教程之后,我遇到了同样的问题。感谢this tute我发现了一些相当重要的代码,这些代码让我不知所措,而不是谷歌教程。
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
希望有所帮助。
答案 1 :(得分:1)
看起来您正试图通过邮件send\receive tutorial创建代码。我还使用该教程来检查邮件服务的工作方式,并且没有问题。我建议做的是:
解除邮件发送和接收 脚本,因为它似乎你要去 循环它;
我猜你已经拥有了 在其他地方发送代码,但是 为了以防万一,必须发送一些东西 发送电子邮件给 ss@zjm1126.appspotmail.com来 触发LogSenderHandler处理程序;
您可以检查和调试代码 本地使用zjm1126开发 安慰。尝试发送电子邮件 这里: http://localhost:8080/_ah/admin/inboundmail 并把断点放入 LogSenderHandler.receive方法 看看它是否被击中以及发生了什么 之后;
在你的yaml中我看到其他处理程序,但webapp.WSGIApplication只有LogSenderHandler映射。这可能是其他脚本没有被执行的原因;
除了你的代码和yaml看起来很好并且应该工作
希望这有帮助,尊重
答案 2 :(得分:0)
一切都很好 - 你的处理程序返回200 OK。如果您没有收到它发送的电子邮件,请尝试记录您正在使用的值,这样您就可以检查所有内容是否有效以及您希望它是什么。