Hoofdstuk 15 - Les 1

Met de MailMessage class kan een e-mail bericht worden opgesteld:
MailMessage m = new MailMessage("me@foo.com", "to@bar.com", "Subject", "Content");
Zowel de ontvanger als verzender kan opgegeven worden door een string of een MailAddress object.

Met MailMessage.Attachments.Add kan er een bijlage worden meegestuurd met de e-mail.
MailMessage m = new MailMessage();
m.Attachments.Add(new Attachment(@"C:\windows\win.ini"));

Met de MediaTypeNames enumeratie kan het MIME type bepaald worden. In de meeste gevallen zal dit MediaTypeNames.Application.Octet zijn. Als een bijlage wordt toegevoegd d.m.v. een stream, dan moet er een bestandsnaam worden opgegeven.

Om een mail te versturen met HTML content moet de body HTML tags bevatten en moet de IsBodyHtml property op true worden gezet. Om gebruik te maken van afbeeldingen dient gebruik gemaakt te worden van de AlternateView en de LinkedResource class.
// Maak html content
string htmlBody = "<html><body><h1>Picture></h1><br><img src=\"cid:Pic1\"></body></html>";

AlternateView av = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html);

// Maak een LinkedResource object voor elke afbeelding
LinkedResource pic1 = new LinkedResource("pic.jpg", MediaTypeNames.Image.Jpeg);
pic1.ContentId = "Pic1";
av.LinkedResources.Add(pic1);

MailMessage m = new MailMessage();
m.AlternateViews.(av);
m.From = new MailAddress("astrix@galilea.nl", "Asterix & Obelix");
m.To.Add(new MailAddress("soldaat@foo.nl", "De domme soldaat"));
m.Subject = "Een afbeelding om jullie af te schrikken!";
SmtpClient client = new SmtpClient("smtp.galilea.nl");
client.Send(m);

Gebruik 'cid:contectID' in de img tag om een verwijzing te maken naar linked resources. De contentID moet overeenkomen met de ContentID property van de LinkedResource object. Elke LinkedResource moet een unieke ContentID hebben.

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren