正しくエンコードされていない電子メールを受信しているクライアントがあります。System.Net.Mail クラスを使用し、本文のエンコーディングを UTF-8 に設定しています。私は少し読んだことがありますが、メールの本文をデータをUTF-8バイト配列にエンコードする文字列として設定する必要があるため、変換する必要があるため、UTF-である文字列に戻す必要があるため、実際には何もしません。 16. 正しい?
私が送るとき: Il s'agit d'un message de test pour determiner comment le système va gérer les messages envoyés à l'aide des caractères français. メルシー エ ボンヌ ジュルネ。
彼らは次 のように見ています。
Merci et bonne journée.*
電子メールでさまざまなエンコーディングを試しましたが、電子メール クライアントがこれを正しく表示するため、クライアントが電子メールを正しくデコードしていないのではないかと本当に疑っています。何か不足していますか?他にできることはありますか?
以下のコード
SmtpMailService.SendMail(string.Empty, toAddress, "emailaddress@emai.com", "", subject, sb.ToString(), false);
public static bool SendMail(string fromAddress, string toAddress, string ccAddress, string bccAddress, string subject, string body, bool isHtmlBody)
{
if (String.IsNullOrEmpty(toAddress)) return false;
var toMailAddress = new MailAddress(toAddress);
var fromMailAddress = new MailAddress(String.IsNullOrEmpty(fromAddress) ? DefaultFromAddress : fromAddress);
var mailMessage = new MailMessage(fromMailAddress, toMailAddress);
if (!String.IsNullOrEmpty(ccAddress))
{
mailMessage.CC.Add(new MailAddress(ccAddress));
}
if (!String.IsNullOrEmpty(bccAddress))
{
mailMessage.Bcc.Add(new MailAddress(bccAddress));
}
if (!string.IsNullOrEmpty(fromAddress)) mailMessage.Headers.Add("Reply-To", fromAddress);
mailMessage.Subject = subject;
mailMessage.IsBodyHtml = isHtmlBody;
mailMessage.Body = body;
mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
var enableSslCfg = ConfigurationManager.AppSettings["Email.Ssl"];
var enableSsl = string.IsNullOrEmpty(enableSslCfg) || bool.Parse(enableSslCfg);
var client = new SmtpClient {EnableSsl = enableSsl};
client.Send(mailMessage);
return true;
}