.NET での電子メールの送信に関する記事「asp.net ページからの電子メールの送信」を見たところ、System.Web.Mail 名前空間の下のクラスがまだ使用されていることがわかりました。 .NET 1.1 では、この名前空間のほとんどのクラスが電子メールの送信に使用されることはよく知られていますが、SmtpMail の Send 静的メソッドを使用すると簡単に電子メールを送信できますが、このクラスは Windows 2000 以降の操作を呼び出すため、システムの CDO コンポーネントが必要になります。エラーが何であっても、CDO.Message オブジェクトにアクセスできないことや、その他の CDO.Message 例外に関する詳細な情報を取得できないため、デバッグに非常に不便です。特に Smtp 検証が必要な場合は、MailMessage に 3 つのメール ヘッダー定義を追加する必要があり、比較的面倒です。さて、.NET 2.0 では、電子メールを送信する機能が非常によく設計されており、System.Net.Mail 空間のクラスを使用することで、さまざまな電子メールを非常に簡単に送信できます。ただし、元のバージョンとの互換性を保つために、System.Web.Mail スペースは削除されておらず、このスペース内のクラスも、.NET 2.0 クラスを使用してコンパイルすると、Obsolete のマークが付けられています。代わりに System.Web.Mail スペース クラスを使用するように求められます。
ここで、電子メールを送信するために何をする必要があるかを見てみましょう。ここでは、.NET 2.0 の電子メール送信に関する記事「.NET 2.0 System.Net.Mail 名前空間に基づく電子メール送信コンポーネント」を見つけました。メールの送受信。この記事では送信方法のみを説明しますが、実際には設定ファイルを使用しないと思います。また、SmtpClient の Stmp アカウント情報を自分で指定する必要もあります。実際に必要なのは、web.config (または app.config) を通じて使用する Smtp アカウントを構成することだけです:
<configuration>
<system.net>
<mailSettings>
< smtp from = = [email protected] ">
<ネットワークホスト = "smtp.tom.com" パスワード = " " port "25" userName = "hjf1223" defaultCredentials = "false"/>
</smtp>
</mailSettings >
< /system.net>
</configuration>
.NET 2.0 の構成システムは非常に強力であるため、情報を参照せずに上記の構成を非常に簡単に記述することができます。上記のように、from 属性はメールの送信元のメールボックス、host は SMTP サーバーのアドレスです。defaultCredentials については注意が必要です。 SMTP サーバーによる送信ユーザーの検証が必要ない場合は false に設定し、そうでない場合は true に設定します。そのため、通常は true に設定してユーザー名とパスワードを使用します。正規のユーザーであるかどうかを確認するように構成しました。
設定ファイルを記述したら、次のステップはプログラムを呼び出す方法です。次のように書いてメールを送信すると、非常に奇妙に感じられるでしょう。はい、とても簡単です。見てみましょう:
MailMessage m_message = new MailMessage();
m_message.From =MailAddress(" [email protected] ");
"));
m_message.Subject = ".NET 2.0 を使用してメールを送信する";
m_message.Body = "非常に単純";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
余分なものは 1 つもありませんコード行、つまり MailMessage オブジェクトを構築し、次に SmtpClient を構築し、それを使用して電子メールを直接送信します。元の静的メソッドと比較すると、コードは増えません。ここにいる友人の中には尋ねたい人もいるかもしれません? SMTP アカウント情報はどこから取得されますか?実際、この時点で、m_smtpClient オブジェクトの属性は、以前の構成ファイルで構成された値になります。 SmtpClient を再構成するときに、system.net 構成セクションの値が自動的に読み取られ、ユーザーが smtp 情報を構成している場合、その値が現在の SmtpClient オブジェクトに自動的に転送され、電子メールの送信に使用されます。 .NET 2.0 で電子メールを送信するのは非常に手間がかかりますが、非常に安定しています。
概要: .NET 2.0 では、System.Web.Mail を使用して電子メールを送信するのは非常に簡単で、エラーが発生したときにより詳細な例外情報を取得できますが、問題によって混乱する場合があります。最も一般的に発生するのは、コンピューターにウイルス対策ファイアウォールがインストールされている場合、電子メールを送信できない場合がありますが、プロンプト メッセージによって問題を診断できなくなります。その主な影響は、電子メールが拒否されることです。この状況は、ファイアウォールがポート 25 の使用を拒否し、SMTP サーバーと正常に通信できなくなるために発生します。解決策はネット上にたくさんあると思います。もう 1 つの特別な注意点は、企業はプロキシを介してインターネットにアクセスするため、電子メールを送信するマシンが外部ネットワークに直接接続されている必要があることです。 上記のコードでもう 1 つ注意すべき点があります。MailMessage オブジェクトの From 値は、設定ファイルの From 値と同じでなければなりません。ここで設定する必要はないようです。
さて、これがコードです。お役に立てば幸いですhttp://hjf1223.cnblogs.com/archive/2006/07/06/444716.html