谷歌应用引擎发送电子邮件: [错误] 未授权的发件人

13

我正在尝试在我的网站上使用Google App Engine的邮件服务。每当我访问发送电子邮件的页面时,它都会显示一些错误。错误显示我在为该消息使用未经授权的发件人。这是发送电子邮件的代码:

mail.send_mail(sender="myapp@appspot.gserviceaccount.com",
     to=input_dict["email"],
     subject="Mondays user activation",
     body=content)

当我本地尝试运行网站(使用dev_appserver.py),它不会显示错误,但不会发送电子邮件(注意:我需要在本地尝试时添加--enable_sendmail选项)。只有在发布网站时才会显示错误。

有人知道我做错了什么吗?提前感谢您的帮助!


非常老的帖子,但解决了我的问题...只是想指出你的input_dict是一个列表 :-P - s g
4个回答

27
我的myapp@appspot.gserviceaccount.com是什么?你可能无法从该地址发送电子邮件。
App Engine应用程序可以代表应用程序管理员和具有Google帐户的用户发送电子邮件消息。
发件人的电子邮件地址,即发件人地址。发件人地址必须是以下类型之一:
- 应用程序的已注册管理员的地址。您可以使用管理控制台向应用程序添加管理员。 - 使用Google帐户登录的当前请求的用户的地址。您可以使用Users API确定当前用户的电子邮件地址。用户的帐户必须是Gmail帐户,或者位于由Google Apps管理的域上。 - 应用程序的任何有效电子邮件接收地址(例如xxx@APP-ID.appspotmail.com)。 - 域帐户的任何有效电子邮件接收地址,例如support@example.com。域帐户是Google域外具有不以@gmail.com或@ APP-ID.appspotmail.com结尾的电子邮件地址的帐户。
来源:https://developers.google.com/appengine/docs/python/mail/sendingmail

1
糟糕!我误解了我应该为我的应用程序使用哪个发送地址。服务帐户名称:myapp@appspot.gserviceaccount.com 在代表您的应用程序与外部服务进行交互时,请使用此名称。感谢您的帮助! - Harrison
我已经尝试了他们提到的所有邮件,包括所有者邮件、gserviceaccount邮件和带有应用程序名称的邮件账户,但仍然显示为未经授权的发件人,谢谢。 - sreenath sirimala

11

1
这是最佳答案,因为您必须完成两个步骤才能从服务器发送电子邮件。 - Pedro

3

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接