none
VB.NET 2008 - Enviar mail embebiendo una página web RRS feed

  • Pregunta

  • Estimados,

    necesito enviar un mail donde muestre una página web ubicada en una url externa, por ejemplo: www.mipagina.com

    Algo muy similar a los mail publicitarios. Utilizo MailMessage y IsBodyHtml = True

    He probado escribiendo html dentro del cuerpo del mail, utilizando <iframe> pero no funciona.

     correo.From = New MailAddress("xxxx@xxxx.xxx", oEmpresa, System.Text.Encoding.UTF8)
            correo.Bcc.Add(xxxx@xxxx.xxx)
            correo.Subject = Asunto
            correo.SubjectEncoding = System.Text.Encoding.UTF8
            correo.BodyEncoding = System.Text.Encoding.UTF8
            correo.Priority = MailPriority.Normal
            correo.IsBodyHtml = True
            correo.Body = "<html><iframe src='http://www.mipagina.com'>Prueba</iframe></html>"
    
    
            Dim smtp As New SmtpClient()
            smtp.Credentials = New System.Net.NetworkCredential("xxxx@xxxx.xxx", "xxxxx")
            smtp.Port = xxxx
            smtp.Host = xxx
            smtp.EnableSsl = xxx
    
            Try
                smtp.Send(correo)
                Marketing = True
            Catch ex As Exception
                Marketing = False
            Finally
                correo.To.Clear()
            End Try

     

     

    • Cambiado Enrique M. Montejo jueves, 21 de julio de 2011 17:34 desarrollo web (De:Lenguaje VB.NET)
    lunes, 22 de marzo de 2010 14:21

Todas las respuestas

  • Hola quizas en el body podrias poner directamente el contenido de la web, es decir haz un request de la web y guarda el stream devuelto en el body.

    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    lunes, 22 de marzo de 2010 14:27
  • Gracias por la respuesta, pero como hago eso?
    lunes, 22 de marzo de 2010 14:29
  • hola

    mira este link

    Sending Email Using Embedded Images


    como veras especificando esta vista alternativa del mail
    puede que en tu caso pase lo mismo

    o sea no asignes directo el html a la propiedad Body, realizalo por medio de esta otra propiedad

    se que loe ejmeplo no incluyen directo un link, sino que usas imagenes, epro lo importante es ver la tecnica que usan

    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 22 de marzo de 2010 14:30
  • Que significa que no funciona? se envía o no se envía??

    De enviar se debería enviar creo, pero de visualizar lo dudo... piensa que el visor de páginas web del outlook no es el mismo que el del explorer, es mucho más recortado, por lo que no creo funcione el iframe...

    Normalmente como dice JTorrecilla se envía el cuerpo de la página web, el código html, y si acaso se dejan las imagenes en el servidor para que se lo descarguen... Además, piensa que los correos recibidos con contenido en internet preguntarán al usuario si quieren verlo antes de mostrarlo, por lo que el 95% de la gente no lo verá... Yo intentaría montarlo todo en el body bien e incluir las imagenes, eso si, bien optimizado para que no pese...


    Iván Noya Cendal
    http://www.seuvella.com

    Si la respuesta te ha ayudado, marcala.
    lunes, 22 de marzo de 2010 14:31
  • Dale un vistazo a este enlace

    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    lunes, 22 de marzo de 2010 14:32
  • hola

    No es recomendable que el cuerpo del mensaje sea una web externa, principalmente por una razon: SPAM, el 99% de los gestores y servidores de correo pensaran que tu mail es spam y bloquearan el contenido activo.

    La mayoria de email publicitarios tienen una página externa por si el gestor de correo te bloquea el cuerpo html pero no es esa página la que se contiene dentro del body, crean html para ese cuerpo y lo envian dentro del mensaje, lo que si hacen es referenciar las imagenes y otro contenido al publicado en la web.

    Lo mejor que podrias hacer es en la propiedad body del correo meter el código html del body de la web que quieras visualizar, cambiando las referencias a las imagenes para que apunten a la web pública y poner un enlace en la parte superior a la web publica del estido "Si no puede leer el correo pinche aqui..."

    Un saludo.


    MCTS .NET Framework 3.5 Windows Forms Application Development
    lunes, 22 de marzo de 2010 14:32
  • hola

    bien si la idea en embeber directo el contenisdo del la pagina externa, ten en cuanta que son dos pasos los que debes realizar

    uno sera tomar el html generado por la pagina que necesitas

    el otro sera incluir esto al cuerpo del mail

     

    el primer punto lo podrias lograr, como comento jtorrencilla

    al final obtendrias el html, desde el GetResponse()

     

    Dim receiveStream As Stream = response.GetResponseStream()

    Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)

    Dim externalhtml As String = readStream.ReadToEnd()

     

    este es el que debes incluir en el body

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 22 de marzo de 2010 14:42