Max*_*ams 35 email exim bounce
在我们的rails应用程序中,我们发送一些系统生成的电子邮件,其中"发件人"地址设置为noreply@ourdomain.com.如果这些反弹,他们会被我们的邮件服务器发回这个地址.但是,我想做的是不要将退回的电子邮件发送回noreply@ourdomain.com,而是发送到不同的地址,例如bounced@ourdomain.com.
是否有一个标题或我可以在电子邮件中设置的内容将实现此目的,而我不必去调查我们的电子邮件服务器的变幻莫测?如果相关,我们会使用exim发送邮件.
干杯,最大
经过大量关于exim配置的阅读后,我在exim4中自己想出了这一点.
首先,您希望您的应用添加以下标头:
Return-Path: <bounced@yourdomain.com>
Run Code Online (Sandbox Code Playgroud)
带或不带括号的工作.Exim将以任何方式添加括号.
其次,这是困难的部分.Exim总是希望用发送它的unix用户覆盖我的Return-Path:地址.您可以使用Ubuntu中的/ etc/email-addresses为Web应用程序的用户设置静态电子邮件,但这仍然会忽略Return-Path标头.以下是我如何修改我的exim配置以尊重Web应用程序的Return-Path:
在主配置区域添加:
return_path_remove = false
Run Code Online (Sandbox Code Playgroud)
在适当的路由器配置中(例如dnslookup):
dnslookup:
# ...
errors_to = ${if def:h_return-path: {${address:$h_return-path:}} fail}
headers_remove = return-path
no_more
Run Code Online (Sandbox Code Playgroud)
现在,exim应该在信封级复制Return-Path头地址并删除原始的Return-Path头.
我尝试了很多其他配置指令,这是实际对我有用的唯一方法.
3年为时已晚,但以防万一有人以这种方式来。Return-Path是正确的标头,但正如詹姆斯·加里斯(James Garriss)上文指出的那样,必须将其放置在进行最终交付的网站上。你不能只是坚持自己。
如果您通过直接连接到SMTP服务器来写电子邮件,那么这很容易-该MAIL命令包含返回路径。如果发送
MAIL FROM:<me@foo.com>
Run Code Online (Sandbox Code Playgroud)
到SMTP服务器,然后弹跳将返回到me@foo.com。
如果您不构建SMTP,并且正在运行MTA(即exim / etc),则必须为MTA找到命令行开关。对于sendmail,请-f me@foo.com“设置发件人的地址”,Return-Path最后以最终发送的邮件中的地址me@foo.com为准,并得到退信(我对自动生成的电子邮件完全如此)。我没有在exim上尝试过此方法,但是它具有完全相同的选项,并且应该可以使用。
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...地址,请将From原始电子邮件 MIME 消息中的标题设置为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 ...
Run Code Online (Sandbox Code Playgroud)
如您所见,这Return-Path是一个专用于处理退回的地址。但是From地址是noreply@...邮件。这意味着这封电子邮件实际上是由这个退回处理地址发送的,而不是由 noreply 地址发送的。
Reply-To如果用户回复无回复电子邮件,您还可以看到专用于处理回复的标题。这些回复可能会立即被丢弃。
这是解决方案:
在电子邮件标题中,您可以设置:
From: "From Name" <from_name@ourdomain.com>
Reply-To: noreply@ourdomain.com
Errors-To: <bounced@ourdomain.com>
Return-Path: <bounced@ourdomain.com>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43444 次 |
| 最近记录: |