如何阻止 mailx 触发 Postfix 的邮件传递报告?

如何阻止 mailx 触发 Postfix 的邮件传递报告?

我有一个脚本需要发送电子邮件来通知系统事件和状态 - 我认为这是一个非常常见的用例 - 我选择mailx在我的 Fedora Server 系统上使用它(为什么我不再记得了)。

一切都很顺利,直到最近一次升级,我开始收到每封发送的邮件的额外邮件。第一行标识邮件系统主机。第二行内容如下:

Enclosed is the mail delivery report that you requested.

只是我并没有有意或无意地请求电子邮件送达报告!它们只是在升级后才开始出现的。(要么是我客户端的垃圾邮件过滤器 - Thunderbird)正在帮我消灭它们,我想?!这很奇怪,有时做得很好,然后突然什么也没抓到?!-耸肩-)

我想我可以使用邮件阅读器的“过滤器”中的明确指令来摆脱这些,但我宁愿它们一开始就不被生成 - 发送的电子邮件才是有价值的,我只是不需要或不想要这些“传递报告”。

我从 mailx 的手册页开始。那里没什么用,或者至少我没有认出任何这种类型的设置。我强烈怀疑这是由mailx和的交互以某种方式生成的Postfix,尽管这只是一种预感。每次调用 时我都会收到一份邮件状态报告mailx,但当我通过alpineThunderbird从同一帐户通过同一Postfix安装发送邮件时,不会收到任何报告。

以下是代码使用的模式:

/bin/mailx -n -s "subject" -s from=from_address to_address < content

表示-n不读取任何本地配置。-S表示设置一个“变量”,在本例中指定一个发件人地址。

我获取了 Postfix 队列 ID 并使用 grep 在以下位置找到它/var/log/maillog

Aug 11 12:14:32 fs1 postfix/pickup[233386]: C834918E658F: uid=nnnn from=<SystemUsername>
Aug 11 12:14:32 fs1 postfix/cleanup[237953]: C834918E658F: message-id=<5f32ee18.AXOWyPor64xZtCVH%From@EmailAddress>
Aug 11 12:14:32 fs1 postfix/qmgr[4780]: C834918E658F: from=<SystemUsername@PostfixsPrimaryFQDN>, size=1511, nrcpt=1 (queue active)
Aug 11 12:14:32 fs1 postfix/local[237956]: C834918E658F: to=<Recipient@EamilAddress>, relay=local, delay=0.14, delays=0.05/0/0/0.08, dsn=2.0.0, status=sent (delivered to mailbox)
Aug 11 12:14:32 fs1 postfix/bounce[238851]: C834918E658F: sender delivery status notification: E2BC718E6D06
Aug 11 12:14:32 fs1 postfix/qmgr[4780]: C834918E658F: removed

我注意到,有时收货地址有扩展,有时没有。因此,我认为这可以排除已知的怪癖,即Postfix在要求进行扩展验证时发送状态电子邮件,检查“是否存在”。

在这种情况下,所有交付都是本地的,但它们可能是远程的 - 我现在没有实时发生这种情况 - 这是一个生产中的服务器。

我费尽心思寻找它们的位置,但大多数网页搜索都指向讨论退回状态消息的材料。不,错了!

系统:

Fedora Server 32 (booted into 31 presently)
mailx 12.5 7/5/10
postfix-3.5.4-2.fc32.x86_64

答案1

啊哈,我终于能够重现你的问题了。

如果您使用Heirloom mailxMail 命令的 (verbose) 选项,它将请求传递状态通知-v。不幸的是,这种行为似乎没有记录。手册页只说:

       -v     Verbose mode.  The details of  delivery  are  displayed  on  the
              user's terminal.

除了请求 DSN 之外,此选项只会将详细的状态消息打印到标准输出,而您可能不会对其进行任何操作。

-v在这种情况下打印的唯一消息是:

Mail Delivery Status Report will be mailed to <sender>.

您可以-v从命令行中删除它。

相关内容