0

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

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

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

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

4

1 回答 1

1

没有专门用于指示服务器接收电子邮件的日期/时间的标题。如果服务器想要"X-..."为此目的创建自定义标头,则由它自己决定。您无法使用 Indy 强制服务器执行此操作。

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

于 2012-10-02T00:01:38.753 回答