我正在使用Delphi 2007中的Indy从IMAP帐户阅读电子邮件标题。
Msg(TidMessage)Date属性给出了电子邮件发送的日期和时间(来自客户端),我试图通过检查ExtraHeaders属性来获取服务器收到电子邮件的日期和时间,这可以吗可以吗?
到目前为止,我已经尝试过Msg.ExtraHeaders.Values ['Received']和Msg.ExtraHeaders.Text,两者都返回一个空字符串。
我能以正确的方式解决这个问题吗?
答案 0 :(得分:1)
没有专门用于指示服务器收到电子邮件的日期/时间的标头。如果服务器想要为此目的创建自定义"X-..."
标头,则由其自己的排除决定。你无法用Indy强迫服务器这样做。
据说,所有电子邮件都有一系列"Received"
标题,用于提供电子邮件通过哪些服务器到达目的地的历史记录。您可以从TIdMessage.Headers
中提取该数据,例如Headers.Extract('Received')
(请记住,可以有多个"Received"
标头),然后根据需要手动解析。接收电子邮件时TIdMessage.ExtraHeaders
没有任何意义,只有在发送时才有意义。