2013-03-05 80 views
0

我能夠使用PHP從單個郵箱檢索電子郵件並將它們存儲到數據庫中。儘管我想要將消息「還原」回數據庫。將電子郵件導入到IMAP郵箱

我collegue告訴我應該看看它配備了PHP的imap_append()功能。儘管只有很少的例子可用。

我不知道哪些字段我需要插入到始終確保消息被「恢復」是正確的。我喜歡數據庫中電子郵件的所有字段(但如果需要,我可以添加額外的字段)。

我的問題;該字段應該每封電子郵件包含,是任何人都可以給我的,我怎麼能做到這一點(imap_append()還是...?)爲例

回答

0

追加只需要兩個參數:INTERNALDATEFLAGS。其他一切都包含在消息本身中。您可以從原始消息中獲取日期和標誌。或者,您可以通過讀出日期標題並將其用作內部日期來僞造它。

+0

我可以閱讀從原來的消息幾乎所有領域,但isen't有什麼辦法我怎麼可以(甚至獲取原始郵件作爲一個包中),只是不知何故上傳包「恢復」了嗎? – Floris 2013-03-05 14:38:00

0

閱讀有關在IMAP RFCAPPEND Command。引用它:

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。在$郵箱中,您放置文件夾的名稱(例如「INBOX」),並且要還原的郵件數據放入$ message。