这些看起来动态的电子邮件是如何工作的? 这个+符号在电子邮件地址中的作用是什么。
似乎接收这些电子邮件的不是真正的电子邮件收件箱。
我的想法是,当我在某处读到它时,这些会转到"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。我建议你有两个选择:
php.net/imap
将所有电子邮件定向到 IMAP 邮箱并使用PHP 打开邮箱,阅读电子邮件并传递其内容。简单,可靠(因为电子邮件始终被存储)但不是即时的(这可能由每n
分钟触发一次cron)。电子邮件管道
如果您有权管理您的服务器或cPanel,那么您可以将电子邮件定向到PHP脚本以阅读电子邮件。这是即时的,但需要在服务器上进行更多配置,如果脚本不可用,则电子邮件将被退回。
我自己使用选项 2,因为电子邮件的即时解析对我来说更重要。
要在电子邮件中存储标识符(在本例中为话题 ID),您可以按照建议使用reply-to
地址(使用 support+12345@domain.com
,support@domain.com
作为电子邮件地址,12345
是话题 ID),也可以将话题 ID 存储在电子邮件的主题或正文中。
在我的情况下,我使用 abc123@subdomain.domain.com
abc123
是我需要的哈希(在您的示例中为用户 ID 和线程 ID),任何发送到 Web 服务器的电子邮件*@subdomain.domain.com
定向到 Web 服务器,而 Web 服务器又定向到 PHP 电子邮件管道脚本。
您可以选择选择哪条路线,但链接可以为您提供进一步的帮助。