电子邮件MIME标准使用传输编码技术来解决这个问题。理想情况下,您将使用一个为您处理此问题的邮件库,因此您可以插入任意长度的行。
使用System.Net.Mail.MailMessage
C# 中的类,您应该能够构造一个普通的消息,它会为您传输编码。如果这不起作用,您还可以使用单个构造多部分消息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);
}
}