我能够使用 PHP 从单个邮箱中检索电子邮件并将它们存储到数据库中。虽然我希望可以选择将消息“恢复”回数据库。
我的同事告诉我,我应该看看imap_append()
PHP 附带的函数。虽然只有很少的例子可用。
我不确定我需要插入哪些字段以始终确保消息“恢复”正确。我喜欢数据库中电子邮件中的所有字段(但如果需要,我可以添加额外的字段)。
我的问题; 每封电子邮件都应该包含哪些字段,有没有人能给我一个例子来说明我如何做到这一点(imap_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。
Append 只接受两个参数:INTERNALDATE
和FLAGS
。其他所有内容都包含在消息本身中。您可以从原始消息中获取日期和标志。或者,您可以通过读出日期标题并将其用作内部日期来伪造它。