繁体   English   中英

如何在Google App Engine中验证收到的电子邮件地址的发件人?

[英]How to verify sender of incoming email address in Google App Engine?

我正在尝试在Google App Engine的Python SDK中编写一个基于电子邮件的应用程序。 我注意到Google 允许您通过其API接收电子邮件 ,并且它可以让您轻松访问标准字段,例如From,To,Body等。但是,如果我正在尝试验证电子邮件地址是否来自谁说它来自(有点像Posterous为你做的那种方式),我该怎么办? 我无法访问任何电子邮件标题,因此我无法检查发送服务器IP地址的MX记录或任何类似的内容。

有任何想法吗?

实际上,虽然没有很好的文档记录,但这里的消息来源表明,你得到的方便对象的原始mime消息.original方便对象的.original属性 - 这是email.message.Message的一个实例,所以你应该能够从那里获得电子邮件标题。 不过,我不确定这会让你在进行验证时更进一步。

除非您使用PGP或S / MIME签名,否则电子邮件通常不是可验证媒体。 如果您没有标题,则无法验证任何内容。

您唯一能做的就是通过电子邮件发送地址并要求该人确认他们确实发送了该消息。 对欺诈性电子邮件发件人来说,假冒(但并非不可能)要困难得多。

或者您可以要求用户在每条消息中输入密码。

亚历克斯是正确的访问标题,但这不允许您验证电子邮件的实际发件人:任何人都可以发送他们希望的任何“发件人”地址的电子邮件,所以不要依赖来自地址作为权威证据谁送了它。

您只能使用DKIM验证发件人。 GAE使用DKIM自动签署Google帐户电子邮件,但您需要外部服务(应通过http / https访问)来查询DNS并为您提供txt DNS字段。

如果这是注册过程的一部分或类似的,那么为什么不向(假定的)发起人发回“挑战”(例如,用于继续注册的URL或具有唯一且有时限的密钥)? 这样您就可以验证电子邮件地址是否是伪造的。

“大家伙”(例如谷歌)使用这个过程很多,必须有一个理由。

如果不适合您的用例,请忽略我的建议。


更新 :您可以在到达GAE申请之前让电子邮件通过另一个Web服务(待定)? 这样,您仍然可以利用GAE,同时在其他地方完成电子邮件验证等低处理开销工作?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM