2011-09-18 78 views
0

我有發送電子郵件的聯繫表。從聯繫表格發送格式信息

但是,如果我在文本區域中鍵入一個長消息,然後單擊提交,在我的電子郵件中顯示在單行中的此消息。

例如,如果我輸入的是在消息文本區域:

My super Mesasge 
My Mesasge Mesasge 

From Test. 

在我的電子郵箱就會像:

My super Mesasge My Mesasge Mesasge From Test. 

爲什麼格式( 「/ R/N」)迷路我怎麼能保持這個消息的格式?

更新: 我用AntiXSS.4.0.1 如:model.Message: 「sdfsdf \ r \ nsdfsdf \ r \ nsdfsdfsdafsdfa」

我這樣做:

model.Message = model.Message.Replace("\r\n", "<br />"); 
    //result: model.Message="sdfsdf<br />sdfsdf<br />sdfsdfsdafsdfa" 

比:

 model.Message = Sanitizer.GetSafeHtmlFragment(model.Message); 
    //result: model.Message="sdfsdf<br>\r\nsdfsdf<br>\r\nsdfsdfsdafsdfa" 

那麼爲什麼Sanitizer.GetSafeHtmlFragment增加\ r \ n回來?並且它也被更改爲<br /><br>

回答

0

這將取決於您如何發送電子郵件。如果使用HTML(message.IsBodyHtml),則在填充message.Body時,需要用<br/>替換\r\n

+0

問題更新 – jason

+0

@jason,我不知道爲什麼' GetSafeHtmlFragment'方法爲每個「
」添加'\ r \ n',但這不應該是任何問題,因爲它仍然是有效的html。在html中新行並不重要,如果您使用'IsBodyHtml = true'發送電子郵件,它將按預期工作(即,新行將保留在原始textarea中)。 –

1

我能想到的唯一的事情,那是你的電子郵件格式爲HTML,所以在NewLine<p></p>標籤或<br />轉換