Назад | Перейти на главную страницу

Поддержка Sendmail пустых групповых адресов (синтаксис списка AKA)

Адреса групп электронной почты, такие как 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.

Обходные пути:

(*) цитируя первоначального автора