我可以使用PHP从单个邮箱中检索电子邮件并将其存储到数据库中。虽然我想选择将消息“恢复”回数据库。
我的同事告诉我,我应该看一下PHP附带的imap_append()
函数。虽然只有很少的例子可供使用。
我不确定我需要插入哪些字段以确保消息“恢复”正确。我喜欢我的数据库中的电子邮件中的所有字段(但如果需要,我可以添加额外的字段)。
我的问题;每个电子邮件应包含哪些字段,是否有人能够举例说明我如何做到这一点(imap_append()
或......?)
答案 0 :(得分:0)
附加只需要两个参数:INTERNALDATE
和FLAGS
。其他所有内容都包含在邮件本身中。您可以从原始邮件中获取日期和标志。或者,您可以通过读出日期标题并将其用作内部日期来伪造它。
答案 1 :(得分:0)
了解APPEND Command中的IMAP RFC。引用它:
6.3.11. APPEND Command
Arguments: mailbox name
OPTIONAL flag parenthesized list
OPTIONAL date/time string
message literal
您不必担心选项参数。要考虑的重要事项是邮箱名称(您上传邮件的文件夹)和邮件文字(邮件本身)。消息本身是包含所有标头字段的MIME数据,因此您实际上不需要担心这些。您只需要确保将整个消息数据存储在数据库中,这样就可以恢复完整的消息。
我从来没有在PHP上使用IMAP,但是我已经看过你正在讨论的imap_append()命令,它确实有与我刚才解释的相对应的参数 - 它们是$ mailbox和$信息。在$ mailbox中,您输入了文件夹的名称(例如“INBOX”),要恢复的消息数据将进入$ message。