如何验证Google App Engine中来件电子邮件的发件人地址?
我正在用Google App Engine的Python SDK写一个主要依赖邮件的应用程序。我发现Google 允许你通过它的API接收邮件,而且很容易就能获取到一些标准的信息,比如发件人、收件人、邮件内容等等。不过,如果我想确认一封邮件的发件人是否真的就是它所说的那个人(有点像Posterous那样做的),我该怎么做呢?我没有邮件的头部信息,所以无法检查发送服务器的IP地址的MX记录或者其他复杂的东西。
有没有什么好主意?
5 个回答
1
电子邮件通常不是一个可以验证的媒介,除非你用PGP或S/MIME来给邮件签名。如果你没有邮件的头部信息,那就没有什么可以验证的。
你能做的唯一事情就是给那个地址发邮件,问对方是否真的发了这条消息。这对那些发送欺诈邮件的人来说要伪造起来难得多(但也不是不可能)。
或者你也可以要求用户在每条消息里输入一个密码。
1
亚历克斯说得对,关于查看邮件的头部信息,但这并不能让你确认邮件的真正发件人:任何人都可以用他们想要的“发件人”地址发送邮件,所以不要把发件人地址当作确定谁发的邮件的可靠证据。
2
其实,虽然没有详细的文档,但这里的来源提到,你可以通过这个方便的对象的.original
属性来获取原始的mime消息。这个方便的对象其实是一个email.message.Message的实例,所以你应该能从中提取出邮件的头信息。不过,我不太确定这对你验证的需求有没有太大帮助。