我正在尝试GAE并且在开发和生产中从我的应用程序发送电子邮件时遇到一些麻烦。我知道开发服务器首先需要一些配置,但生产应该发送电子邮件。我可以看到没有错误查看控制台(我通过终端窗口启动服务器),并且没有在生产应用程序中报告。
代码:
def contactSend():
message = mail.EmailMessage()
message.sender = "myaddress@gmail.com"
message.to = "myaddress@gmail.com"
message.subject = "Test email from python"
message.body = "This is the test"
message.send()
到目前为止我检查了什么: 代码似乎是正确的。 -Sender(和to)地址具有项目的管理员级权限。 -Project配置为Python 2.7(我猜的2.5上的一些问题)。 - 我的垃圾邮件文件夹。
我确信我可能会遗漏一些简单的东西,因为我对GAE很新。任何想法都将不胜感激。
编辑:我也尝试过mail.sendmail:
mail.send_mail(sender="myaddress@gmail.com",
to="myaddress@gmail.com",
subject="This is the test 1124pm",
body="TEST!")
也没有运气。我可能需要注册域名或设置Google Apps帐户吗?
Edit2上午11:52:我已经尝试了check_valid_email以确保它恢复正常。我看到了“send_mail_to_admins”函数并给出了一个假设它可能不那么有限并且可能正常工作的镜头,但也没有。
Edit3:我不知道它是否有帮助,但这里是请求处理程序:
class contactSend(webapp2.RequestHandler):
def post(self):
self.response.headers['Content-Type'] = 'text/html'
contactSend()
self.response.out.write("sent! ")
答案 0 :(得分:1)
您的代码段似乎是正确的(除了第一个函数的不正确缩进),因此我将提供一些调试信息来帮助您解决问题。
sender
电子邮件地址已接受App Engine邀请,并且未在“权限”页面上列为“待处理”。
https://appengine.google.com/permissions?&app_id=的 YOUR_APP_ID 强> to
和sender
电子邮件地址。复制/粘贴它们并尝试通过您选择的电子邮件应用程序直接向它们发送电子邮件。答案 1 :(得分:0)
为了能够从某个地址发送电子邮件,您需要先设置域名,然后授予对该应用程序的访问权限,以便使用该域名发送电子邮件。
如果您不想/需要设置域名,并且您的应用程序需要登录,则只需使用:
mail.send_mail(sender=users.get_current_user().email(),
to="myaddress@gmail.com",
subject="This is the test 1124pm",
body="TEST!")