Indy 10和MsgId

时间:2014-06-15 11:07:32

标签: delphi email indy10

我正在尝试对我的Delphi XE2应用程序中的线程发送和接收的电子邮件进行分组。我使用Indy 10组件,其想法是将电子邮件唯一的Message-ID与In-Reply-Tos链接。

  • 第一步是存储发出的线程的第一封电子邮件的Message-ID。这是启动帖子的电子邮件。
  • 第二步是为收到的电子邮件存储电子邮件In-Reply-Tos字段。通过链接Message-ID和In-Reply-To,我可以撰写电子邮件主题。

使用以下代码实现第一步:

FIdMessage1.MsgId:='Unique ID';
FIdMessage1.ExtraHeaders.Values['Message-Id'] := FIdMessage1.MsgId;

此处,电子邮件将在电子邮件的正确消息ID字段中以“唯一ID”发送出去。

当此电子邮件的收件人回复In-Reply-Tos时,不再是“唯一ID”,而是类似“< -9999999999999999999 @ unknownmsgid>”。收件人电子邮件服务器似乎覆盖了我的Message-ID。

如果服务器不覆盖我的Message-ID,我该怎么办? 如果我的方法错了,我可以做些什么来组织线程中发送/接收的电子邮件?

按主题组织电子邮件不是一种选择,因为可能存在具有相同主题的不同电子邮件主题。

**** **** UPDATE

我暂时解决了这个问题。

我删除了上面第一步中提到的代码,然后使用这段代码 Get email headers from GMail's "Sent items" folder

通过这种方式,我可以检索刚刚发送的电子邮件,并AMsgList[i].MsgId我可以看到电子邮件ID。

0 个答案:

没有答案