none
Mandar contenido de un richtextbox con formato e imagen por mail

    Question

  • BUen dia estoy tratando de hacer un programa para mandar correos(vb.net 2005) y si me lo manda pero no me manda los formatos por ejemplo si en un richtextbox tengo el texto con colores y una imagen en el richtextbox solo me envia el texto sin formato y no envia la imagen, alguien podria ayudarme con esto tengo ya dos dias de estar buscando esto dia y noche y no me sale nada.... no ayo como hacerlo..........

    les agradeceria demaciado si alguien me puede ayudar

    Saturday, June 05, 2010 2:34 AM

Answers

  • Como estan les comento, resolvi el problema pero no con el richtextbox sino que usando un webbrowser control.

    la instruccion para poner el webbrowser como un textbox es:

    x = WebBrowser1.Document

    x.Body.SetAttribute(

    "contentEditable", True)

    x.Body.InnerText =

    ""

     

    ahora para mandar  las imagenes incrustadas es:

    If

     

    x.Body.Document.Images.Count >= 1 Then

     

    For i As Integer = 0 To x.Body.Document.Images.Count - 1

    strImg = x.Body.Document.Images.Item(i).OuterHtml.Substring(50)

    strImg = Replace(strImg,

    ">", "")

    strImg = strImg.Substring(0, strImg.Length - 1).Trim

     

    Dim strimgFILE As String = "file:///" & strImg

     

    loBP = .AddRelatedBodyPart(strimgFILE, strImg & i, 1)

     

    With loBP.Fields

    .Item(

    "urn:schemas:mailheader:Content-ID") = strImg & i

    .Update()

     

    End With

     

    Next

     

    End If

    el cuerpo ensi del mensaje seria en ves de .text

    x.Body.OuterHtml

     

    ya voy dentro del proyecto si puedo ayudarles en algo con gusto

    Wednesday, June 09, 2010 7:56 AM

All replies

  • hola

    el tema es que el mail no entienede el formato del rtf, debes enviar texto con formato html para que puedas darle formato

    How do I send a simple Html email?

     

    por ahi puedas convertir el rtf en html antes de enviarlos

    Using a VB.NET 2005 Class to Convert RichText to HTML

    pero igual ojo porque las imagenes son todo un tema, no se agregan directamente, debes embeberlas como recurso dentro del mail con un nombre y luego referenciarlas

    pero intenta primero a ver si esto funciona

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Saturday, June 05, 2010 2:41 AM
  • Disculpen mi ignorancia, pero... ¿no hay en MIME un header para informar un contenido text/rtf?

    El formato rtf puede, estoy prácticamente seguro de esto, incluir la imagen como un stream de texto. El que se mantenga dentro de la categoría es bueno, ya que no tienes que andar transformándola en texto (base64, qp, etc.).

    Digo, si es así, sería suficiente copiar en el cuerpo del mensaje el mismo stream que copiarías al disco para guardarlo como un archivo. Si el receptor no entiende el formato, mala suerte. Podrías hacerle la gauchada de un multiparte y sumarle diferentes formatos, digamos un texto simple y una imagen separada...

    como q seria para poder mandarlo por corereo porque si lo manda pero el problema q no se como poner las imagenes
    Monday, June 07, 2010 12:46 AM
  • hola

    el tema es que el mail no entienede el formato del rtf, debes enviar texto con formato html para que puedas darle formato

    How do I send a simple Html email?

     

    por ahi puedas convertir el rtf en html antes de enviarlos

    Using a VB.NET 2005 Class to Convert RichText to HTML

    pero igual ojo porque las imagenes son todo un tema, no se agregan directamente, debes embeberlas como recurso dentro del mail con un nombre y luego referenciarlas

    pero intenta primero a ver si esto funciona

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    pues fijate qe ya habia provado eso.. pero el problema es como pner la imagen en el mail sin q sea adjunta..... ya encontre como mandar la imagen asi pero el problema que pones el mensaje primero y la imagen de ultimo y yo necesito q sea algo asi:

    ------texto--------

    <imagen>

    -----texto--------

     

    porfavor ayudenme......

    Monday, June 07, 2010 12:50 AM
  • gracias por tomarse las molestias de responder, pero todavia no doy como hacerlo, me voy a explicar un poco mejor...

    el texto y la imagen estan dentro de un richtextbox el cual deve de tener algo asi

    -------texto-------

    <imagen>

    -------texto-------

     

    no se como hacer para q envie todo por mail,  pensava poner q al incrustar la imagen guardara el texto en una variable y luego agregar el codigo de la imagen, pero el problema es como hago para agregar el texto q ponga despues de la imagen o bien si el usuario elimina la imagen como hacer pa borrarla del codigo, perdonen que moleste tanto pero estoy super super estresado con esto y no hay forma q lo logre.....

    Monday, June 07, 2010 12:59 AM
  • hola

    habias visto este link

     How do I embed images in an email?

    alli veras algo interesante

    Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:companylogo >", Nothing, "text/html")

    lo interesnte es lo que marco en negrita, alli esta indicando en el html donde se debe mostrar la imagen embebida en el mail, pero situada en el html

     

    por supuesto el cid debe coindidir en nombre

    'create the LinkedResource (embedded image)
    Dim logo As New LinkedResource("c:\temp\logo.gif")
    logo.ContentId = "companylogo"
    'add the LinkedResource to the appropriate view
    htmlView.LinkedResources.Add(logo)

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Monday, June 07, 2010 1:16 AM
  • Como estan les comento, resolvi el problema pero no con el richtextbox sino que usando un webbrowser control.

    la instruccion para poner el webbrowser como un textbox es:

    x = WebBrowser1.Document

    x.Body.SetAttribute(

    "contentEditable", True)

    x.Body.InnerText =

    ""

     

    ahora para mandar  las imagenes incrustadas es:

    If

     

    x.Body.Document.Images.Count >= 1 Then

     

    For i As Integer = 0 To x.Body.Document.Images.Count - 1

    strImg = x.Body.Document.Images.Item(i).OuterHtml.Substring(50)

    strImg = Replace(strImg,

    ">", "")

    strImg = strImg.Substring(0, strImg.Length - 1).Trim

     

    Dim strimgFILE As String = "file:///" & strImg

     

    loBP = .AddRelatedBodyPart(strimgFILE, strImg & i, 1)

     

    With loBP.Fields

    .Item(

    "urn:schemas:mailheader:Content-ID") = strImg & i

    .Update()

     

    End With

     

    Next

     

    End If

    el cuerpo ensi del mensaje seria en ves de .text

    x.Body.OuterHtml

     

    ya voy dentro del proyecto si puedo ayudarles en algo con gusto

    Wednesday, June 09, 2010 7:56 AM
  • ahora bien tengo un pequeño problema..... ya tengo todo el editor listo, para cambiar la fuente, el tamaño incluso para poner negrita, cursiva y subrayado, el problema es que no se como hacer es que al tener 2 palabras con diferentes fuentes al poner el cursor en cada palabra el combo de la fuente cambie al nombre de la misma, por ejemplo algo asi

    Hola Adios

    al poner el curson en la palabra hola la imagen de la negrita se pone azul q qiere decir que la palabra esta en negrita,y al ponerla en Adios se pone en la imagen de subrayado, como podria hacer eso, como obtengo el formato q tiene el caracter donde estoy situado,

     

    alguien qeu pueda ayudarme?

    Wednesday, June 09, 2010 8:00 AM