Messaggio di posta in formato HTML con inline-attachment con ASP.NET 2.0
Tra le le funzionalità presenti nel .NET Framework dedicate alla composizione di messaggi di posta elettronica vi è quella che permette di includere nel corpo del messaggio alcuni allegati "embeddati" (detti anche inline-attachment), in particolare immagini nel caso in cui il formato del messaggio sia HTML.
Nel corpo del messaggio per ogni inline-attachment va specificato il cid (ContentId) che identifica in modo univoco l'allegato corrispondente.
Si noti che deve esistere una corrispondenza tra il cid indicato nel markup e il ContentId di ciascun elemento di tipo LinkedResource presente nella collezione associata al messaggio.
MailMessage msg = new MailMessage();
msg.From = new MailAddress("from@aspitalia.invalid");
msg.To.Add(new MailAddress("to@aspitalia.invalid"));
msg.Subject = "Oggetto";
// Versione in formato HTML
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(
"<html><body><img src=\"cid:IMG1\" alt=\"\" />" +
"<img src=\"cid:IMG2\" alt=\"\" /></body></html>",
Encoding.UTF8,
"text/html");
// Inline Attachment IMG1
LinkedResource img1 = new LinkedResource(
HttpContext.Current.Server.MapPath("Img1.jpg"));
img1.ContentId = "IMG1";
img1.ContentType = new ContentType("image/jpeg");
htmlView.LinkedResources.Add(img1);
// Inline Attachment IMG2
LinkedResource img2 = new LinkedResource(
HttpContext.Current.Server.MapPath("Img2.gif"));
img2.ContentId = "IMG2";
img2.ContentType = new ContentType("image/gif");
htmlView.LinkedResources.Add(img2);
msg.AlternateViews.Add(htmlView);






