While you will usualy link images to a static location, there are situations where it can be very practical to include the actual image in the message and send it inline. This code snippet is a demonstration of the minimal code required to send an email message with an inline image using C#.
using System.Net.Mail;
namespace EmbeddedImageMailDemo
{
/// <summary>
/// Demonstration of the minimal code required to send an email message with an inline image
/// </summary>
class Program
{
static void Main(string[] args)
{
// Initialisation
string sendermail = "someone@somewhere.com";
string receivermail = "someoneelse@someoneelse.com";
string mailserver = "your.smtpserver.local";
// Base email message
var msg = new MailMessage();
msg.IsBodyHtml = true;
msg.From = new MailAddress(sendermail);
msg.To.Add(receivermail);
msg.Subject = "Demo email with image";
// Create the embedded resource and the body
LinkedResource lr = new LinkedResource(@".\myimage.jpg", "image/jpeg");
lr.ContentId = "myimage";
string bodytext = "<img src='cid:myimage' />";
bodytext += "This is my testmail with embedded image below!";
AlternateView htmlview = AlternateView.CreateAlternateViewFromString(bodytext, new System.Net.Mime.ContentType("text/html"));
htmlview.LinkedResources.Add(lr);
msg.AlternateViews.Add(htmlview);
// Send the message
var smtp = new SmtpClient(mailserver);
smtp.Send(msg);
}
}
}