2

PHP Imap ライブラリを使用して、ある imap サーバーから別の imap サーバーにメールをコピーしています。http://www.php.net/manual/en/ref.imap.phpを参照してください。

メールの日付に何か問題があるという事実を除いて、私のスクリプトは正常に動作します。

MS Outlook で新しい imap アカウントに接続すると、日付は正しいのですが、iPhone で同じアカウントに接続すると、メールの日付が今日の日付 (コピー プロセスの日付) として表示されます。

私の質問は次のとおりです。iPhone はどのようにして電子メールのヘッダーから電子メールの日付を検出し、imap_append を使用するときにヘッダーを正しくするにはどうすればよいですか?

4

1 に答える 1

1

メッセージがサーバー上で作成されるときにサーバーによって維持されるIMAPサーバーINTERNALDATEフィールドを使用している可能性があります。

RFCは、APPENDコマンドに対して次のことを示しています。

  If a date-time is specified, the internal date SHOULD be set in
  the resulting message; otherwise, the internal date of the
  resulting message is set to the current date and time by default.

追加するタイムスタンプを提供するインターフェイスはありますか?

編集

はい、imap_headerinfoを使用できます。

$ headerinfo = imap_headerinfo($ source_imap、$ message_number);
$ internal_date = date('dMY H:i:s O'、$ headerinfo-> udate);

imap_append($ imap_stream、$ mailbox、$ message、$ options、$ internal_date);

私はあなたのソリューションをテストしました、そしてそれは働きます、iPhoneの日付は今正しいです。

于 2012-11-20T21:00:01.700 に答える