template net mail enviar correo asp .net html email

.net - net - smtp send html email



Advertencia de "línea imprimible entre comillas de más de 76 caracteres" al enviar un correo electrónico HTML (2)

He escrito un código en mi aplicación VB.NET para enviar un correo electrónico HTML (en este caso, un recordatorio de contraseña perdida).

Cuando pruebo el correo electrónico, mi filtro de correo no deseado lo consume. Una de las cosas con las que está obteniendo malos resultados es debido al siguiente problema:

MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars

He pasado por la fuente del correo electrónico, y he roto cada línea más de 76 caracteres en dos líneas con un CR + LF en el medio, pero eso no ha solucionado el problema.

¿Alguien puede señalarme en la dirección correcta?

¡Gracias!


Esto es un error en la implementación de la codificación Quoted-Printable en System.Net.Mail.MailMessage, que ha estado allí durante mucho tiempo, pero aparentemente ahora está arreglado, a partir de .Net 4 Beta 2.

http://connect.microsoft.com/VisualStudio/feedback/details/156052/mailmessage-body-encoding-quoted-printable-violates-rfcs-soft-line-breaks-requirements

Una solución alternativa es usar codificación Base64 en su lugar (aunque de otro modo no sería una buena práctica enviar una parte MIME de texto sin formato en una codificación legible no humana como esta). Pedir al usuario de la clase que divida manualmente las líneas del mensaje antes de enviarlo no es una solución general, ya que el mensaje modificado no es lo que desea enviar (por ejemplo, puede incluir un enlace que tenga más de 76 caracteres, y así no se puede dividir). Quoted-Printable puede manejar mensajes con líneas que tienen más de 76 caracteres antes de la codificación, siempre que se implemente correctamente.


La impresión entre comillas expande caracteres de 8 bits a "= {HEX-Code}", lo que hace que los mensajes sean más largos. ¿Quizás estás llegando a este límite?

¿Has intentado dividir el mensaje en, digamos, 70 caracteres? Eso debería proporcionar espacio para un par de caracteres por línea.

O simplemente codifica el correo electrónico con Base64, todo el cliente de correo puede manejar eso.

O simplemente configura Content-Transfer-Encoding en 8 bits y envía los datos sin codificar. No conozco ningún servidor de correo que no pueda manejar bytes de 8 bits estos días.