我正在尝试对我的Delphi XE2应用程序中的线程发送和接收的电子邮件进行分组。我使用Indy 10组件,其想法是将电子邮件唯一的Message-ID与In-Reply-Tos链接。
使用以下代码实现第一步:
FIdMessage1.MsgId:='Unique ID';
FIdMessage1.ExtraHeaders.Values['Message-Id'] := FIdMessage1.MsgId;
此处,电子邮件将在电子邮件的正确消息ID字段中以“唯一ID”发送出去。
当此电子邮件的收件人回复In-Reply-Tos时,不再是“唯一ID”,而是类似“< -9999999999999999999 @ unknownmsgid>”。收件人电子邮件服务器似乎覆盖了我的Message-ID。
如果服务器不覆盖我的Message-ID,我该怎么办? 如果我的方法错了,我可以做些什么来组织线程中发送/接收的电子邮件?
按主题组织电子邮件不是一种选择,因为可能存在具有相同主题的不同电子邮件主题。
我暂时解决了这个问题。
我删除了上面第一步中提到的代码,然后使用这段代码 Get email headers from GMail's "Sent items" folder
通过这种方式,我可以检索刚刚发送的电子邮件,并AMsgList[i].MsgId
我可以看到电子邮件ID。