通过带保证ID的SMTP发送消息

时间:2011-02-02 13:35:33

标签: email smtp email-headers

好日子!
抱歉这么“明确”的问题,让我解释一下。在我的“程序”中,我通过(例如)gmail SMTP服务器发送一些电子邮件。让我们假设我发送的每封电子邮件都在标题中包含一些唯一的ID(由我生成)。有没有机会,从gmail检索消息后(例如,使用python imaplib),我将再次获得该唯一ID(在标题中)?
感谢

2 个答案:

答案 0 :(得分:2)

我刚刚对此进行了一些测试,它看起来很可能而且非常简单。

我使用Mail.php扩展来实现这一点(尽管如此)。在发送消息之前我添加了一个额外的标题(“Trevor”=>“我的测试”)。我在Gmail中收到了这封邮件并打了一个“显示原始内容”,其中包含标题。

然后我把这条消息拉下来(也是通过PHP),标题包含我输入的自定义行。

答案 1 :(得分:2)

通常,MTA会保留您引入的任何邮件标头。转发MTA是required to do so

  

如第6.4节所述,中继SMTP无需检查或     作用于消息数据的标题部分或正文,并且不得     这样做除了添加自己的“Received:”标题字段(第4.4节)     并且,可选地,尝试检测邮件系统中的循环(参见     第6.3节)。当然,这个禁令也适用于任何     修改这些标题字段或文本(另见第7.9节)。

通常,接收MTA还将添加与消息接收,垃圾邮件检查,循环检测等相关的更多标头。所以是的,无论您使用哪个目标SMTP服务器,GMail或其他方式,您几乎肯定会安全。

如果ID确实是唯一的,您可以考虑将它们作为your Message-ID header value的一部分使用。将Message-ID用于此目的的好处是,当用户回复您的邮件时,他们通常会在Message-ID和/或In-Reply-To标题中包含References值:< / p>

  

“Message-ID:”字段提供唯一的消息标识符     指特定消息的特定版本。该     消息标识符的唯一性由主机保证     生成它(见下文)。此消息标识符旨在     机器可读并且不一定对人类有意义。一个消息     标识符恰好与特定消息的一个版本有关;     对消息的后续修订每个都接收新消息     标识符

     

创建时使用“In-Reply-To:”和“References:”字段     回复邮件。它们保存原始的消息标识符     消息和其他消息的消息标识符(例如,     在回复本身就是回复的消息的情况下)。该     “In-Reply-To:”字段可用于标识消息(或     消息)新消息是一个回复,而     “引用:”字段可用于标识“线程”     会话。