none
Error al enviar email con template html(solo visible en gmail) con Winform c# RRS feed

  • Pregunta

  • Saludos!

    Amigos, solicito de su ayuda estoy trabajando con un componente para VS 2017 en c# de Clever Internet Suite para envio de correo por SMTP bajo smtp.office365.com.

    Me es funcional aclaro, pero deseo enviar un correo con template HTML el cual se me adjunta como archivo html en hotmail mientras que en gmail es visible como html.

    Y en hotmail:

    Este es mi código:

     private void EnvialeCorreo(string lcClaveUnica, string lcCorreo, string lcAspirante)
                {
    
                    smtp1.Server = "smtp.office365.com";
                smtp1.Port = 587;
    
                smtp1.UserName = "anonimo@hotmail.com";
                smtp1.Password = "123456";
    
                smtp1.UseTls = ClientTlsMode.Explicit;
    
                smtp1.Open();
    
                string htmlBody = "<!DOCTYPE html PUBLIC ' -//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml'><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><title>ALGO .::: ALGO de ALGO ALGO ALGO ALGO</title><style type='text/css'>body {margin: 0; padding: 0; min-width: 100%!important;}img {height: auto;}.content {width: 100%; max-width: 600px;}.header {padding: 20px 30px 20px 30px;}.innerpadding {padding: 30px 30px 30px 30px;}.borderbottom {border-bottom: 1px solid #f2eeed;}.subhead {font-size: 15px; color: #ffffff; font-family: sans-serif; letter-spacing: 10px;}.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}.bodycopy {font-size: 16px; line-height: 22px;}.button {text-align: center; font-size: 18px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}.button a {color: #ffffff; text-decoration: none;}.footer {padding: 20px 30px 15px 30px;}.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}.footercopy a {color: #ffffff; text-decoration: underline;}@media only screen and (max-width: 550px), screen and (max-device-width: 550px) {body[yahoo] .hide {display: none!important;}body[yahoo] .buttonwrapper {background-color: transparent!important;}body[yahoo] .button {padding: 0px!important;}body[yahoo] .button a {background-color: #e05443; padding: 15px 15px 13px!important;}body[yahoo] .unsubscribe {display: block; margin- padding: 10px 50px; background: #2f3942; border-radius: 5px; text-decoration: none!important; font-weight: bold;}}</style></head><body yahoo bgcolor='#ffffff'><table width='100%' bgcolor='#ffffff' border='0' cellpadding='0' cellspacing='0'><tr><td><!--[if (gte mso 9)|(IE)]><table width='600' align='center' cellpadding='0' cellspacing='0' border='0'><tr><td><![endif]--><table bgcolor='#ffffff' class='content' align='center' cellpadding='0' cellspacing='0' border='0'><tr><td bgcolor='#ED4D2F' class='header'><!--[if (gte mso 9)|(IE)]><table width='425' align='left' cellpadding='0' cellspacing='0' border='0'><tr><td><![endif]--><table class='col425' align='left' border='0' cellpadding='0' cellspacing='0' style='width: 100%; max-width: 425px;'><tr><td height='60'><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td class='subhead' style='padding: 0 0 0 3px;'>UASLP</td></tr><tr><td class='h1' style='padding: 5px 0 0 0;'>FACULTAD DE ESTUDIOS PROFESIONALES ZONA HUASTECA</td></tr></table></td></tr></table><!--[if (gte mso 9)|(IE)]></td></tr></table><![endif]--></td></tr><tr><td class='innerpadding borderbottom'><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td class='h2'>HOLA!," + lcAspirante + "</td></tr><tr><td class='bodycopy'>Por medio del presente te FELICITAMOS!, te adjuntamos archivo en formato .pdf para descarga, este contiene datos para realizar ALGO bancario por concepto de pago de inscripción a la ALGO.::. ALGO.</td></tr></table></td></tr><tr><td class='innerpadding borderbottom'><!--[if (gte mso 9)|(IE)]><table width='380' align='left' cellpadding='0' cellspacing='0' border='0'><tr><td><![endif]--></td></tr><tr><td class='footer' bgcolor='#44525f'><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td align='center' class='footercopy'>Mayores Informes:<br/> ALGO del ALGO #2501, Fracc. ALGO ALGO <br/> CP ALGO <br/> Tel. (8331) 381-2345, 381-2345  <br/><font color='#ffffff'>ALGO .::. ALGO de ALGO ALGO Zona ALGO </font></td></tr></table></td></tr><tr><td class='footer' bgcolor='#CCCCCC'><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td align='center' class='footercopy'><font color='#44525F'>No contestar a este correo, es de caracter informativo.</font></td></tr></table></td></tr></table><!--[if (gte mso 9)|(IE)]></td></tr></table><![endif]--></td></tr></table></body></html>";
    
                try
                {
                    mailMessage1.BuildMessage("",new string[] { txtArchivoPDF.Text });
                    mailMessage1.Bodies.AddHtml(htmlBody);
                    mailMessage1.From.FullAddress = "anonimo@hotmail.com";
                    mailMessage1.ToList.EmailAddresses = lcCorreo;
                    mailMessage1.Subject = "Hola";
    
                    smtp1.Send(mailMessage1);
    
                    //MessageBox.Show("Mensaje enviado.");
                }
                finally
                {
                    smtp1.Close();
                }
            }

    Si en la declaración que a continuación observan coloco la variable que trae el html, en el correo se visualiza todo el html.

    mailMessage1.BuildMessage(htmlbody,new string[] { txtArchivoPDF.Text });

    Muchas gracias por su orientación, espero haber sido claro en mi situación.

    Atte.

    Marco


    • Editado Marco Bueno viernes, 31 de julio de 2020 6:55
    viernes, 31 de julio de 2020 6:53

Respuestas

  • También he visto en su documentación en https://www.clevercomponents.com/products/inetsuite/messageparser.asp

    Que existe un método de sobrecarga BuildMessage() cuyo primer parametro es el mensaje en texto, el segundo mensaje en Html, tercero adjuntos etc...

    Cuando se envían mensajes así, existen varias vistas que dependen del cliente de correo la visualización por defecto. Prueba esto (esta en inglés)

    How to View Email in HTML
    1. Open the plaintext message that you want to view in HTML.
    2. Navigate to the View menu.
    3. Choose the Message in HTML option to see the HTML version of the email.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 31 de julio de 2020 19:25
    Moderador
  • Hola Marco Bueno,

    Me imagino que estás decidido a hacerlo con Clever Internet Suite. Si Clever Internet Suite no cuenta con el método IsBodyHtml, entonces necesitas que cuente con algo similar, de lo contrario, quizás sea una característica del producto, no darle soporte a eso y estar pensado para usarse con Gmail. Podrías revisar la documentación que Sergio te indica y si no encuentras nada, te sugiero que busques contactar al soporte al cliente de Clever Internet Suite, tal vez te sepan indicar que hacer. Si pudieras contemplar no utilizar Clever Internet Suite, encontré varios elementos parecidos con los que podrías probar. Gracias por levantar tu consulta en los foros de msdn.

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  


    viernes, 31 de julio de 2020 20:24
    Moderador

Todas las respuestas

  • Hola, la clase MailMessage posee una propiedad MailMessage.IsBodyHtml Property que indica si el contenido del cuerpo es un Html o no. Creo te falta agregarlo

     try
                {
                    mailMessage1.BuildMessage("",new string[] { txtArchivoPDF.Text });
                    mailMessage1.Bodies.AddHtml(htmlBody);
                    mailMessage1.From.FullAddress = "anonimo@hotmail.com";
                    mailMessage1.ToList.EmailAddresses = lcCorreo;
                    mailMessage1.IsBodyHtml = true;
                    mailMessage1.Subject = "Hola";
    
                    smtp1.Send(mailMessage1);
    
                    //MessageBox.Show("Mensaje enviado.");
                }
                finally
                {
                    smtp1.Close();
                }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 31 de julio de 2020 12:03
    Moderador
  • Hola Marco Bueno,

    Por favor prueba lo que Sergio te dijo y nos comentas que tal te fue. Quedo pendiente de cualquier actualización. Gracias por levantar tu consulta en los foros de msdn.

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    viernes, 31 de julio de 2020 13:20
    Moderador
  • Saludos !

    Gracias por la pronta respuesta.

    EL componente que trabajo de mailMessage1 de Cleaver Internet Suite no me permite disponer de habilitar IsBodyHtml = true, le había revisado en algunos ejemplos vistos en la red previo a realizar la pregunta, pero sin poder configurarlo correctamente.

    Aquí las opciones de mailMessage:

    He revisado ejemplos en el sitio de Cleaver Internet Suite pero no logro adaptarlos a mi códigoCleaver Internet Suite.

    Muchas gracias por la ayuda...

    viernes, 31 de julio de 2020 17:54
  • Hola. Veo una propiedad llamada Html. Es de tipo lectura/escritura? Puedes ver documentación del producto? 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 31 de julio de 2020 19:19
    Moderador
  • También he visto en su documentación en https://www.clevercomponents.com/products/inetsuite/messageparser.asp

    Que existe un método de sobrecarga BuildMessage() cuyo primer parametro es el mensaje en texto, el segundo mensaje en Html, tercero adjuntos etc...

    Cuando se envían mensajes así, existen varias vistas que dependen del cliente de correo la visualización por defecto. Prueba esto (esta en inglés)

    How to View Email in HTML
    1. Open the plaintext message that you want to view in HTML.
    2. Navigate to the View menu.
    3. Choose the Message in HTML option to see the HTML version of the email.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 31 de julio de 2020 19:25
    Moderador
  • Hola Marco Bueno,

    Me imagino que estás decidido a hacerlo con Clever Internet Suite. Si Clever Internet Suite no cuenta con el método IsBodyHtml, entonces necesitas que cuente con algo similar, de lo contrario, quizás sea una característica del producto, no darle soporte a eso y estar pensado para usarse con Gmail. Podrías revisar la documentación que Sergio te indica y si no encuentras nada, te sugiero que busques contactar al soporte al cliente de Clever Internet Suite, tal vez te sepan indicar que hacer. Si pudieras contemplar no utilizar Clever Internet Suite, encontré varios elementos parecidos con los que podrías probar. Gracias por levantar tu consulta en los foros de msdn.

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  


    viernes, 31 de julio de 2020 20:24
    Moderador
  • Hola Marco Bueno,

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las respuestas proporcionadas?

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    lunes, 3 de agosto de 2020 19:15
    Moderador