2010-04-30 112 views
0

我通過SMTP發送一個字符串作爲消息。 但最終的郵件不考慮標籤和換行符。 什麼可能是問題 在此先感謝SMTP:換行問題

回答

3

我猜你是發送郵件爲HTML,在這種情況下,空格,製表符和換行符都將被摺疊到一個空間。

您需要將標籤轉換爲&nbsp;或類似標籤,並用<br>標籤替換換行符(或換行使用<p>標籤)。

或者,您也可以發送郵件以純文本,這些字符將被保留:

var mail = new MailMessage(); 
mail.IsBodyHtml = false; 
... 
+0

謝謝OrbMan ...幫助 – user279244 2010-04-30 14:15:28

3

嘗試添加下面的頭:

Mime-Type: text/plain 

這將使大多數電子郵件閱讀器保持空白完好無損,並且大部分時間強制使用固定寬度的字體。

如果您已經使用HTML郵件,那麼封裝<pre></pre>的所有內容都應該這樣做。或者,如果你使用CSS,你可以做<div style="white-space: pre;">...</div>

此外,請確保您通過服務器發送的內容具有\r\n(0x0D,0x0A)行尾,而不僅僅是\n(UNIX)或\r(Mac)。

+0

謝謝!正如您所建議的那樣,當我從純文本(IsBodyHtml = false)切換到使用HTML(IsBodyHtml = true)並使用

包裝正文時,我纔開始獲取固定寬度的字體(保留消息格式所必需的)。 –
                        
                            
    spotcatbug
                                2013-01-03 16:46:51
                            
                        
                    

+0

我有類似的問題,並嘗試了各種組合,我在這裏讀到SO和

建議做到了!謝謝! –
                        
                            
    djmarquette
                                2013-08-16 18:20:50