2009-11-17 111 views
0

我正在尋找一種解決方案,使我能夠連接到郵箱,獲取電子郵件,對電子郵件正文應用特定修改(例如,更改內容),然後轉發新修改的電子郵件到新的電子郵件地址。 訣竅是這種修改不能破壞原始電子郵件的格式和標題,也不能丟失原始電子郵件中的任何附件。操作電子郵件的內容

將要執行的那種操作將需要由知道我的應用程序邏輯的外部進程完成。

我正在尋找的解決方案可以是一個外部軟件,它可以調用一些API來處理電子郵件的內容,甚至是我自己的代碼將調用的API本身。

我們的解決方案目前基於PHP,但任何其他解決方案也是可以接受的。

我開始使用Zend郵件庫,但我遇到了解電子郵件格式內部工作的問題。我不想開始在電子郵件格式中混淆mime對象。我只想改變消息的文本內容並保持其餘的不變。

+1

我們可以知道你究竟想要達到什麼目的嗎? – Franz 2009-11-17 14:19:40

+0

舉一個例子:我想查詢一個數據庫並獲取有關發件人的信息,並將結果追加到電子郵件的正文中。 – sagi 2009-11-17 17:15:59

回答

0

http://php.net/manual/en/book.imap.php - 允許您操縱電子郵件系統的函數。

+0

我知道。但是使用它我必須自己處理所有的MIME解析。這太危險和複雜了。我想要一些可以輕鬆讓我抓取消息的文本或HTML主體的東西,改變它並將消息轉發到其他地方,而消息的任何其他屬性都不會被觸及。 – sagi 2009-11-17 14:53:53

0

您使用的是什麼郵件服務器?在qmail中很容易處理任何包含電子郵件的郵件。您可以使用任何語言的任何腳本來處理電子郵件的行。

如果您有IMAP訪問您的服務器,您可以使用php IMAP lib。 http://www.php.net/manual/en/book.imap.php

0

我寫了一個庫,作爲一個更大的開源應用程序的一部分,可以幫助你一點。它是一個圍繞PHP imap函數的面向對象包裝,可以在google code找到。

不幸的是,這並不完全符合你的要求。你想要改變什麼?我可能只需要抓取一個原始版本,並專門搜索想要更改的內容,忽略整個mimetype處理,然後再重新發送整個消息。

重新發送郵件很簡單,這個(小教程)*發送帶附件的電子郵件可以刷新您的基本知識(儘管大部分內容可以跳過,因爲附件和mimetypes已經建立) 。

*我無法發佈該鏈接,因爲我的信譽不足以支持單個帖子中的兩個鏈接,因此我會將其添加到評論中。

+0

教程在這裏 - http://www.webcheatsheet.com/php/send_email_text_html_attachment.php – tedivm 2009-11-18 10:19:55