e-mails rejeitados de vários sistemas baseados em Linux devido à percepção de falha na sintaxe do cabeçalho ao usar listas de distribuição

e-mails rejeitados de vários sistemas baseados em Linux devido à percepção de falha na sintaxe do cabeçalho ao usar listas de distribuição

O que estou perdendo...

Dado: Sistema de servidor de e-mail baseado em pilha Linux (hospedado) com componente de webmail.Váriosclientes de email e outros sistemas de webmail envolvidos e testados com isso.

Estamos distribuindo emails por meio de listas de distribuição usando o cliente de webmail. O sistema de correio envia e-mails semelhantes ao exemplo a seguir (copiar do cabeçalho do e-mail de origem). Onde organisationestá o nome de uma lista de distribuição:

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

Até aí tudo bem, os e-mails são entregues corretamente (até mesmo para caixas de correio GMX) e nenhuma mensagem de "e-mail não entregue" é recebida.

Emitir

Em seguida, responder "para todos" de determinados clientes de e-mail ou sistemas de webmail (por exemplo, webmail GMX) resulta em cabeçalhos obviamente malformados (enquanto o uso, por exemplo, do Thunderbird produz um formato correto). Essas respostas são rejeitadas por determinados sistemas; mensagem de exemplo:

Seus e-mails foram rejeitados por nosso sistema de correio porque as informações fornecidas no cabeçalho do e-mail não estão em conformidade com as especificações da RFC 5322 e RFC 2047. O campo do cabeçalho "Para" está sintaticamente incorreto.

O cabeçalho do e-mail em questão é assim (por favor, preste atenção especial à linha To:):

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

Obviamente, certos clientes de e-mail interpretam o nome fornecido da lista de distribuição como parte do endereço de e-mail do primeiro destinatário.

As questões em questão são: (1) Quem é o culpado? (2) Qual é o formato correto? (3) O servidor que está distribuindo a mensagem original não segue determinadas RFCs ou isso é uma falha em um cliente de e-mail ou sistema de e-mail?

===== edição final =====

Aparentemente, isso é um bug na Horda. Bilhete levantado.

Responder1

(isso provavelmente está errado, mas deixado como está, pois há algumas discussões úteis abaixo)

Onde organização é o nome de uma lista de distribuição:

O que quer que esteja gerando o e-mail original é o culpado aqui. Nomes de caixas de correio (um pouco antes de @domain) podem conter espaços, caracteres @ e todo tipo de outras coisas estranhas. Portanto, o encaminhamento está interpretando corretamente a primeira entrada do cabeçalho To: como "organização:[e-mail protegido]".

Eu precisaria ler muito para determinar se um espaço explícito requer citação ou escape (o caractere '@' no nome de uma caixa de correio exige). Portanto, não posso dizer se o erro alegando que isso não é compatível com RFC é preciso - no entanto, esse ponto é discutível, pois mesmo que não fosse obrigatório, esse não é o comportamento que você pretende.

Responder2

RFC 5322é a especificação atual para endereços de grupo. Eles são explicados no Apêndice A.1.3, onde está escrito,

From: Pete <[email protected]>
To: A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>;
[…]

Nesta mensagem, o To:campo possui um único destinatário de grupo denominado "Um grupo", que contém 3 endereços […]

A especificação do endereço está definida formalmente na seção 3.4 e, a partir daqui, selecionarei apenas as partes relevantes:

3.4. Especificação de endereço

Um endereço pode ser uma caixa de correio individual ou um grupo de caixas de correio.

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]

e

3.4.1. Especificação de endereço

Um addr-spec é um identificador específico da Internet que contém uma string interpretada localmente seguida pelo caractere de arroba ("@", valor ASCII 64) seguido por um domínio da Internet. […] Comentários e espaços em branco dobráveis ​​NÃO DEVEM ser usados ​​ao redor do "@" no addr-spec.

addr-spec       =   local-part "@" domain
local-part      =   dot-atom / quoted-string
domain          =   dot-atom / domain-literal

e

3.2.3. Átomo

dot-atom        =   [CFWS] dot-atom-text [CFWS]

Omiti obs-*aqui as entradas que existem na especificação formal da RFC 5322, pois fazem referência a padrões obsoletos. CFWSindica que comentários e/ou espaços em branco dobráveis ​​são permitidos.

Assim, ambos os formatos devem ser aceitos pela definição de group-list:

A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>;
A Bare Group:[email protected],[email protected],[email protected];

Aplicando esta interpretação à sua própria lista de grupo, eu diria que o que você tem é válido:

To: organisation: [email protected], [email protected];

e, portanto, são os sistemas destinatários os culpados. (Ou um sistema intermediário com reescrita agressiva de cabeçalho. Se você enviar seus e-mails através de um dispositivo de firewall ou se seus clientes os receberem por meio de um, eu verificaria isso.)

informação relacionada