Asp.net 使用vb.net嵌入未在emaill中显示的图像
我试图显示一个嵌入在电子邮件正文中的图像。发送的是图像,但是没有图像 代码如下:Asp.net 使用vb.net嵌入未在emaill中显示的图像,asp.net,vb.net,image,system.net.mail,Asp.net,Vb.net,Image,System.net.mail,我试图显示一个嵌入在电子邮件正文中的图像。发送的是图像,但是没有图像 代码如下: 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 codedige
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)
Dim mail As New MailMessage()
邮件。[收件人]。添加(“siu07aj@reading.ac.uk")
mail.From=新邮件地址(“atiqisthebest@hotmail.com")
mail.Subject=“测试电子邮件”
Dim Body As String=“欢迎来到codedigest.com!!
在线资源获取.net文章。
”
Dim htmlView As AlternateView=AlternateView.createAlternateView-FromString(正文,无任何内容,“文本/html”)
Dim imagelink作为新的LinkedResource(Server.MapPath(“.”&“\uploads\CIMG1443.JPG”,“image/JPG”)
imagelink.ContentId=“imageId”
imagelink.transferncode=System.Net.Mime.transferncode.Base64
htmlView.LinkedResources.Add(imagelink)
mail.AlternateViews.Add(htmlView)
Dim smtp作为新的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(邮件)
在电子邮件正文中,仅显示以下内容:
欢迎访问CodeDigest.Com强>
你知道我怎样才能显示CIMG1443.JPG吗
谢谢您可以尝试通过以下方法将图像转换为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=“”
这样,您就可以将图像添加为资源。虽然我必须承认我没有在hmlt电子邮件中尝试过,但这在很多地方对我都有效
萨沙可惜,我也需要一个答案。:)
dim imageString = "<img src=""data:image/png;base64," + ImageToBase64(yourImage, ImageFormat.Png) + "="" />"