Email formateado desde richtextbox

Estoy creando una aplicación para envío masivo de correo electrónico con archivos adjuntos, imitando la combinación de correspondencia del Word pero dándole el plus de que vayan con documentos atacados. En este momento el desarrollo está en poder enviar el cuerpo del mensaje personalizado y formateado, a través, de un control richtextbox, cuyo contenido lo envío utilizando MAPI (MAPIMessages1. MsgNoteText =richtext. Propiedad); las propiedades que probadas han sido .text y .textrtf sin lograr resultados ya que el correo llega sin el formato definido en el control rich. ¿Qué puedo hacer?.

1 Respuesta

Respuesta
1
El problema que tenés es que los mails no usan el mismo tipo de formateo que los richtextbox, los mails, hay que formatearlos con tags html, lo que podes hacer es que el usuario lo pueda formatear, usando las propiedades del rich, y vos después lees el contenido, y lo formateás.
Alguna vez había visto un ejemplo, creo que fue en planetsourcecode.com ...
Cualquier cosa si no lo encontrás, avisame que te lo busco...
Te agradecería si me das una mano buscando el ejemplo.
Muchas gracias por responder tan pronto.
Saludos.
Acá encontré un ejemplo de como enviar mails formateados, luego vos lo tendrías que integrar a tu aplicación, fíjate si te sirve.
La url es:
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=5658&lngWId=1
Hola, yo de nuevo con el tema de rich, mis disculpas por no cerrar el tema pero he estado un poco atareado.
Bueno espero que con esto terminemos, el código que me enviaste está bastante bueno, eso si, un poco complicado en el tema librerías. Mi aplicación utiliza el control mapi para el envío de correo que es mucho más sencillo. Hasta ahora (y gracias a tus guías) tengo el asunto andando pero topo solo en un detalle, el texto y formato del rich lo paso a html sin problemas, pero cuando envío el html a través de MapiMessages1. MsgNoteText=texto_html, lo que llega es el código.
¿Cómo puedo hacer que la propiedad MsgNoteText u otra reconozca que lo que le estoy pasando es código html?.
Gracias.
Lo que lo diferencia un mail html o no es el encabezado, en el código que yo te envíe usa la siguiente la función que está más abajo para obtenerlo:
La parte donde dice "content type", ahí es donde se especifica el tipo de contenido del mail, están: "text/html" y "text/plain" creo que ninguno más. En tu caso deberías usar "text/html"
Estuve investigando que es vsboundaryid, y es una constante con un string asignado, pero nunca más le reasigna el valor. Así que no sé porque lo pasa como argumento,, si es un valor redundante.
En fin, problalo en tu app, y luego comentame
Saludos
Andrés
Public Function GetMIMEHeader(ByVal vsBoundaryID As String) As String
GetMIMEHeader = "MIME-Version: 1.0" & vbCrLf & _
"Content-Type: multipart/related; boundary=" & _
Chr(34) & vsBoundaryID & Chr(34) & "; type=" & Chr(34) & _
"text/html" & Chr(34) & vbCrLf & _
"Text displayed only to non-MIME-compliant mailers" & vbCrLf & _
"--" & vsBoundaryID & vbCrLf & _
"Content-Type: text/html; charset=us-ascii" & vbCrLf & _
"Content-Transfer-Encoding: 7bit" & vbCrLf
End Function
Mira lo solucioné de la siguiente manera:
strHTML = "<HTML>"
'strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & Text1.Text
strHTML = strHTML & "</BODY>"
strHTML = strHTML & "</HTML>"
Set iMsg = CreateObject("CDO.Message")
Dim iBP
With iMsg
.To = destino!en_who
.From = "[email protected]_dominio.cl"
.Subject = "Mensaje con formato de prueba"
.HTMLBody = strHTML
Set iBP = .AddAttachment(App.Path & "\archivo.txt")
.Send
End With
Set iBP = Nothing
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
La propiedad .HTMLBody pasa el html al correo y este lo intepreta como tal.
Gracias por tu ayuda, ya que me sirvió de guía para encontrar la solución.
Cuéntame si tienes algún comentario, sino para cerrar la pregunta.
Saludos.
Je, tenés razón, pensé que había un problema más complicado de por medio, eso me pasa por pensar siempre en la solución más difícil!
Suerte y Saludos
Andrés

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas