将退信邮件错误发送到特定电子邮件地址

3
使用MailHost.send(),如何发送一封来自me@example.com的电子邮件,如果存在退信错误,则不会发送到me@example.com,而是发送到error@example.com
我已经尝试使用类似于Return-Path的标题,但没有成功。

1
在接收端,您无法影响“Return-Path:”标头;它会被接收MTA的信封发件人替换,因此您放置在那里的任何内容都将被覆盖。相反,您应该设置信封发件人(SMTP“MAIL FROM:<>”地址),这与标头无关。如果您有sendmail或兼容的底层程序,则其-f选项是解决方案。 - tripleee
Tripleee 的意见是:MailHost.send() 函数的等效方法是将退信接收邮件作为“发件人”地址,并仅在电子邮件中使用 me@example.com 作为“From:” 头部。 - Martijn Pieters
糟糕,看起来如果您在send()方法中同时设置mfrom关键字参数,MailHost会明确替换From头。 - Martijn Pieters
@Martin:是的,我也尝试过这个... mfrom 会替换掉 From 头部... - Jihaisse
请看类似问题的这个答案:https://dev59.com/OHM_5IYBdhLWcg3ww2Ob#1247155 - Babblo
2个回答

1
我认为你可以先验证电子邮件地址是否存在且有效,然后再将邮件路由到相应的位置。我发现以下选项提供了验证有效电子邮件地址的 API:
1 - Mashape 2 - Free Email Verifier 3 - Swift Email Verifer 4 - Mailgun 希望这些链接中的一个能对你有所帮助。

这将最终适用于非有效电子邮件。但对于像邮箱已满等错误的电子邮件,这将无法工作。 - Jihaisse

0

您可以使用2个标头:

发件人 - 实际发送者的地址,代表在From:字段中列出的作者

错误至 - 指示应将错误消息发送到何处。如果没有此行,则它们会发送到发件人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接