簡體   English   中英

向用戶發送電子郵件

[英]Sending email to a user

我正在使用此代碼發送電子郵件

var message = new MailMessage("abc@somedomain.com", "administrator@anotherdomain.com");
message.Subject = "Testing";
message.IsBodyHtml = true;
message.Body = "<html><body>IMAGINE A LOT OF HTML CODING HERE</body></html>";

問題是我只是復制了我想要作為電子郵件發送的HTML,現在我必須在一行中制作整個HTML代碼! 否則就是說“;” 失蹤! 我的意思是,現在我不能繼續刪除空格並把它全部放在一行! 這是我需要發送的HTML代碼太多了。 我該怎么辦 ? :/

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

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

通過這種方式,您將獲得HTML語法突出顯示,您不會使用大量數據混亂您的代碼,並且您可以隨時輕松地編輯它,而不必擔心雙引號(這需要是雙引號)在逐字字符串文字中加倍,或在常規字符串文字中使用反斜杠進行轉義)。

缺點是將用戶數據放在HTML中變得更加困難 - 為此,您可能需要考慮使用模板系統; 要么只是手寫( html = html.Replace("$user", name) ),要么是可用的各種模板庫之一。 當然,在適當的時候小心使用HTML轉義。

你可以使用@字符:

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

如果您有一個小的HTML標記/想要一個快速而骯臟的解決方案,這可以正常工作。 對於生產代碼,我建議您使用Jon Skeet建議的內容,保留單獨的HTML文件。

回答你的第二個問題:

“Body屬性可以包含任何大小不超過4 MB的對象”

來自http://msdn.microsoft.com/en-us/library/system.messaging.message.body.aspx

把文字放到多行?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM