【问题标题】:How does GitHub 'Reply by Email' work?GitHub“通过电子邮件回复”如何工作?
【发布时间】:2017-08-17 18:49:03
【问题描述】:

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

【问题讨论】:

  • 您可以轻松连接并检查电子邮件帐户,阅读电子邮件内容并采取相应措施。您的问题到底是什么?

标签: php email


【解决方案1】:

一种常见的方法是在外发电子邮件中设置唯一的消息 ID,然后查看 In-Reply-To 标头以查看这是回复的电子邮件。这使您可以将服务器应用程序的消息传递系统与电子邮件相匹配。例如,如果您发送代表 ID 为 1234 的帮助台工单的电子邮件,则 Message-ID 可能类似于

ticket-1234@myserver

然后,在运行良好的电子邮件客户端 (I'm looking at you Android) 中,当您点击回复时,回复的标题为 In-Reply-To: ticket-1234@mysever。您可以通过添加安全令牌来进一步确保人们无法伪造消息(例如ticket-1234-hf29e9f2gf2e9fh29f@myserver)。该安全令牌在您发送第一条消息时在服务器上生成,然后在回复中得到确认。

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

【讨论】:

【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您必须设置邮件服务器才能接收邮件回复。
    IMAP 服务器上的 SIEVE 过滤器可用于在检测到某个过滤器时执行一些操作。

    但你不能只使用 PHP 来制作那种类型的系统。

    【讨论】:

    • 谢谢亚历克斯!除了 PHP 之外,我还需要使用什么来构建它?另外,你说的筛子是什么意思?那是邮件服务器内部的工具吗?关于我们可以使用哪种邮件服务器有什么建议吗?
    • 您可以将 Dovecot(一个 IMAP 服务器)与 SIEVE 分机一起使用。 (见wiki.dovecot.org/LDA/Sieve)。 SIEVE 是一种过滤器语言,用于过滤一些带有过滤器的电子邮件,如收件人电子邮件地址、主题、文本到电子邮件等。
    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2019-08-28
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多