Адреса групп электронной почты, такие как undisclosed-recipients:;
или a group:<u1@example.net>,<u@x.example.net>;
являются действующими формами адресации согласно RFC 5322см., например, иллюстративный пример в Приложении A.1.3. В Sendmail это называется «синтаксисом списка». Минимальный рабочий пример (для Bash):
echo "Date: $(date --rfc-2822)
From: <someone@example.net>
To: a group:<r1@example.net>,<r2@example.net>;
" | sendmail -t
Однако попытка отправки сообщений с пустыми группами приводит к ошибке. List:; syntax illegal for recipient addresses
. Минимальный пример:
echo "Date: $(date --rfc-2822)
From: <someone@example.net>
To: undisclosed-recipients:;
Bcc: someone-else@example.net
" | 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:;
(*) цитируя первоначального автора