2010-09-23 180 views
2

我使用這個代碼發送電子郵件發送電子郵件給用戶

var message = new MailMessage("[email protected]", "[email protected]"); 
message.Subject = "Testing"; 
message.IsBodyHtml = true; 
message.Body = "<html><body>IMAGINE A LOT OF HTML CODING HERE</body></html>"; 

問題是我只是複製,我想作爲電子郵件發送的HTML,現在我必須使整個HTML代碼ONE單線!否則它會說「;」失蹤!我的意思是,現在我不能繼續刪除空格,並把它放在一行!這是太多的HTML代碼,我需要發送。我該怎麼辦 ? :/

[編輯] 另一個問題:是否有限制這message.Body?像這樣可以插入多少HTML的限制?

回答

10

Dan給出了一個選項 - 逐字字符串文字 - 但我想建議您將數據移動到單獨的HTML文件中。將其作爲資源嵌入到程序集中,然後可以在執行時加載它。

通過這種方式,您將獲得HTML語法高亮顯示功能,不會使用大量數據混淆您的代碼,而且您可以隨時輕鬆編輯它,而無需擔心諸如雙引號之類的內容需要在逐字字符串文字中加倍,或者在常規字符串文字中用反斜線進行轉義)。

不利的一面是,將用戶數據放在HTML中變得越來越難 - 爲此,您可能需要考慮使用模板系統;無論是簡單的手寫(html = html.Replace("$user", name))或可用的各種模板庫之一。當然,在適當的時候要小心使用HTML轉義。

+0

好吧會嘗試做到這一點.. thnx – Serenity 2010-09-23 07:38:01

6

可以使用@字符:

message.Body = @" 
    <html> 
     <body> 
      IMAGINE A LOT OF HTML CODING HERE 
     </body> 
    </html>"; 

此工程確定,如果你有一個小的HTML標記/想快速和骯髒的解決方案。對於產品代碼,我建議你使用Jon Skeet提出的建議,保留一個單獨的HTML文件。

+1

參考:http://msdn.microsoft.com /en-us/library/aa691090(VS.71).aspx – 2010-09-23 07:34:55

1

將文本放到多行上?

message.Body = "<html><body>IMAGINE A LOT OF "+ 
       " HTML CODING HERE</body></html>"; 
相關問題