0

Delphi2007でIndyを使用してIMAPアカウントから電子メールヘッダーを読んでいます。

Msg(TidMessage)Dateプロパティは、(クライアントから)電子メールが送信された日時を示します。ExtraHeadersプロパティを調べて、サーバーが電子メールを受信した日時を取得しようとしていますが、これは実行できますか?

これまで、Msg.ExtraHeaders.Values ['Received']とMsg.ExtraHeaders.Textを試しましたが、どちらも空の文字列を返しました。

私はこれを正しい方法で行っていますか?

4

1 に答える 1

1

サーバーが電子メールを受信した日時を示すためのヘッダーは特にありません。"X-..."サーバーがその目的のためにカスタムヘッダーを作成したい場合、それはそれ自身の裁量次第です。Indyを使用して、サーバーに強制的に実行させることはできません。

そうは言っても、すべての電子メールには一連の"Received"ヘッダーがあり、電子メールが宛先に到達するために通過したサーバーの履歴を提供します。TIdMessage.Headerswithなどからそのデータを抽出し(複数のヘッダー Headers.Extract('Received')が存在する可能性があることに注意してください)、必要に応じて手動で解析できます。メールを受信するときは意味がなく、送信するときだけ意味があります。"Received"TIdMessage.ExtraHeaders

于 2012-10-02T00:01:38.753 に答える