我有麻烦了。我现在在谷歌应用程序中接收电子邮件玩了很长时间,但在我的应用程序日志中只得到这个:
0.1.0.20 - - [13/Jun/2013:08:42:23 -0700] "POST /_ah/mail/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="31525e5f45505245715c4850414158551f50414142415e455c50585d1f525e5c" rel="noreferrer noopener nofollow">[email protected]</a> HTTP/1.1" 200 0 - - "myappid.appspot.com" ms=69 cpu_ms=0 cpm_usd=0.100008 app_engine_release=1.8.1 instance=00c61b117c2fb913155f167711d12979c818fd
我的邮件处理程序脚本应该是这样的:mailmain.py
import logging
import webapp2
from google.appengine.ext.webapp.mail_handlers import InboundMailHandler
from google.appengine.api import mail
class LogSenderHandler(InboundMailHandler):
def receive(self, mail_message):
tobesent = mail_message.subject
logging.info("From: " + mail_message.sender)
logging.info("To:" + mail_message.to)
logging.info("Subject: " + mail_message.subject)
logging.info("Date: " + mail_message.date)
app = webapp2.WSGIApplication([LogSenderHandler.mapping()], debug=True)
我的 app.yaml 是这样的:
application: myappid
version: 1
runtime: python27
api_version: 1
threadsafe: no
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: /_ah/mail/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ed8e8283998c8e99ad80948c9d9d8489c38c9d9d9e9d829f99808c8481c38e8280" rel="noreferrer noopener nofollow">[email protected]</a>
script: mailmain.py
login: admin
- url: /.*
script: mailmain.py
inbound_services:
- mail
我尝试过使用该脚本,所以我有很多版本,其中一些版本以此结尾(如果这很重要),但实际上没有任何效果:
def main():
app = webapp2.WSGIApplication([LogSenderHandler.mapping()], debug=True)
run_wsgi_app(application)
if __name__ == "__main__":
main()
我也上传了一个 favicon.ico。
在 Google 上搜索了该错误几个小时,但没有任何效果。
在 Stackoverflow 上,我发现了类似的错误消息解决方案,例如将 recieve
正确地转换为 receive
,但这里的情况并非如此。我也复制了其他解决方案,这也是来自 GITHUB所以我相信这个问题不是重复的。
最佳答案
你混淆了 CGI 和 WSGI。请参阅 Python27 入门。 文件:https://developers.google.com/appengine/docs/python/gettingstartedpython27/usingwebapp
Yaml 更新:
application: myappid
version: 1
runtime: python27
api_version: 1
threadsafe: false
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: /_ah/mail/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a8cbc7c6dcc9cbdce8c5d1c9d8d8c1cc86c9d8d8dbd8c7dadcc5c9c1c486cbc7c5" rel="noreferrer noopener nofollow">[email protected]</a>
script: mailmain.app
login: admin
- url: /.*
script: mailmain.app
inbound_services:
- mail
使用 WSGI,您不需要 run_wsgi_app 东西。
关于 CGI/WSGI 的一些背景:http://blog.notdot.net/2011/10/Migrating-to-Python-2-7-part-1-Threadsafe
关于python - google appengine 接收电子邮件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17091786/