2011-10-24 5 views
16
string to = "[email protected]"; 
string body = "Test"; 
SmtpClient SMTPServer = new SmtpClient("127.0.0.1"); 
MailMessage mailObj = new MailMessage(urEmail, to, subject, body); 
SMTPServer.Send(mailObj); 

Questo è il modo in cui sto attualmente inviando un'email di prova. Come faccio a rendere questo codice HTML ed essere in grado di far apparire meglio l'e-mail con l'aggiunta di immagini, ecc.?MailMessage C# - Come renderlo HTML e aggiungere immagini, ecc.?

Grazie

+0

Meglio non chiamare un oggetto SmtpClient come SMTPServer. – Hikari

risposta

33

Sulla MailMessage impostare la proprietà IsBodyHtml su true.

string to = "[email protected]"; 
string body = "Test"; 
SmtpClient SMTPServer = new SmtpClient("127.0.0.1"); 
MailMessage mailObj = new MailMessage(urEmail, to, subject, body); 

mailObj.IsBodyHtml = true; // This line 

SMTPServer.Send(mailObj); 
7

è necessario impostare mailObj .IsBodyHtml = true;

1

è possibile utilizzare la seguente idea di prendere una pagina ASPX e rendere in una stringa:

StringWriter writer = new StringWriter(); 
Server.Execute("Login.aspx", writer); 
string html = writer.ToString(); 

Se quindi impostare il MailMessage.IsBodyHtml true è possibile inviare un messaggio HTML. Se si desidera utilizzare immagini e altri elementi, assicurarsi che il destinatario dell'e-mail possa accedere a tali immagini.

1

Ci sono due modi per farlo:

  1. Incorpora le immagini all'interno la posta. (vedi this question)

  2. Collegamento alle immagini tramite l'attributo src del tag immagine all'interno della tua posta HTML. Questo ha bisogno di ospitare i file immagine da qualche parte su un server web a cui i destinatari possono accedere.

In entrambi i casi è necessario inviare la posta con un corpo html.

mailObj.IsBodyHtml = true; 
0

Per le tue domande su l'aggiunta di immagine per la tua email, se il vostro chiedendo per l'incorporamento è possibile utilizzare i tag di ancoraggio di HTML oppure allegare il file immagine al di posta elettronica utilizzando il metodo i mailObj.Attachments.Add() indovina.

Ma il modo migliore è inviare le immagini come allegati perché alcuni firewall bloccano solo le immagini incorporate ma consentono gli allegati. In questo modo sei più sicuro nel consegnare il contenuto, anche se non è un modo perfetto.

Problemi correlati