Se insertan signos de exclamación en los correos electrónicos con una marca de aproximadamente 1000 caracteres

9

Tenga un programa .NET que use el espacio de nombres System.Net.Main para enviar un correo electrónico a través de SMTP.

Está en el sitio de un cliente, por lo que desde allí pasará por una (¿serie de?) Servidores de retransmisión SMTP antes de llegar a su destino.

Por el momento no tengo información sobre esta infraestructura de reproducción / correo electrónico smtp (y obtener esa información va a ser difícil).

En algún lugar a lo largo de la línea, se inserta un signo de exclamación en las URL largas en el correo electrónico alrededor de 100 caracteres desde el comienzo de una línea.

EDITAR: en realidad hemos encontrado sus cerca de 1000 caracteres en

Esto no está sucediendo en un sistema de prueba o en cientos de otros sitios.

Estoy seguro de que esto tiene que ver con los códigos de escape para romper largas filas.

¿Alguien tiene alguna idea?

Ryan
fuente
Descubrí que no hay 100 caracteres en un enlace, son aproximadamente 1000 caracteres en el mensaje. Esto proporciona más información, pero sigue siendo un misterio por qué solo lo informa un cliente. ¿Quizás algunos servidores SMTP son más tolerantes que otros? systemwebmail.com/faq/4.4.5.aspx
Ryan

Respuestas:

11

Fui golpeado con esto yo mismo.

Si está creando un mensaje html sin ningún retorno de carro, puede recibir errores en algún lugar alrededor de la marca de 1000 caracteres.

La solución es agregar algunos caracteres \ r \ n para que cada línea sea menor que 1000 (o 988 si no cuenta los caracteres \ r \ n).

Ver sección 2.1.1. Límites de longitud de línea de RFC 2822 para más detalles:

2.1.1 Límites de longitud de línea

Hay dos límites que este estándar pone en el número de caracteres en una línea. Cada línea de caracteres NO DEBE tener más de 998 caracteres, y NO DEBE tener más de 78 caracteres, excluyendo el CRLF.

sgmoore
fuente
Gracias - también vea las discusiones en esta publicación - systemwebmail.com/faq/4.4.5.aspx
Ryan
RFC-2822-2.1.1 parece ser más orientación y asesoramiento en lugar de una regla obligatoria. La perspectiva parece estar afectada. Algunos otros clientes de correo electrónico no se ven afectados por esto.
YoYo
@YoYo Yo diría que cada línea de caracteres NO DEBE tener más de 998 caracteres sería una regla, pero y NO DEBE tener más de 78 caracteres, sería más orientación y asesoramiento en lugar de una regla.
sgmoore
Sí, la redacción no permite esa flexibilidad. Tengo que estar de acuerdo.
YoYo
0

Ajustar a un cierto número de caracteres suele ser un problema del cliente. Si no lo está viendo en sus otros sitios, o en una máquina de prueba, no creo que sea su código. Vea si no puede averiguar qué cliente se está utilizando para recibir el mensaje; podría tratarse de algo viejo y crujiente que se ajusta automáticamente a un cierto número de caracteres.

Josh Budde
fuente
0

No parece que la aplicación .Net esté causando el problema si el problema no está ocurriendo en muchos otros sitios donde se está ejecutando el mismo código. ¿El sitio del problema está detrás de algún tipo de firewall de aplicación o dispositivo antispam que podría estar monitoreando la transmisión smtp? Si es así, puede haber una regla sobre el truncamiento de URL largas que se está activando, lo que hace que las URL en el correo electrónico se acorten.

Fred Jonas
fuente