電子メールMIME標準では、転送エンコード技術を使用してこの問題を解決しています。理想的には、これを処理してくれるメール ライブラリを使用して、任意の長さの行を挿入できるようにします。
C# でクラスを使用するSystem.Net.Mail.MailMessage
と、通常のメッセージを作成できるはずであり、転送エンコードされます。それが機能しない場合は、単一のマルチパート メッセージを作成しSystem.Net.Mail.AlternativeView
、転送エンコーディングを明示的に設定することもできます。
これは私が現在使用しているサンプルです(文字エンコーディングのバグがあるため、本文テキストはユニコード文字列でなければなりません):
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);
}
}