MacOS上的Mail程序有问题。 它没有select要求传递通知(例如,通知收到的电子邮件服务器接受电子邮件)和DSN邮件永远不会回应来自邮件(在MacOS上)的电子邮件。 非常无用!
当邮件客户端询问它时,我的后缀发送DSN。 例如,与雷鸟它的作品。
现在选项closures这个:
smtpd_discard_ehlo_keywords = etrn, silent-discard
是否有可能总是发送DSN的发件人(谁通过这个后缀发送电子邮件)?
这将违反如何在RFC 3464中定义交付通知 (DSN)。 只有客户特别要求才能发送成功的DSN。
由于DSN需要修改协议级别MAIL FROM
或RCPT 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