Public Sub SendEmail() 'CREATE MAIL MESSAGE Using myMailMessage As New MailMessage myMailMessage.To.Add("recipent@domain.com") myMailMessage.From = New MailAddress("me@mydomain.com") myMailMessage.Subject = "This is the email subject" myMailMessage.Body = "This is the default text body" myMailMessage.IsBodyHtml = True 'THIS WILL MAKE THE MESSAGE USE THE ALT HTML VIEW 'CREATE ALT HTML BODY THAT WILL INCLUDE EMBEDDED IMAGE 'NOTE THE IMG SRC IS CID:ThePictureID Dim myMailHTMLBody = "<html><head></head><body>This is a test and should include a picture: <img src=cid:ThePictureID></body></html>" 'BYTES ARRAY OF IMAGE SO WE CAN PUT IN MEMORY STREAM Dim myImageData() As Byte = Nothing 'GRAB IMAGE FROM FILE AND PUT IN MEMORY STREAM Using myImage = Image.FromFile("C:\directory\image.jpg") Dim IC As New ImageConverter myImageData = DirectCast(IC.ConvertTo(myImage, GetType(Byte())), Byte()) End Using Using myStream As New MemoryStream(myImageData) 'CREATE ALT VIEW Dim myAltView As AlternateView = AlternateView.CreateAlternateViewFromString(myMailHTMLBody, New System.Net.Mime.ContentType("text/html")) 'CREATE LINKED RESOURCE FOR ALT VIEW Dim myLinkedResouce = New LinkedResource(myStream, "image/jpeg") 'SET CONTENTID SO HTML CAN REFERENCE CORRECTLY myLinkedResouce.ContentId = "ThePictureID" 'this must match in the HTML of the message body 'ADD LINKED RESOURCE TO ALT VIEW, AND ADD ALT VIEW TO MESSAGE myAltView.LinkedResources.Add(myLinkedResouce) myMailMessage.AlternateViews.Add(myAltView) 'SEND EMAIL Using mySMTP As New SmtpClient mySMTP.Host = "smtp.yourdomain.com" mySMTP.Credentials = New System.Net.NetworkCredential("you@domain.com", "password") mySMTP.Send(myMailMessage) End Using End Using End Using End Sub
<img src=cid:ThePictureID>
<img src="data:image/jpg;base64,...base64String..." />
MemoryStream ms = new MemoryStream(); myBitmap.Save(ms, Imaging.ImageFormat.Jpeg); byte[] imgData = ms.ToArray(); string base64Data = Convert.ToBase64String(imgData);
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)