電子郵件MIME標準使用transfer encoding技術來解決這個問題。理想情況下,您將使用一個爲您處理此問題的郵件庫,因此您可以插入任意長度的行。
使用C#中的System.Net.Mail.MailMessage
類,你應該能夠建立正常的消息,它會轉移編碼它。如果這不起作用,您也可以使用一個System.Net.Mail.AlternativeView
構造一個多部分消息,並明確設置傳輸編碼。
這是我目前使用的一個樣本(注意它有一個字符編碼錯誤,使你的身體文本必須爲Unicode字符串):
private void Send(string body, bool isHtml, string subject, string recipientAddress, string recipientName, string fromAddress)
{
using (var message = new MailMessage(new MailAddress(fromAddress),
new MailAddress(recipientAddress, recipientName)))
{
message.Subject = subject;
var alternateView = AlternateView.CreateAlternateViewFromString(body, message.BodyEncoding,
isHtml ? "text/html" : "text/plain");
alternateView.TransferEncoding = TransferEncoding.QuotedPrintable;
message.AlternateViews.Add(alternateView);
var client = new SmtpClient();
client.Send(message);
}
}
是您控制的html源代碼 – 2010-10-21 14:09:01
是的,在技術上。然而,我們必須做一些後處理,包括將html粘貼到div的innerHTML中,這完全混淆了換行格式。 – 2010-10-21 15:21:59
您不應該將任何腳本作爲HTML電子郵件的一部分發送。你應該刪除它。這實際上是我的軟件中的一個選項。 – 2010-10-22 12:30:30