Sendmail 传递状态通知如下所示:
The original message was received at Fri, 8 Feb 2013 10:49:11 +0100
from host1.example.local [192.168.0.1]
----- The following addresses had permanent fatal errors -----
<[email protected]>
(reason: 550 Host unknown)
----- Transcript of session follows -----
550 5.1.2 <[email protected]>... Host unknown (Name server: example.com.: host not found)
... while talking to mx.example.org.:
>>> DATA
<<< 450 4.7.1 <[email protected]>: Recipient address rejected: Policy Rejection- Please try later.
<[email protected]>... Deferred: 450 4.7.1 <[email protected]>: Recipient address rejected: Policy Rejection- Please try later.
<<< 554 5.5.1 Error: no valid recipients
... while talking to mx.example.net.:
>>> DATA
<<< 451 4.7.1 Service unavailable - try again later
<[email protected]>... Deferred: 451 4.7.1 Service unavailable - try again later
对我来说这一切都很清楚(1 个错误地址,2 个被推迟灰名单)。但这对我的用户来说非常令人困惑:有Error
(恐慌);[email protected]
是有效的地址,但它在退回邮件中提到,所以显然没有送达等等。
有没有办法禁用Transcript of session follows
Sendmail 的部分 DSN?最好使用 中的某些选项sendmail.mc
。我希望它不需要使用类似于 BrainF*CK 的语言,其中sendmail.cf
编写了 中的重写规则。
CentOS5 上的 Sendmail 版本为 8.13.8,但 CentOS6 上的版本很快将升级为 8.14.4
答案1
基本上你不能。如果你愿意,你可以用全局 procmail 脚本(或类似脚本)过滤掉它。但你也可以尝试
define(`confERROR_MESSAGE', `text')dnl
看看会发生什么。在您的系统生成的邮件消息中,text
将在这些消息中预先添加。通过包含一些为您的用户提供更多线索的内容,您可能会成功地教育他们如何阅读此内容。您可以使用 sendmail 宏,如$u
;text
它们被展开。如果您有 bat 书第 4 版的副本,则在第 1027-1028 页中详细讨论了此选项。