Messaggio di posta in formato HTML con inline-attachment con ASP.NET 2.0

di Riccardo Golia, in ASP.NET 2.0, System.Net.Mail,

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);

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi