none
Convertir String de RichText Box en negrita y poder enviarlo por correo sin perder la negrita RRS feed

  • Pregunta

  • Buenas tardes,

    Estoy realizando un programa en vb.net donde utilizo un rich text box, le defino por defecto una linea de palabras ejemplo (Tenemos una alerta en el servidor XXXXX debido a que XXXXX).

    Tengo programado un botón donde puedo cambiar el tipo de letra a negrita. todo funciona bien.

    El problema que tengo es el siguiente:

    Cuando yo realizo un cambio con el botón (negrita) en el texto del richtextbox y lo envió por correo electrónico esos cambios que realice en el texto se pierden en el cuerpo del correo. osea no llevan las letras en negrita


    Espero me puedan ayudar, he buscado por todo lado pero no puedo solucionar este problema.

    Saludos;

     

    martes, 2 de junio de 2020 21:49

Todas las respuestas

  • Cuando envíes el contenido del textbox, no envíes el valor que te devuelve la propiedad .Text, ya que en esta propiedad no se devuelven las negritas ni ningún otro atributo del texto. En su lugar, tienes que tomar la propiedad .Rtf, que contiene el "texto rico" con todos los atributos internos.

    Ojo, ese texto está codificado en RTF, y solo será visible si lo lees con una herramienta que "entienda" RTF, como por ejemplo el Word o el WordPad. Esto vale si lo envías como "attachment" en el correo, pero no se verá bien si lo metes en medio del texto de un correo que está en formato HTML, ya que el HTML usa una codificación distinta que no es compatible con el RTF.

    miércoles, 3 de junio de 2020 6:13
  • si realice lo que indicaste pero en el cuerpo de correo no convierte lo enviado, esto fue lo que me llego en el cuerpo del correo

    tampoco me sirve como mensaje adjunto, no existe alguna otra forma, talvez usando algun otro control. no se

    jueves, 4 de junio de 2020 16:36
  • La primera opción es convertir de RTF a HTML. Con carácter general esto es bastante complicado, pero se puede encontrar código de ejemplo en la red. Por ejemplo, aquí:

    https://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

    La otra opción, como tú sugieres es usar otro control que devuelva html en lugar de rtf. Por ejemplo, aquí puedes descargar uno:

    https://archive.codeplex.com/?p=winformhtmltextbox

    En cualquiera de los dos casos, recibes el texto con la negrita codificado en HTML. Asegúrate de que al añadirlo al mensaje lo incrustas dentro de la variante HTML del mensaje, no en el texto plano. En texto plano se verá casi igual de "feo" que ves el RTF. Necesariamente tienes que usar un correo con el cuerpo en html; en texto plano no existe ninguna forma de aplicarle al texto ningún atributo tal como la negrita.

    jueves, 4 de junio de 2020 16:49