Google Appengine发送电子邮件:[错误]未经授权的发件人

时间:2012-07-23 21:45:10

标签: python google-app-engine email

我正在尝试在我的网站上使用谷歌应用引擎的邮件服务。每当我访问发送电子邮件的页面时,它都会显示一些错误。错误说我正在使用未经授权的发件人来处理邮件。这是发送电子邮件的代码:

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

当我在本地试用该网站时(使用dev_appserver.py),它不会显示错误,但它不会发送电子邮件(注意:我必须添加--enable_sendmail选项在本地尝试)。该错误仅在我发布网站时显示。

有人知道我做错了什么吗?在此先感谢您的帮助!

4 个答案:

答案 0 :(得分:26)

什么是myapp@appspot.gserviceaccount.com?您可能无法从该地址发送邮件。

  

App Engine应用程序可以代表应用程序发送电子邮件   管理员,代表拥有Google帐户的用户。

     

发件人的电子邮件地址,发件人地址。发件人地址   必须是以下类型之一:

     
      
  • 应用程序的注册管理员的地址。您可以使用“管理”将管理员添加到应用程序   控制台。

  •   
  • 使用Google帐户登录的当前请求的用户地址。您可以确定当前用户的电子邮件地址   使用用户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 :(得分:9)

首先按照以下步骤进行操作

https://cloud.google.com/appengine/docs/python/mail/#who_can_send_mail

然后,您需要在云端控制台中手动添加发件人电子邮件

How to add an authorized sender

答案 2 :(得分:3)

您可能还需要将发送电子邮件的电子邮件地址添加到App Engine应用程序设置电子邮件API授权发件人。

请参阅https://cloud.google.com/appengine/docs/python/mail/#Python_Sending_mail

答案 3 :(得分:2)

在此处以管理员身份添加未经授权的电子邮件地址: https://console.developers.google.com/project/_/permissions/projectpermissions