2013-08-25 28 views
3

我注意到很多網站(如Facebook和GitHub)允許您回覆電子郵件通知,然後使用唯一的回覆地址將回復回復給應用程序。這在後端如何工作?我搜索了很多,但只發現人們使用唯一的回覆地址。這是可以理解的,但是,他們用什麼來接收這些電子郵件?這些公司是否設置電子郵件服務器?我正在嘗試使用PHP來構建它。GitHub'通過電子郵件回覆'如何工作?

+2

人們可以很容易地連接並檢查一個電子郵件帳戶,閱讀電子郵件的內容並採取相應的行動。你的問題到底是什麼? – Lix

回答

2

您必須設置郵件服務器來接收郵件答案。
當檢測到某個過濾器時,可以使用IMAP服務器上的SIEVE過濾器進行一些操作。

但是,您不僅可以使用PHP來創建該類型的系統。

+0

謝謝亞歷克斯!除了PHP之外,還需要使用什麼來構建它?另外,SIEVE是什麼意思?這是一個內置郵件服務器的工具嗎?任何關於我們可以使用什麼樣的郵件服務器的建議? – Nag

+0

您可以使用Dovecot(IMAP服務器)和SIEVE分機。 (見http://wiki.dovecot.org/LDA/Sieve)。 SIEVE是一種過濾語言,用於過濾收件人電子郵件地址,主題,文本等電子郵件中的某些電子郵件等。 – netvision73

2

一個常見的方法是在發送的電子郵件中設置唯一的消息ID,然後查看In-Reply-To頭以查看回復的郵件。這可以讓你將你的服務器應用程序的消息系統與電子郵件進行匹配。例如,如果您發送代表服務檯票ID爲1234的電子郵件,郵件ID可能是像

票-1234 @ MYSERVER

然後,在電子郵件客戶端很好的工作(I'm looking at you Android) ,當您點擊回覆時,回覆的回覆包含In-Reply-To:ticket-1234 @ mysever。您可以進一步添加安全性令牌以確保人們無法僞造消息(例如ticket-1234-hf29e9f2gf2e9fh29f @ myserver)。當您發送第一條消息並在答覆中確認後,該服務器會生成該安全令牌。

這通常工作,但可能會導致真正的頭痛,當電子郵件客戶端不應該如他們應該的行爲!

+0

我和你一樣得出同樣的結論。 http://webmasters.stackexchange.com/questions/75796/how-to-set-up-email-to-trigger-http-requests-when-received – demoncodemonkey

0

This是GitLab如何通過在電子郵件地址中使用標識符來管理電子郵件,並在用戶回覆時捕獲它。雖然它與PHP等任何腳本語言無關並使用服務器配置,但這是後端服務器通過電子郵件功能支持回覆的功能。

+0

雖然這個鏈接可能回答這個問題,但最好包含這裏的答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17058926) – FelixSFD