带有 + 的电子邮件如何工作,例如“support+id160211@somedomain.com”


how do emails with + in them works e.g "support+id160211@somedomain.com"

这些看起来动态的电子邮件是如何工作的? 这个+符号在电子邮件地址中的作用是什么。

似乎接收这些电子邮件的不是真正的电子邮件收件箱。

我的想法是,当我在某处读到它时,这些会转到"support@somedomain.com"。 但是那有什么意义呢。我主要看到的是,您打开一些支持票证或线程,您可以直接回复收到的电子邮件,并且您的电子邮件回复将添加到线程/票证中。

但我仍然不明白这在幕后是如何工作的。

我希望在我的应用程序中实现类似的东西,用户可以回复我们发送的电子邮件(我不确定当我发送原始邮件时应该为回复地址放什么),然后我想捕获回复或以某种方式在我的脚本中阅读它,以便我可以将其保存为线程的注释。

我使用sendmail发送电子邮件,目前来自地址设置为"support@somedomain.com"..somedomain.com 是从bluehost购买的,它的mx记录设置为谷歌应用程序提供的记录。

我不知道我的下一步是什么。

应忽略+符号及其之后的任何内容。这是最终用户(电子邮件地址所有者)的一项功能。

这允许user@gmail.com使用发送到user@gmail.com的电子邮件注册user+stackoverflow@gmail.com,但允许收件人查看其注册位置。如果地址被传递(例如,传递给垃圾邮件发送者),那么您可以查看您的地址来自哪里。

并非所有(事实上,很少)MTA都支持这一点,尽管它是RFC 5322和RFC 5233中的标准。

RFC 5322 告诉我们,只要它们充当"标记化点"(即不是 @ 符号之前用户的开始或结束),就可以允许以下内容:

! # $ % & ' * + - / = ?  ^ _ ` . { | } ~

gMail支持这个,但它是我所知道的唯一一个。

<小时 />

你说你想实现电子邮件到PHP。我建议你有两个选择:

  1. php.net/imap
    将所有电子邮件定向到 IMAP 邮箱并使用PHP 打开邮箱,阅读电子邮件并传递其内容。简单,可靠(因为电子邮件始终被存储)但不是即时的(这可能由每n分钟触发一次cron)。

  2. 电子邮件管道
    如果您有权管理您的服务器或cPanel,那么您可以将电子邮件定向到PHP脚本以阅读电子邮件。这是即时的,但需要在服务器上进行更多配置,如果脚本不可用,则电子邮件将被退回。

我自己使用选项 2,因为电子邮件的即时解析对我来说更重要。

要在电子邮件中存储标识符(在本例中为话题 ID),您可以按照建议使用reply-to地址(使用 support+12345@domain.comsupport@domain.com 作为电子邮件地址,12345 是话题 ID),也可以将话题 ID 存储在电子邮件的主题或正文中。

在我的情况下,我使用 abc123@subdomain.domain.com abc123是我需要的哈希(在您的示例中为用户 ID 和线程 ID),任何发送到 Web 服务器的电子邮件*@subdomain.domain.com定向到 Web 服务器,而 Web 服务器又定向到 PHP 电子邮件管道脚本。

您可以选择选择哪条路线,但链接可以为您提供进一步的帮助。

相关文章: