2010-01-14 229 views
3

首先我知道,電子郵件召回很少起作用,然後通常只與Microsoft Exchange服務器通信。SMTP電子郵件從PHP回撥

儘管有限制,客戶端已經請求了此功能。

我的理解是,Microsoft Exchange中的RECALL功能是SMTP協議的專有擴展,並向客戶端發送一個要求提取RECALL的新電子郵件。客戶然後盡最大努力回想消息。

我沒有找到關於SMTP的RECALL擴展是什麼的文檔,而且我也不是很喜歡拔出wireshark來追蹤它。我確實發現了SMTP正在進行的RFC擴展http://tools.ietf.org/html/draft-leiba-morg-message-recall-00的建議,我認爲這與Microsoft的解決方案類似。

因爲我們的解決方案是基於PHP的,所以我問: 在PHP中是否存在一種方法來發送先前發送的電子郵件的SMTP召回請求?

問候 沃爾維克

回答

3

我不認爲這有什麼用SMTP。

相反,如果您嘗試向您的非Outlook操作的電子郵件帳戶發送召回消息,則可以看到它只是一封電子郵件。我的猜測是,無論是接收Exchange服務器還是Outlook客戶端都會識別這些消息並執行相應的操作。

召回消息的內容似乎很簡單,電子郵件標題中沒有任何明顯的興趣。消息體(我不能以純文本的形式我在哪裏,現在,不幸的是查看)只是說:

李四想召回 消息,「富酒吧主題」。

在任何情況下,我懷疑任何PHP電子郵件庫支持開箱即用。但是,它應該相當容易實現,因爲它可能只是要求您創建一個合適的電子郵件模板並用主題,名稱和消息ID填充空白。

+1

+1我認爲沒有比這更多的了。使用正確的頭文件應該很容易在PHP中實現。 – 2010-02-17 11:53:53

+1

聰明的方式找出召回消息發生了什麼:) 似乎也易於實施。 當你有機會時,你介意以原始文本格式發佈召回郵件嗎? – dparnas 2010-02-17 12:01:59

+0

@dparnas:如果我在下班回家時記得它,我會發布它:)我需要通過SSH訪問我的帳戶,這是我沒有的。 – csl 2010-02-17 12:09:44

1

客戶是否特別要求的互操作性與Exchange和回憶,或者她使用根據什麼她是後一個例子嗎?

如果是後者,我建議您在電子郵件實際發送到SMTP服務器之前使用寬限期來提出一個備用解決方案。對用戶來說,它看起來像電子郵件發送,但她可以在寬限期內撤銷發送(例如10分鐘)。

- 阿爾夫

+0

感謝您的答覆Alf。 是的,客戶明確指出應該可以召回電子郵件。但是,沒有提及Microsoft Exchange。 發送前的寬限期將成爲我們的備份解決方案。 – dparnas 2010-01-14 15:41:10