встраивание изображения не отображается в emaill с использованием vb.net - PullRequest
1 голос
/ 10 февраля 2011

Я пытаюсь отобразить встроенное изображение в теле письма.Отправляется, однако без изображения.

Ниже приведен код:

Dim mail As New MailMessage()

mail.[To].Add("siu07aj@reading.ac.uk")

mail.From = New MailAddress("atiqisthebest@hotmail.com")

mail.Subject = "Test Email"


Dim Body As String = "<b>Welcome to codedigest.com!!</b><br><BR>Online resource for .net articles.<BR><img alt="""" hspace=0 src=""cid:imageId"" align=baseline border=0 >"

Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(Body, Nothing, "text/html")

Dim imagelink As New LinkedResource(Server.MapPath(".") & "\uploads\CIMG1443.JPG", "image/jpg")

imagelink.ContentId = "imageId"

imagelink.TransferEncoding = System.Net.Mime.TransferEncoding.Base64

htmlView.LinkedResources.Add(imagelink)

mail.AlternateViews.Add(htmlView)

Dim smtp As New SmtpClient()

smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis
smtp.Host = ConfigurationManager.AppSettings("SMTP")
smtp.Port = 587
'smtp.EnableSsl = True

smtp.Credentials = New System.Net.NetworkCredential(ConfigurationManager.AppSettings("FROMEMAIL"), ConfigurationManager.AppSettings("FROMPWD"))

smtp.Send(mail)

В теле письма отображается только следующее:

Добро пожаловать в CodeDigest.Com !!

Есть идеи, как мне получить отображение CIMG1443.JPG?

Спасибо

1 Ответ

0 голосов
/ 24 ноября 2015

вы можете попытаться встроить изображение, преобразовав его в строку base64 следующим способом:

Public Function ImageToBase64(image As Image, format As System.Drawing.Imaging.ImageFormat) As String
    If image Is Nothing Then Return ""

    Using ms As New MemoryStream()
        ' Convert Image to byte[]
        image.Save(ms, format)
        Dim imageBytes As Byte() = ms.ToArray()

        ' Convert byte[] to Base64 String
        Dim base64String As String = Convert.ToBase64String(imageBytes)
        Return base64String
    End Using
End Function

Затем вы добавляете изображение в свой HTML-код, используя что-то вроде этого (где yourImage является экземпляром класса Image):

dim imageString = "<img src=""data:image/png;base64," + ImageToBase64(yourImage, ImageFormat.Png) + "="" />"

Таким образом, вы можете добавить изображение в качестве ресурса.Это сработало для меня в нескольких местах, хотя я должен признать, что я не пробовал это на электронных письмах hmlt.

Саша

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...