Sendmail 支持空组地址(又名列表语法)

Sendmail 支持空组地址(又名列表语法)

电子邮件组地址,例如undisclosed-recipients:;或是有效的寻址形式,根据a group:<[email protected]>,<[email protected]>;RFC 5322,例如示例见附录 A.1.3在 Sendmail 中,这称为“列表语法”。最小工作示例(适用于 Bash):

echo "Date: $(date --rfc-2822)
From: <[email protected]>
To: a group:<[email protected]>,<[email protected]>;
" | sendmail -t

但是,尝试提交带有空组的消息会导致错误List:; syntax illegal for recipient addresses。最小示例:

echo "Date: $(date --rfc-2822)
From: <[email protected]>
To: undisclosed-recipients:;
Bcc: [email protected]
" | sendmail -t

返回

undisclosed-recipients:;... List:; syntax illegal for recipient addresses

如何配置 Sendmail 以使其在通过 提交消息时支持空的 RFC 5322 组地址sendmail -t

答案1

查看了 Sendmail 的源代码后,我的结论是,为了让 Sendmail 正确支持(或者说忽略)空组,需要更改源代码。

空组地址例如To: foo:;应该被忽略,就像To: (foo)To:''(即什么都没有)。通过调试我发现这不是问题submit.cf。Cf 规则永远不会应用于空地址。在 中parseaddr.cparseaddr->prescan对空地址返回 NULL,但对 不返回:;。这可以通过向 提交消息来显示sendmail -t -d20.1

解决方法是:

(*)引用原作者

相关内容