0

我能够使用 PHP 从单个邮箱中检索电子邮件并将它们存储到数据库中。虽然我希望可以选择将消息“恢复”回数据库。

我的同事告诉我,我应该看看imap_append()PHP 附带的函数。虽然只有很少的例子可用。

我不确定我需要插入哪些字段以始终确保消息“恢复”正确。我喜欢数据库中电子邮件中的所有字段(但如果需要,我可以添加额外的字段)。

我的问题; 每封电子邮件都应该包含哪些字段,有没有人能给我一个例子来说明我如何做到这一点(imap_append()或......?)

4

2 回答 2

0

阅读IMAP RFC中的APPEND 命令。引用它:

6.3.11. APPEND Command

   Arguments:  mailbox name
               OPTIONAL flag parenthesized list
               OPTIONAL date/time string
               message literal

您不必担心选项参数。要考虑的重要事项是邮箱名称(您将邮件上传到的文件夹)和邮件文字(邮件本身)。消息本身是包含所有标头字段的 MIME 数据,因此您真的不需要担心这些。您只需要确保将整个消息数据存储在数据库中,这样您就可以恢复完整的消息。

我从未将 IMAP 与 PHP 一起使用,但我查看了您所说的imap_append()命令,它确实具有与我刚才解释的内容相对应的参数 - 它们是 $mailbox 和 $message。在$mailbox 中输入文件夹的名称(例如“INBOX”),要恢复的消息数据进入$message。

于 2013-03-05T17:39:52.310 回答
0

Append 只接受两个参数:INTERNALDATEFLAGS。其他所有内容都包含在消息本身中。您可以从原始消息中获取日期和标志。或者,您可以通过读出日期标题并将其用作内部日期来伪造它。

于 2013-03-05T14:34:05.350 回答