来自Indy消息的额外标题信息

时间:2012-10-01 08:09:46

标签: delphi indy

我正在使用Delphi 2007中的Indy从IMAP帐户阅读电子邮件标题。

Msg(TidMessage)Date属性给出了电子邮件发送的日期和时间(来自客户端),我试图通过检查ExtraHeaders属性来获取服务器收到电子邮件的日期和时间,这可以吗可以吗?

到目前为止,我已经尝试过Msg.ExtraHeaders.Values ['Received']和Msg.ExtraHeaders.Text,两者都返回一个空字符串。

我能以正确的方式解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

没有专门用于指示服务器收到电子邮件的日期/时间的标头。如果服务器想要为此目的创建自定义"X-..."标头,则由其自己的排除决定。你无法用Indy强迫服务器这样做。

据说,所有电子邮件都有一系列"Received"标题,用于提供电子邮件通过哪些服务器到达目的地的历史记录。您可以从TIdMessage.Headers中提取该数据,例如Headers.Extract('Received')(请记住,可以有多个"Received"标头),然后根据需要手动解析。接收电子邮件时TIdMessage.ExtraHeaders没有任何意义,只有在发送时才有意义。