gpt4 book ai didi

email - 在 webapp 中处理未送达的电子邮件

转载 作者:行者123 更新时间:2023-12-03 21:42:57 25 4
gpt4 key购买 nike

我们有一个典型的商业网络应用程序,它允许我们的用户向他们的客户发送带有产品的电子邮件。我们在 FROM 字段中设置用户电子邮件,以便客户端可以直接回复用户。问题是由于 SMTP 协议(protocol),未送达的电子邮件通知会返回到我们的电子邮件地址(我们发送电子邮件的帐户地址)。

您知道处理这些未送达电子邮件的优雅方式吗?我的意思是让发件人知道他的邮件没有送达的最简单方法。

最佳答案

首先,重要的是要了解“发件人:” header (收件人在其电子邮件客户端中看到)和发件人地址(也称为信封返回路径,或 SMTP“MAIL FROM”命令的参数)之间的区别)。发件人地址是无法传递电子邮件时退回邮件的位置,因此是另一个名称返回路径。

SMTP 不限制您使用哪个地址作为发件人地址(除非它必须在语法上有效),但是您使用的任何 SMTP 客户端库都可能,因此您需要检查一下。

更改发件人地址是您可以做一些聪明的事情来帮助检测电子邮件退回并将它们报告回网络应用程序或发件人的地方。您将看到的最常见的事情是在发件人地址中对收件人地址进行编码,例如发件人地址如下:sender+recipient=recipientdomain.com@senderdomain.com。负责 senderdomain.com 的 MTA 需要知道将 sender+foo@senderdomain.com 的所有电子邮件传送到 sender@senderdomain.com ——但这是一个相当普遍的要求。然后,您获取收到的电子邮件,而不是尝试从内容中的退回邮件(可能是任何格式)中找出收件人是谁,您可以直接从收件人地址获取它。

您也可以做更复杂的事情,例如散列收件人地址,使其在发件人地址中不直接可见,例如发件人+e72fab38fb@senderdomain.com。您可以为已发送的电子邮件添加一些标识符,以防您向同一个地址发送多封电子邮件并想知道哪一封被退回。

这些技巧被称为 Variable Envelope Return Path或VERP,通常由邮件列表软件实现。

关于email - 在 webapp 中处理未送达的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com