2010-03-09 27 views
1

我有一個電子郵件模板,它只是一個普通的靜態HTML頁面。如何將電子郵件頁面/模板的內容拖入.NET中的MailMessage正文中

我需要將該頁面放入MailMessage的正文中。

通常我會做的只是創建一個StringBuilder並反覆追加行。但它是一個很長的頁面,我不想通過用單引號替換引號等。

那麼有沒有辦法只是將HTML頁面的內容拉入字符串?如:

emailMessage.IsBodyHtml  = true; 
emailMessage.Subject  = "Test Subject"; 
emailMessage.Body   = GetContentsFrom("emailtemplate.html"); 

謝謝!

+1

行情? File.ReadAllText(「emailtemplate.html」)有什麼問題? – 2010-03-09 17:35:44

+0

我的意思是說,手動做sb.append()一遍又一遍。 – 2010-03-09 17:48:55

回答

1

我認爲這個程序會做的伎倆:

private static string GetTemplate(string templateFullPath) 
{ 
    string template; 

    if (!File.Exists(templateFullPath)) 
     throw new ArgumentException("Template file does not exist: " + templateFullPath); 

    using (StreamReader reader = new StreamReader(templateFullPath)) 
    { 
     template = reader.ReadToEnd(); 
     reader.Close(); 
    } 

    return template; 
} 
1

是否正在某處託管的網頁?你可以這樣做:

私人字符串HtmlPageInToString()

{

WebRequest myRequest; 
myRequest = WebRequest.Create(@"http://yoururlhere/"); 

myRequest.UseDefaultCredentials = true; 

WebResponse myResponse = myRequest.GetResponse(); 

Stream ReceiveStream = myResponse.GetResponseStream(); 
Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); 

StreamReader readStream = new StreamReader(ReceiveStream, encode); 

return readStream.ReadToEnd(); 

}

相關問題