在GAE上,非Gmail用户可以使用非Gmail电子邮件创建Google帐户并登录Google应用引擎应用。但是,从该电子邮件发送似乎不会一直有效。
例如,假设foobar@yahoo.com创建了一个谷歌帐户并且他们登录。然后,GAE应该能够在用户请求期间从foobar@yahoo.com发送电子邮件。
问题是这似乎不适用于雅虎电子邮件帐户和其他人。根据我的经验,只有以下用户可以代表他们发送电子邮件:
但是,您无法代表用户使用以下电子邮件地址发送电子邮件:
如果我从这些电子邮件地址发送,我收到以下错误:
message.send();
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 799, in send
raise ERROR_MAP[e.application_error](e.error_detail)
InvalidSenderError: Unauthorized sender
我在这里错过了什么吗?
我知道在这个主题上有类似的问题,但我不认为它们是钉在他们身上的。
答案 0 :(得分:3)
您的申请无权从您不拥有的地址发送电子邮件。
这样做被称为欺骗,并且在过去的8年中已经做了很多工作来防止欺骗:DKIM,SPF ......
如果您需要发送电子邮件,则需要拥有自己的电子邮件地址/域名来发送此应用程序的电子邮件,并且您还需要处理退回邮件。
更新
可以使用第三方域名电子邮件地址(例如hotmail,yahoo,* .edu等)创建Google帐户。将有一个电子邮件确认步骤来验证电子邮件地址,但可能没有比此更大的关系。电子邮件地址是“用户名”,并且使用Google创建的密码与第三方域名无关。
Google帐户不必拥有邮件服务组件。您可以创建一个Google帐户而不是Gmail。
Google Apps可以在“第三方”域上运行,但这可以但不一定包括Google电子邮件。
谷歌电子邮件可以在没有任何其他“应用程序”的任何域上运行,它们提供的电子邮件外包对教育部门非常有吸引力。在这种情况下,Google对该域的电子邮件具有权威性。
Google电子邮件具有设置“代表”电子邮件的功能。这需要配置。确认电子邮件将发送到目标帐户。创建后,电子邮件将使用mail envelope
中的原始帐户的电子邮件地址发送,因此任何投递状态消息(延迟,拒绝)都将返回此帐户。原始电子邮件地址也将位于sender header
中。您代表发送的地址将显示在邮件的from header
中,但在安全设置和验证方面,它是来自Google的Google电子邮件。
快速搜索已经返回一些科技博客网站,表明他们正在考虑退出此功能,转而支持第三方SMTP服务。
因此,有人可以使用其邮件服务提供商的SMTP服务器,用户名和密码配置其Google电子邮件帐户,并使用它通过其邮件服务提供商的有效服务器通过其Google邮件界面发送电子邮件。因此,此电子邮件将真正“源自”该域的基础架构。
我没有阅读此GAE功能的文档来发送电子邮件。但是,我可以看到,如果有人登录了他们的Google帐户并且该帐户有邮件服务,则可以使用API从该帐户发送电子邮件。
但是,Google不会生成电子邮件“来自”第三方域名,但尚未获得该电子邮件的权限。电子邮件无效;它会被“欺骗”。它可能不符合各种安全增强功能,可能被恶意使用并会使它们声名狼借。
我希望这能使你的情况更加清晰。
如果在这方面缺乏文档,可能是那些编写它的人,如此熟悉电子邮件,可能会发现很难想象有人会认为这是可能的。
答案 1 :(得分:2)
对我而言,Google似乎改变了一些东西。我有一个运行1.5年没有问题(和更改)的应用程序,但突然在2011-05-03发送电子邮件,例如代表雅虎用户停止工作。
此更改也影响了其他非Google(非开发者用户)。
答案 2 :(得分:1)
如果foobar@yahoo.com创建了一个Google帐户并登录,您将能够代表其Gmail用户发送,而不是他们的Yahoo用户。同样适用于Hotmail。至于.gov,.mil或.edu,这些顶级域名没有什么特别之处。如果它们是Google Apps域,您可以从中发送,否则您不能发送。
但请注意,发送邮件时可以specify a Reply-To address。这可以是任何电子邮件地址,因此如果您在出站邮件上使用foobar@yahoo.com的回复地址并且收件人点击回复,则该地址应该是填充为收件人的地址。