如何打开Postfix始终发送DSNauthentication的发件人?

MacOS上的Mail程序有问题。 它没有select要求传递通知(例如,通知收到的电子邮件服务器接受电子邮件)和DSN邮件永远不会回应来自邮件(在MacOS上)的电子邮件。 非常无用!

当邮件客户端询问它时,我的后缀发送DSN。 例如,与雷鸟它的作品。

现在选项closures这个:

smtpd_discard_ehlo_keywords = etrn, silent-discard 

是否有可能总是发送DSN的发件人(谁通过这个后缀发送电子邮件)?

这将违反如何在RFC 3464中定义交付通知 (DSN)。 只有客户特别要求才能发送成功的DSN。

由于DSN需要修改协议级别MAIL FROMRCPT TO命令,因此服务器必须报告支持的DSN。 首先宣布服务器支持扩展SMTP,然后作为对EHLO命令的回复,支持的function列表包括250 DSN ,例如在最后一行:

 <-- 220 mail.example.com ESMTP Postfix (Debian/GNU) --> EHLO client-198.51.100.123.example.com <-- 250-mail.example.com <-- 250-PIPELINING <-- 250-SIZE 10240000 <-- 250-VRFY <-- 250-ETRN <-- 250-STARTTLS <-- 250-ENHANCEDSTATUSCODES <-- 250-8BITMIME <-- 250-DSN 

Postfix 支持DSN限制谁可以请求的选项。 从简介:

具体来说,DSN支持给电子邮件发件人指定的能力:

  • 什么通知发送:成功,失败,延迟,或没有。 通常情况下,Postfix只在邮件递送延迟或递送失败时通知发件人。

  • 在失败的情况下返回什么内容:只有邮件标题或完整的邮件。

  • 作为投递状态通知的一部分返回的信封标识。 这标识了消息提交事务,并且不能与标识消息内容的消息ID混淆。

DSN支持的实现涉及SMTP MAIL FROM和RCPT TO命令的额外参数,以及两个Postfix sendmail命令行选项,它们提供额外SMTP命令参数的子function。

我们稍微解释一下。 正常简单的SMTP连接将继续:

 --> MAIL FROM: [email protected] <-- 250 2.1.0 Ok --> RCPT TO: [email protected] <-- 250 2.1.5 Ok 

但是DSN支持和请求,它可能是(取决于要求)例如

 --> MAIL FROM: [email protected] RET=HDRS <-- 250 2.1.0 Ok --> RCPT TO: [email protected] NOTIFY=FAILURE,DELAY ORCPT=rfc822;[email protected] <-- 250 2.1.5 Ok 

这里, RET=HDRS意味着只有标题应该被添加到自动回复中,并且NOTIFY=指定只报告失败和延迟。 如果还有NOTIFY=SUCCESS ,那么报告将会发送任何结果,即会改变Postfix的正常行为。 ( ORCPT只是添加原始收件人。)

因此,如果服务器没有明确要求,服务器根本就不应该自由地发送成功发送通知。

这太糟糕了Mac OS X Mail不支持这个function。 这并不奇怪,因为这个客户端甚至不支持阅读回执。 幸运的是,读取收据是一个不涉及对SMTP命令的修改的不同标准:它通过向电子邮件内容添加Disposition-Notification-To标头来工作。 这可能从Mac OS Xterminal(添加,删除和检查):

 defaults write com.apple.mail UserHeaders '{"Disposition-Notification-To" = "u@example"; }' defaults delete com.apple.mail UserHeaders defaults read com.apple.mail UserHeaders