![электронные письма отклоняются из различных систем на базе Linux из-за предполагаемой ошибки синтаксиса заголовка при использовании списков рассылки](https://rvso.com/image/231069/%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%B0%20%D0%BE%D1%82%D0%BA%D0%BB%D0%BE%D0%BD%D1%8F%D1%8E%D1%82%D1%81%D1%8F%20%D0%B8%D0%B7%20%D1%80%D0%B0%D0%B7%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%20%D0%BD%D0%B0%20%D0%B1%D0%B0%D0%B7%D0%B5%20Linux%20%D0%B8%D0%B7-%D0%B7%D0%B0%20%D0%BF%D1%80%D0%B5%D0%B4%D0%BF%D0%BE%D0%BB%D0%B0%D0%B3%D0%B0%D0%B5%D0%BC%D0%BE%D0%B9%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8%20%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81%D0%B0%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%BF%D1%80%D0%B8%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%20%D1%80%D0%B0%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8.png)
Что я упускаю...
Дано: сервер электронной почты на базе Linux-стека (размещенный) с компонентом веб-почты.Различныйпочтовые клиенты и другие системы веб-почты, задействованные и протестированные с этой функцией.
Мы рассылаем письма через списки рассылки с помощью клиента веб-почты. Почтовая система рассылает письма, подобные следующему примеру (копия из заголовка исходного письма). Где organisation
находится имя списка рассылки:
Date: Sat, 20 Apr 2024 18:35:45 +0200
Message-ID: <[email protected]>
From: [email protected]
To: organisation: [email protected], [email protected];
Subject: here goes the subject
Пока все хорошо, электронные письма доставляются нормально (даже на почтовые ящики GMX) и никаких сообщений о «недоставленном письме» не поступало.
Проблема
Далее ответ "всем" из определенных почтовых клиентов или систем веб-почты (например, GMX webmail) приводит к явно неправильно сформированным заголовкам (в то время как использование, например, Thunderbird создает правильный формат). Такие ответы отклоняются некоторыми системами; пример сообщения:
Ваши электронные письма были отклонены нашей почтовой системой, поскольку информация, указанная в заголовке электронного письма, не соответствует спецификациям RFC 5322 и RFC 2047. Поле заголовка «Кому» синтаксически неверно.
Заголовок рассматриваемого электронного письма выглядит следующим образом (обратите особое внимание на строку «Кому»):
Received: from ...
Reply-To: ...
From: <[email protected]>
To: <[email protected]>, <organisation: [email protected]>;
References: <[email protected]>
In-Reply-To: <[email protected]>
Subject: AW: here goes the subject
Очевидно, некоторые почтовые клиенты интерпретируют предоставленное имя списка рассылки как часть адреса электронной почты первого адресата.
Возникают следующие вопросы: (1) Кто виноват? (2) Каков правильный формат? (3) Сервер, распространяющий исходное сообщение, не соответствует определенным RFC или это сбой в почтовом клиенте или почтовой системе?
===== окончательная правка =====
Это, по-видимому, ошибка в Horde. Билет поднят.
решение1
(вероятно, это неправильно, но оставим как есть, так как ниже есть полезное обсуждение)
Где организация — это название списка рассылки:
Что бы ни создавало исходное письмо, оно здесь виновато. Имена почтовых ящиков (часть перед @domain) могут содержать пробелы, символы @ и всякие другие странные вещи. Поэтому пересылка правильно интерпретирует первую запись из заголовка To: как "organisation:[email protected]".
Мне нужно было бы много читать, чтобы определить, требует ли явный пробел кавычек или экранирования (символ '@' в имени почтового ящика требует). Поэтому я не могу сказать вам, является ли ошибка, утверждающая, что это не соответствует RFC, точной - однако этот момент спорный, поскольку даже если бы это не требовалось, это не то поведение, которое вы подразумеваете.
решение2
RFC5322текущая спецификация для групповых адресов. Они объясняются в Приложении A.1.3, где написано,
From: Pete <[email protected]> To: A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>; […]
В этом сообщении
To:
поле имеет одну группу получателей с именем "Группа", который содержит 3 адреса […]
Спецификация адреса формально определена в разделе 3.4, и отсюда я выделю только соответствующие части:
3.4.Указание адреса
Адрес может быть как отдельным почтовым ящиком, так и группой почтовых ящиков.
group = display-name ":" [group-list] ";" [CFWS] group-list = mailbox-list / CFWS mailbox-list = (mailbox *("," mailbox)) mailbox = name-addr / addr-spec name-addr = [display-name] angle-addr angle-addr = [CFWS] "<" addr-spec ">" [CFWS]
и
3.4.1.Спецификация Addr-Spec
addr-spec — это определенный интернет-идентификатор, содержащий локально интерпретируемую строку, за которой следует символ at ("@", значение ASCII 64), за которым следует интернет-домен. […] Комментарии и пробелы-свертки НЕ ДОЛЖНЫ использоваться вокруг "@" в addr-spec.
addr-spec = local-part "@" domain local-part = dot-atom / quoted-string domain = dot-atom / domain-literal
и
3.2.3 Атом
dot-atom = [CFWS] dot-atom-text [CFWS]
Я опустил obs-*
здесь записи, которые существуют в формальной спецификации RFC 5322, поскольку они ссылаются на устаревшие шаблоны. CFWS
указывает, что комментарии и/или пробелы в конце строки разрешены.
Соответственно, оба эти формата должны быть приняты по определению group-list
:
A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>;
A Bare Group:[email protected],[email protected],[email protected];
Применяя эту интерпретацию к вашему собственному списку групп, я бы сказал, что то, что вы имеете, является верным:
To: organisation: [email protected], [email protected];
и, следовательно, виноваты системы-получатели. (Или промежуточная система с агрессивной перезаписью заголовков. Если вы отправляете свои электронные письма через брандмауэр или ваши клиенты получают их через него, я бы это проверил.)