4

統合されたSystem.Net.Mailを使用してメールを送信しています

ほんとに好き

MailAddress abs = new System.Net.Mail.MailAddress("my@email.com", "Web Präsenz", System.Text.Encoding.UTF8);

電子メールがクライアントに届くと、「ä」文字が欠落しています。いくつかのエンコーディングの問題のようです。

誰かがそれを修正する方法を知っていますか?

4

2 に答える 2

4

これらも追加してみてください:

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

于 2009-01-27T15:29:03.270 に答える
2

同様の問題のデバッグに 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 プロパティでも発生すると思われますので、注意してください。誰でもこれが役立つことを願っています。

于 2009-03-13T16:28:28.340 に答える