Pontos de exclamação sendo inseridos em e-mails com aproximadamente 1000 caracteres

9

Tenha um programa .NET que use o espaço para nome System.Net.Main para enviar um email via SMTP.

Está no site de um cliente e, a partir daí, ele passa por uma (série de?) Servidores de retransmissão SMTP antes de chegar ao seu destino.

No momento, não tenho informações sobre essa infraestrutura de replay / email smtp (e obter essas informações será difícil).

Em algum lugar ao longo da linha, um ponto de exclamação está sendo inserido em URLs longos no e-mail em torno de 100 caracteres desde o início de uma linha.

EDIT- Na verdade, encontrou seus cerca de 1000 caracteres em

Isso não está acontecendo em um sistema de teste ou em centenas de outros sites.

Tenho certeza de que isso tem algo a ver com códigos de escape para quebrar longas filas.

Alguém tem alguma idéia?

Ryan
fonte
Descobri que não são 100 caracteres em um link, seus aproximadamente 1000 caracteres na mensagem. Isso fornece mais informações, mas ainda é um mistério, por que apenas foram relatados por um cliente. Talvez alguns servidores SMTP sejam mais tolerantes que outros? systemwebmail.com/faq/4.4.5.aspx
Ryan

Respostas:

11

Fui atingido por isso sozinho.

Se você estiver criando uma mensagem html sem nenhum retorno de carro, poderá encontrar erros em torno da marca de 1.000 caracteres.

A solução é adicionar alguns \ r \ n caracteres para que cada linha seja menor que 1000 (ou 988, se você não contar os caracteres \ r \ n).

Veja a seção 2.1.1. Limites de comprimento de linha da RFC 2822 para obter mais detalhes:

2.1.1 Limites de comprimento de linha

Existem dois limites que esse padrão coloca no número de caracteres em uma linha. Cada linha de caracteres deve ter no máximo 998 caracteres e DEVE ter no máximo 78 caracteres, excluindo o CRLF.

sgmoore
fonte
Graças - veja também as discussões sobre este post - systemwebmail.com/faq/4.4.5.aspx
Ryan
O RFC-2822-2.1.1 parece ser mais orientação e conselho, e não uma regra imposta. O Outlook parece ser afetado. Alguns outros clientes de email não são afetados por isso.
YoYo
@YoYo Eu diria que cada linha de caracteres DEVE ter no máximo 998 caracteres seria uma regra, mas e DEVERIA ter no máximo 78 caracteres, seria mais orientação e conselho do que uma regra.
sgmoore
Sim, o texto não permite essa flexibilidade. Eu tenho que concordar.
YoYo 25/10
0

A quebra de um determinado número de caracteres geralmente é um problema do cliente. Se você não o vê em outros sites ou em uma máquina de teste, não acho que seja o seu código. Veja se você não consegue descobrir qual cliente está sendo usado para receber a mensagem - pode ser uma coisa antiga e cruel que envolve automaticamente um determinado número de caracteres.

Josh Budde
fonte
0

Não parece que o aplicativo .Net está causando o problema se o problema não ocorrer em muitos outros sites em que o mesmo código está sendo executado. O site do problema está por trás de algum tipo de firewall de aplicativo ou dispositivo anti-spam que pode estar monitorando o fluxo smtp? Nesse caso, pode haver uma regra sobre o truncamento de URLs longos que está sendo acionada, o que faz com que os URLs no email sejam encurtados.

Fred Jonas
fonte