2013-04-16 263 views
0

使用下面的簡單SMTP C#代碼發送電子郵件,我如何發送電子郵件模板?C#發送.htm電子郵件模板

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); 
    message.To.Add(toEmailAddress); 
    message.Subject = "subject"; 
    message.From = new System.Net.Mail.MailAddress(from); 
    message.Body = "http://www.yoursite.com/email.htm"; 
    message.IsBodyHtml = true; 
    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("server"); 
    smtp.Send(message); 

目前,如預期的那樣,收到的電子郵件只包含模板的URL。我怎樣才能讓它發送模板?

+0

您需要將HTML導入字符串並將其設置爲正文。 – tomasmcguinness

回答

2
System.Net.WebClient client = new System.Net.WebClient(); 
string html = client.DownloadString("http://www.yoursite.com/email.htm"); 

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); 
message.To.Add(toEmailAddress); 
message.Subject = "subject"; 
message.From = new System.Net.Mail.MailAddress(from); 
message.Body = html; 
message.IsBodyHtml = true; 
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("server"); 
smtp.Send(message); 
0

你的問題其實是關於閱讀的URL字符串和可能的答案之一是:

var url = "http://www.yoursite.com/email.htm"; 
var body = ""; 

using(var client = new WebClient()) { 
    body = client.DownloadString(url); 
} 
0

如果該文件是本地的,而不是使用一個下載,你可以簡單地閱讀它使用System.IO,例如

string html; 
    System.IO.StreamReader fstream; 
    fstream = File.OpenText("yourpathgoeshere.html"); 
    html = fstream.ReadToEnd(); 
    fstream.Close(); 

之後,只需按照其他帖子中的建議分配剩餘的屬性。如果你之後的html文件存儲在本地,這可能會更好,或者如果它將被頻繁訪問,最好將它存儲在本地並使用此方法。

請注意,您需要導入System.IO才能正常工作。