将电子邮件导入IMAP邮箱

时间:2013-03-05 13:36:50

标签: php email imap

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

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

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

我的问题;每个电子邮件应包含哪些字段,是否有人能够举例说明我如何做到这一点(imap_append()或......?)

2 个答案:

答案 0 :(得分:0)

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

答案 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。