电子邮件组地址, undisclosed-recipients:; 或a group:<[email protected]>,<[email protected]>; 是根据RFC 5322进行寻址的有效forms, 例如参见附录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 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 -t提交消息时,如何将Sendmailconfiguration为支持空的RFC 5322组地址?
在看了Sendmail的源代码之后,我的结论是,为了使Sendmail支持(或者更确切地说,忽略)空组,需要更改源代码。
空组地址,如To: foo:; 应该简单地忽略,就像To: (foo)或To:或者'' (即没有)。 通过debugging,我发现这不是一个与submit.cf问题。 Cf规则从不应用于空地址。 在parseaddr.c , parseaddr->prescan对于空地址返回NULL,但不是:; 。 这可以通过向sendmail -t -d20.1提交消息来sendmail -t -d20.1 。
解决方法是:
(foo)而不是foo:; (*)引用原作者