[ASP.NET] C# 寄信程式 - 多行內容斷行方式

  • 6229
  • 0

摘要:[ASP.NET] C# 寄信程式 - 多行內容斷行方式

 

當系統有送信的需求的時候,我都會用「[ASP.NET] 寄信程式 C#」來完成送信,但今天自己塞信件內容跟串系統的變數,結果發現使用原方法信件內容並沒辦法達到斷行的效果,於是做了底下一點小改變。

原本宣告 body 內容要以 HTML 方式來傳送「xmail.IsBodyHtml = true;」,並定義了「xmail.Body = Server.HtmlEncode(xMessage);」

--- 但不能滿足需求 ---

在呼叫此送信程式前,信件的內容以 "文字"+ $變數 +"文字 <br>" 來做格式化 ,期望使用者收到信的時候,能呈現我想要他斷行的效果。

--- 結果是不行的 ---

於是改寫了一些片段

xmail.Body = Server.HtmlEncode(xMessage);  
xmail.IsBodyHtml = true;  // 設定Email 內容為HTML格式
xmail.BodyEncoding = System.Text.Encoding.UTF8;

----變更為-------------------------------------------

xmail.BodyEncoding = System.Text.Encoding.UTF8;
xmail.IsBodyHtml = true;

var message = new System.Net.Mail.MailMessage();
message.Body = xMessage;  //多過這一段是為了讓內容可以接受 <br> 斷行,最後訊息會以 UTF-8 將整段內容編碼,並且信件仍會維持基本文字格式,而非HTML的格式,故文字型的收信程式,也能正確讀取。
xmail.Body = message.Body;  //Email 內容

 

其他部分則無須修改~~

~End