GitHub';通过电子邮件回复';工作


How does GitHub 'Reply by Email' work?

我注意到很多网站,如Facebook和GitHub,都允许您回复电子邮件通知,然后使用唯一的回复地址将回复发送回应用程序。这在后端是如何工作的?我搜索了很多,但只发现人们使用了唯一的回复地址。这是可以理解的,但是,他们用什么来接收这些电子邮件?这些公司设置电子邮件服务器吗?我正在尝试使用PHP来构建它。

一种常见的方法是在传出的电子邮件中设置唯一的消息ID,然后查看"回复"标题,查看这是在回复哪封电子邮件。这可以让您将服务器应用程序的消息系统与电子邮件相匹配。例如,如果您发送一封代表ID为1234的服务台票证的电子邮件,则消息ID可能类似于

ticket-1234@myserver

然后,在工作良好的电子邮件客户端中(我看着你的Android),当你点击回复时,回复的标题是in Reply To:ticket-1234@mysever.您可以通过添加安全令牌来确保人们不会伪造消息(例如。ticket-1234-hf29e9f2gf2e9fh29f@myserver)。该安全令牌是在您发送第一条消息时在服务器上生成的,然后在回复中得到确认。

这通常有效,但当电子邮件客户端的行为不正常时,可能会引起真正的头痛!

这就是GitLab如何通过在电子邮件地址中使用标识符来管理电子邮件,并在用户回复时捕获它。尽管它与任何脚本语言(如PHP)无关,并且使用服务器配置,但这正是后端服务器支持电子邮件回复功能所做的。

您必须设置一个邮件服务器来接收邮件答复
IMAP服务器上的SIEVE筛选器可用于在检测到某个筛选器时执行某些操作。

但是,您不能只使用PHP来创建这种类型的系统。