我正在解决一个间歇性问题,其中一些国际字符在通过 sendmail 后似乎格式不正确。
我最近看到了这篇描述F=7
交付代理标志的文章。具体来说,文章提到
从 V8.7 开始,F=7 传递代理标志可用于抑制某些类型的 MIME 转换。例如,如果“EightBitMode”选项(第 1025 页上的“EightBitMode”)设置为
p
(传递 8)并且如果邮件在其正文中包含 8 位 MIME 数据,则此 F=7 传递代理标志将强制 sendmail 使用以下 SMTP 错误,并以 EX_DATAERR 退出:
我的问题是:sendmail 专门寻找什么来确定下游 MTA 是否支持 8 位 mime?作为对 a 的响应EHLO
,下游服务器正在做广告:
250-PIPELINING
250-SIZE 200000000
250-VRFY
250-STARTTLS
250-ENHANCEDSTATUSCODES
250 8BITMIME
请注意,它是250 8BITMIME
而不是250-8BITMIME
(用破折号)。这是否足以让 sendmail 认为远程源不支持 8bitmime?
不,这称为延续,它仅表示该行是 SMTP 回复的最后一行。
通常8BITMIME应该是唯一需要表明另一端的 MTA 能够处理 8 位消息。(这是相关 RFC6152 的外部标记。)