设置电子邮件标题,以便退回的电子邮件转到特定地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置电子邮件标题,以便退回的电子邮件转到特定地址相关的知识,希望对你有一定的参考价值。
在我们的rails应用程序中,我们发送一些系统生成的电子邮件,其中“发件人”地址设置为noreply@ourdomain.com。如果这些反弹,他们会被我们的邮件服务器发回这个地址。但是,我想做的是不要将退回的电子邮件发送回noreply@ourdomain.com,而是发送到不同的地址,例如bounced@ourdomain.com。
是否有一个标题或我可以在电子邮件中设置的内容将实现此目的,而我不必去调查我们的电子邮件服务器的变幻莫测?如果相关,我们会使用exim发送邮件。
干杯,最大
经过大量关于exim配置的阅读后,我在exim4中自己想出了这一点。
首先,您希望您的应用添加以下标头:
Return-Path: <bounced@yourdomain.com>
带或不带括号的工作。 Exim将以任何方式添加括号。
其次,这是困难的部分。 Exim总是希望用发送它的unix用户覆盖我的Return-Path:地址。您可以使用Ubuntu中的/ etc / email-addresses为Web应用程序的用户设置静态电子邮件,但这仍然会忽略Return-Path标头。以下是我如何修改我的exim配置以尊重Web应用程序的Return-Path:
在主配置区域添加:
return_path_remove = false
在适当的路由器配置中(例如dnslookup):
dnslookup:
# ...
errors_to = ${if def:h_return-path: {${address:$h_return-path:}} fail}
headers_remove = return-path
no_more
现在,exim应该在信封级复制Return-Path头地址并删除原始的Return-Path头。
我尝试了很多其他配置指令,这是实际对我有用的唯一方法。
3年太晚了,但万一其他人都是这样来的。 Return-Path
是正确的标题,但正如詹姆斯加里斯指出的那样,它必须由网站进行最终交付。你不能只是坚守自己。
如果您通过直接连接到SMTP服务器来编写电子邮件,那么这很容易 - MAIL
命令包含返回路径。如果你发送
MAIL FROM:<me@foo.com>
到SMTP服务器然后弹跳将返回到me@foo.com
。
如果您没有构建SMTP,并且您正在运行MTA(即exim / etc),那么您必须为MTA找到命令行开关。对于sendmail,-f me@foo.com
“设置发件人的地址”,最终作为最终发送邮件中的Return-Path
,me@foo.com
将获得反弹(我对自动生成的电子邮件这样做)。我没有尝试过exim,但它有完全相同的选项,它应该工作。
Errors-To已弃用,因此邮件服务器通常会忽略此标头 - 大多数服务器都会弹回“信封发件人”。
这是您的邮件客户端作为the connection to the SMTP服务器的一部分发送的电子邮件地址(不一定是发件人地址 - 尽管它通常是相同的)。
我不太了解Rails,但我找到了this - 尽管,据我所知,返回路径被MTA重置以匹配来自客户端的MAIL FROM信息,所以看起来你实际上无法设置它。
我认为您唯一能做的就是在服务器中设置退回地址。
这是解决方案:
在电子邮件标题中,您可以设置:
From: "From Name" <from_name@ourdomain.com>
Reply-To: noreply@ourdomain.com
Errors-To: <bounced@ourdomain.com>
Return-Path: <bounced@ourdomain.com>
Return-Path
标头由接收服务器写入,而不是由发送服务器写入。根据RFC 5321,它与MAIL FROM
命令中提供的地址相同。
即使您自己设置Return-Path
标头,接收服务器也会覆盖它。
现在,这就是问题,MAIL FROM
命令中的地址和From
头中的地址可能不同。接收用户没有看到MAIL FROM
地址。他们只看到From
标题地址。
因此,如果您想忽略跳出或希望它们转到特定地址,您应该在MAIL FROM
命令中使用该地址。
但是在From
标题中,您可以使用noreply@yourdomain.com
- 用户将看到此地址。
为了简化一点,您可以从handle_bounce@yourdomain.com
地址发送电子邮件。接收服务器会将退回发送到此地址。
要向您的用户显示noreply@yourdomain.com
地址而不是handle_bounce...
地址,请将原始电子邮件MIME消息中的From
标头设置为noreply...
地址。
我最近收到了Bitbucket的无回复电子邮件。这是原始消息:
Return-Path: <bounce-1231860_html-1209402755-103116181-132689-225@bounce.mailer.atlassian.com>
From: "Atlassian Bitbucket" <noreply@mailer.bitbucket.org>
To: <me@hostname.com>
Subject: Continuous delivery, without the headache.
Date: Wed, 28 Feb 2018 12:40:53 -0600
MIME-Version: 1.0
Reply-To: "Atlassian Bitbucket" <reply-fe3915707665057b741c71-1231860_HTML-1209402755-132689-225@mailer.atlassian.com>
... message body ...
如您所见,Return-Path
是一个专门用于处理弹跳的地址。但From
地址是noreply@...
邮件。这意味着这封电子邮件实际上是通过此退回处理地址发送的,而不是通过noreply地址发送的。
如果用户回复无回复电子邮件,您还可以看到专门用于处理回复的Reply-To
标头。那些回复可能会立即被丢弃。
以上是关于设置电子邮件标题,以便退回的电子邮件转到特定地址的主要内容,如果未能解决你的问题,请参考以下文章