электронные письма отклоняются из различных систем на базе Linux из-за предполагаемой ошибки синтаксиса заголовка при использовании списков рассылки

электронные письма отклоняются из различных систем на базе Linux из-за предполагаемой ошибки синтаксиса заголовка при использовании списков рассылки

Что я упускаю...

Дано: сервер электронной почты на базе 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];

и, следовательно, виноваты системы-получатели. (Или промежуточная система с агрессивной перезаписью заголовков. Если вы отправляете свои электронные письма через брандмауэр или ваши клиенты получают их через него, я бы это проверил.)

Связанный контент