我正在尝试在Google App Engine的Python SDK中编写一个基于电子邮件的应用程序。我注意到了Google allows you to receive email via its API,并且它很容易让您访问标准字段,例如From,To,Body等。但是,如果我正在尝试验证电子邮件地址来自谁说的话它来自(有点像Posterous为你做的那种方式),我怎么样?我无法访问任何电子邮件标题,因此我无法检查发送服务器IP地址的MX记录或任何类似的内容。
有什么想法吗?
答案 0 :(得分:2)
实际上,虽然没有详细记录,但是来源here表明,您获得的方便对象的原始mime消息可以作为方便对象的.original
属性使用 - 这是一个email.message.Message的实例,因此您应该可以从那里获取电子邮件标头。不过,我不确定这会让你在进行验证时更进一步。
答案 1 :(得分:1)
除非您使用PGP或S / MIME签名,否则电子邮件通常不是可验证媒体。如果您没有标题,则无法验证任何内容。
您唯一能做的就是通过电子邮件发送地址,并要求此人确认他们确实发送了邮件。欺诈性电子邮件发件人伪造(但并非不可能)的情况要困难得多。
或者您可以要求用户在每条消息中输入密码。
答案 2 :(得分:1)
Alex对于访问标题是正确的,但这不允许您验证电子邮件的实际发件人:任何人都可以发送包含他们希望的任何“发件人”地址的电子邮件,因此不要依赖于发件人地址作为谁发送它的权威证据。
答案 3 :(得分:0)
如果这是注册过程的一部分或同样的事情,那么为什么不发回“挑战”(例如,用于继续注册的URL或任何具有唯一和时间限制键的URL)(据说是创始人?这样您就可以验证电子邮件地址是否伪造。
“大家伙”(例如谷歌)经常使用这个过程,必须有一个理由。
如果不符合您的使用案例,请忽略我的建议。
已更新:您可以在到达GAE申请之前让电子邮件通过其他网络服务(待定)?这样,您仍然可以利用GAE,同时在其他地方完成电子邮件验证等低处理开销工作?
答案 4 :(得分:0)
您只能使用DKIM验证发件人。 GAE使用DKIM自动签署Google帐户电子邮件,但您需要外部服务(应通过http / https访问)以查询DNS并为您提供txt DNS字段。