iPhone上错误的电子邮件日期(imap_append)

时间:2012-11-20 15:14:03

标签: email date migration imap

我正在使用PHP Imap库将邮件从一个imap服务器复制到另一个服务器。 见http://www.php.net/manual/en/ref.imap.php

我的脚本运行正常,但邮件日期有问题。

如果我在MS Outlook中连接到新的imap帐户,日期是正确的,但如果我使用我的iPhone连接到同一帐户,则电子邮件日期显示为今天的日期(复制过程的日期)

所以我的问题是: iPhone如何从电子邮件标题中检测电子邮件日期,如何在使用imap_append时使标题正确?

1 个答案:

答案 0 :(得分: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('d-M-Y H:i:s O',$ headerinfo-> udate);

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

我已经测试了你的解决方案并且它有效,iPhone上的日期现在是正确的。