新しくリリースされたバージョンの ASP.NET 2.0 では、Microsoft は System.Web.Mail 名前空間の使用を推奨しなくなり、新しい System.Net.Mail 名前空間に置き換えます。この新しいライブラリには多くの新機能が導入されていますが、電子メールの送信方法にいくつかの小さなバグがあります。
1. メールの送信
これらの小さなエラーについて詳しく説明する前に、サンプル コードを見て
みましょう (ファイルの先頭に「using System.Net.Mail」を追加しているものとします)。
msg.From = new MailAddress(" [email protected] ", "人の名前");
msg.To.Add(new MailAddress(" [email protected] ", "受信者の名前");
msg.To.Add(new MailAddress(" [email protected] ", "宛先 2 の名前");
msg.Subject = "メッセージの件名";
msg.Body = "メール本文の内容";
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
SmtpClient c = new SmtpClient("mailserver.domain.com");
c.Send(msg);
上記のコードは、メッセージの指定におけるいくつかの小さな変更を除いて、以前のバージョンの実装とあまり変わりません。自分でアドレスを構築する代わりに、システムにアドレスを構築させることができます。電子メール アドレスと名前を指定すると、メッセージに次の内容が自動的に表示されます。
"人の名前" < [email protected] >
これは電子メール アドレスの「正しい」形式です。もちろん、上記とまったく同じ方法で、複数のアドレスを To、CC、BCC セットに追加することもできます。この方法でプログラムで大量のメッセージを送信することは、各メッセージを個別に送信するよりもはるかに簡単です。複数のアドレスを BCC 属性に追加するだけで、大量のメール送信を実現できます。
2. 既存の問題
次に、存在する小さなエラーを分析してみましょう。
前述したように、この新しい名前空間にはいくつかの小さなバグがあります。 1 つ目は、電子メールを送信するときに、ヘッダー情報がすべて小文字で追加されることです。ただし、SMTP 電子メールの RFC 仕様では、電子メール ヘッダーの大文字をどのように使用するかについては規定されていません。ただし、多くのスパム フィルタ プログラムは、ヘッダーが適切に大文字にされていない電子メール メッセージを制限しています。
もう 1 つのエラーは優先度の設定に関係しています。優先度の設定を使用すると、ユーザーはメール クライアントでメッセージの重要性を指定できます。電子メール ヘッダーの形式 (すべて小文字に変換) が原因で、私の電子メール プログラム (Eudora) は対応する優先度フラグを認識しないため、この電子メールを重要として明確にマークしません。これは些細なことのように思えるかもしれませんが、System.Web.Mail の新しいバージョンに切り替える明確な理由はないようです。
したがって、この問題を引き続き調査し、適切な解決策が見つからない場合は、前の System.Web.Mail に戻って、上記の警告の問題をより効果的に解決するつもりです。