电子邮件组地址,例如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
?
在查看了 Sendmail 的源代码后,我的结论是,为了让 Sendmail 正确支持(或者更确切地说忽略)空组,需要更改源代码。
空组地址如
To: foo:;
应该像To: (foo)
或To:
或一样被忽略''
(即什么都没有)。通过调试,我发现这不是submit.cf
. Cf 规则永远不会应用于空地址。在parseaddr.c
中,parseaddr->prescan
为空地址返回 NULL,但不为:;
。这可以通过向 提交消息来显示sendmail -t -d20.1
。解决方法是:
(foo)
代替foo:;
(*) 引用原作者