Es la mejor práctica es enviar HTML y de Texto de correo electrónico?

Si yo sólo enviar HTML ¿cuáles son los peligros?

Estoy pensando en algo como este por debajo de

http://johnnycoder.com/blog/2009/04/15/net-mailmessage-linkedresources-alternateviews-and-exceptions/

try
{
//Assign a sender, recipient and subject to new mail message
MailAddress sender =
new MailAddress("[email protected]", "Sender");
MailAddress recipient =
new MailAddress("[email protected]", "Recipient");
MailMessage m = new MailMessage(sender, recipient);
m.Subject = "Test Message";
//Define the plain text alternate view and add to message
string plainTextBody =
"You must use an email client that supports HTML messages";
AlternateView plainTextView =
AlternateView.CreateAlternateViewFromString(
plainTextBody, null, MediaTypeNames.Text.Plain);
m.AlternateViews.Add(plainTextView);
//Define the html alternate view with embedded image and
//add to message. To reference images attached as linked
//resources from your HTML message body, use "cid:contentID"
//in the <img> tag...
string htmlBody =
"<html><body><h1>Picture</h1><br>" +
"<img src=\"cid:SampleImage\"></body></html>";
AlternateView htmlView =
AlternateView.CreateAlternateViewFromString(
htmlBody, null, MediaTypeNames.Text.Html);
//...and then define the actual LinkedResource matching the
//ContentID property as found in the image tag. In this case,
//the HTML message includes the tag
//<img src=\"cid:SampleImage\"> and the following
//LinkedResource.ContentId is set to "SampleImage"
LinkedResource sampleImage =
new LinkedResource("sample.jpg",
MediaTypeNames.Image.Jpeg);
sampleImage.ContentId = "SampleImage";
htmlView.LinkedResources.Add(sampleImage);
m.AlternateViews.Add(htmlView);
//Finally, configure smtp or alternatively use the
//system.net mailSettings
SmtpClient smtp = new SmtpClient
{
Host = "smtp.example.com",
UseDefaultCredentials = false,
Credentials =
new NetworkCredential("username", "password")
};
//<system.net>
//   <mailSettings>
//       <smtp deliveryMethod="Network">
//           <network host="smtp.example.com"
//             port="25" defaultCredentials="true"/>
//       </smtp>
//   </mailSettings>
//</system.net>
smtp.Send(m);
}
catch (ArgumentException)
{
throw new
ArgumentException("Undefined sender and/or recipient.");
}
catch (FormatException)
{
throw new
FormatException("Invalid sender and/or recipient.");
}
catch (InvalidOperationException)
{
throw new
InvalidOperationException("Undefined SMTP server.");
}
catch (SmtpFailedRecipientException)
{
throw new SmtpFailedRecipientException(
"The mail server says that there is no mailbox for recipient");
}
catch (SmtpException ex)
{
//Invalid hostnames result in a WebException InnerException that
//provides a more descriptive error, so get the base exception
Exception inner = ex.GetBaseException();
throw new SmtpException("Could not send message: " + inner.Message);
}
  • Una cosa acerca de su contenido normal, es lo que yo creo que si he recibido un correo de alguien que dijo: «usted debe utilizar un cliente de correo electrónico que admita HTML de los mensajes». Yo no puedo detalle de lo que yo creo que si un desconocido me dijo lo que el software que debe estar funcionando, porque no sé la de stackoverflow política sobre la blasfemia, pero no sería propicio para la continuación de mi costumbre.
InformationsquelleAutor Dave Mateer | 2010-08-11

6 Comentarios

  1. 18

    Yo diría que, en el mundo de hoy, la «mejor práctica» enfoque sería para asegurarse de que usted envíe su mensaje como tanto de texto sin formato y HTML (si usted realmente desea enviar mensajes de correo electrónico HTML).

    Ah, y asegúrese de enviar el contenido en la vista de texto sin formato en lugar de una sola frase diciendo: «Usted debe utilizar un cliente de correo electrónico que admita HTML de los mensajes». Correo electrónico de Google, toma este enfoque, y parece que funciona a la perfección, permitiendo que los «ricos» puntos de vista de pleno derecho los clientes de PC, mientras que también permite la «mínima» puntos de vista más restringido de los dispositivos (es decir, teléfonos Móviles).

    Si quieres tomar un purista de la vista, no enviar correos HTML en todos, ni siempre «adjuntar» un archivo binario a un correo electrónico. Tanto las corrupciones de la original de correo electrónico estándar, que sólo fue nunca originalmente la intención de texto sin formato.
    (Ver las opiniones de algunas personas de este aquí y aquí)

    Sin embargo, en la pragmática moderna del mundo real, correo electrónico HTML, es muy real, y muy aceptable. El principal inconveniente para el envío de correo electrónico HTML, es si el destinatario verá el correo electrónico en la forma en que usted la intención de que ella lo vea. Este es casi el mismo problema que los diseñadores web han luchado por años; lograr que sus sitios web para buscar «justo» en todos los navegadores (aunque es mucho más fácil hoy que hace muchos años).

    Similares para garantizar que un sitio web funcione correctamente sin necesidad de Javascript, mediante el envío de sus mensajes de correo electrónico como HTML y Texto sin formato, te asegurarás de que tus correos electrónicos degradar correctamente para que la gente la lectura de sus mensajes de correo electrónico en (por ejemplo) pequeños dispositivos móviles (algo que cada vez es más y más frecuente en estos días – y que puede o no puede ser capaz de hacer un completo HTML de correo electrónico) puede leer su contenido de correo electrónico sin problema.

    • Muchas gracias a todos los que han respondido apreciada! Y gracias por mantener a la profanidad abajo Jon 🙂
    • Para el futuro de los buscadores: RFC 822 y 2822 dictan que el estándar es el uso de texto o (texto y html), pero no sólo html. Adecuado netiqueta es el envío de texto sin formato de correo electrónico (google netiquette para la referencia).
  2. 4

    Si sólo enviar HTML, luego de que cualquiera que lea el correo electrónico en un solo texto dispositivo tendrá problemas.

    Por ejemplo, sospecho que muchos de gama baja de dispositivos móviles son capaces de leer el correo electrónico, pero no se muestra completo HTML.

    Yo diría que es la mejor práctica para ya sea enviar sólo texto, o texto y HTML.

    No veo por qué estás cogiendo un puñado de excepciones sólo para volver a iniciar el mismo tipo de excepción con un mensaje diferente, por cierto – de que el mensaje original puede ser más descriptivo.

    • Re captura de excepciones y lanzar nuevos – por No hablar de que el stacktrace está siendo demolido la reducción de la «debugability». Si cualquier cosa que la excepción debe ser reenviada.
  3. 3

    Otra razón para enviar tanto es que muchos mailservers marca los correos electrónicos que contienen sólo el contenido HTML como spam. Usted no quiere que todos sus correos electrónicos para estar en la carpeta de correo no deseado.

    • Fuente de la info? (no grosería intención aquí)
    • Sé que esto es muy viejo, pero me gustaría confianza Correo Chimp como una fuente de confianza: Spam filtros Desplazarse por todo el camino hasta la parte inferior. La última viñeta: «no enviar el correo electrónico HTML por sí mismo. Incluir siempre que el texto alternativo mensaje.»
  4. 3

    Creo que sí, la mejor práctica es el envío de ambos. La razón (c&p de la wikipedia):

    El formato de correo electrónico predeterminado de acuerdo a la RFC 2822 es texto sin formato. Así
    software de correo electrónico no se requiere para apoyar a formato HTML. Envío
    Con formato HTML e-mails por lo tanto puede conducir a problemas en el
    del destinatario final si es uno de esos clientes que no soportan. En
    el peor de los casos, el destinatario verá el código HTML en lugar de la
    la intención del mensaje.

  5. 0

    Varios clientes de correo electrónico se utilizará la última AlternateView que se agregó a la AlternateViews.

    Así que si usted prefiere tener su correo visualizar como HTML, asegúrese de agregar que el pasado.

    Tengo este aviso por correo de IOS y OSX de correo, mientras que Android Correo electrónico parece preferir HTML, si está disponible. No estoy seguro de para qué versiones esto se mantiene, y el comportamiento a menudo es configurable por el usuario, pero en mi experiencia, estos fueron los valores predeterminados.

  6. 0

    Compartir mi experiencia con el envío de HTML y de texto en un correo electrónico:
    He creado un mensaje de correo electrónico que tiene 2 puntos de vista: el texto y html usando C# AlternateView clases.

    ¿Qué puedo conseguir?

    En Mac, probado en la Alta Sierra:
    Aplicación de Mail de Apple se muestra el código Html. Si el orden de los mensajes es al revés: Html, texto, Correo de Apple mostrará el texto de la vista. La conclusión: Apple Mail es el uso de la última vista como predeterminada.

    En Windows, Outlook 2010:
    Microsoft Outlook de forma predeterminada está utilizando la vista Html. El orden de las vistas en el correo electrónico no importa: html,texto, texto,html;

    Si por alguna razón usted ha seleccionado una configuración para mostrar los mensajes entrantes de texto, a continuación, la versión de Html de tu correo electrónico se convertirá en el texto por medio de Outlook.
    Aún así, le envíe el texto de la versión de su correo electrónico (que puede ser ligeramente diferente de la versión HTML y formato mirar bastante) no se puede utilizar.

    Así que usted no necesita enviar el texto de la versión de su correo electrónico si usted sabe que su uso de los clientes de Outlook y la versión de Html es la opción predeterminada.

    Mozilla Thunderbird respeta su configuración y muestra el código Html correcto o versión de texto de tu correo electrónico. Funciona correctamente en Mac y en Windows

    Espero que ayude

Dejar respuesta

Please enter your comment!
Please enter your name here