統合されたSystem.Net.Mailを使用してメールを送信しています
ほんとに好き
MailAddress abs = new System.Net.Mail.MailAddress("my@email.com", "Web Präsenz", System.Text.Encoding.UTF8);
電子メールがクライアントに届くと、「ä」文字が欠落しています。いくつかのエンコーディングの問題のようです。
誰かがそれを修正する方法を知っていますか?
統合されたSystem.Net.Mailを使用してメールを送信しています
ほんとに好き
MailAddress abs = new System.Net.Mail.MailAddress("my@email.com", "Web Präsenz", System.Text.Encoding.UTF8);
電子メールがクライアントに届くと、「ä」文字が欠落しています。いくつかのエンコーディングの問題のようです。
誰かがそれを修正する方法を知っていますか?
これらも追加してみてください:
message.BodyEncoding = System.Text.Encoding.UTF8;
message.SubjectEncoding = System.Text.Encoding.UTF8;
また、メール サーバーの問題である可能性もあります。いろいろなメールアドレスに送信してみてください。POP3、Webメールなど
おそらくすでにここを見たことがあるでしょうが、ここにいくつかの詳細情報があります:
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx
同様の問題のデバッグに 5 時間を費やしましたが、見つけた解決策がこの問題の解決策になる可能性もあります。誰も他の解決策を投稿していないので、私は自分の発見に貢献します.
.NET2.0 メール API には微妙なバグがあり、メール ヘッダーの受信者名のエンコードが失敗するようです。これは、メッセージが送信される前に MailMessage インスタンスの To プロパティ (およびその他のプロパティ) がアクセスされた場合に発生します。
次の例では、To ヘッダーがエンコードされずに送信されるため、少なくとも私のメール クライアントでは名前が「??????...」として表示されます。
MailMessage message = new MailMessage();
message.To.Add(new MailAddress("address@example.com", "ÆØÅ Unicode Name"));
message.Subject = "Subject";
message.Body = "Body";
Console.WriteLine(message.To[0]);
smtpClient.Send(message);
ただし、WriteLine を送信行の下に移動すると、To ヘッダーが正しくエンコードされます。
MailMessage message = new MailMessage();
message.To.Add(new MailAddress("address@example.com", "ÆØÅ Unicode Name"));
message.Subject = "Subject";
message.Body = "Body";
smtpClient.Send(message);
Console.WriteLine(message.To[0]);
このバグは、Cc プロパティと Bcc プロパティでも発生すると思われますので、注意してください。誰でもこれが役立つことを願っています。