C#でのメール送信(ASP.NETを例に)

6204 ワード

この文書では、簡単なメールの送信方法について説明します.
メールを送信するには3つのステップが必要です.
一、webを配置する.configのメールサービス属性
二、プログラムにおいて構成されたサービス情報を動的に読み取る
三、メール送信を実現するコードの作成
 
Webを開きます.configはconfigurationノードに以下のコード(ここでは163メールボックスを例に)、hostはメールボックスサーバのアドレス、portは25(いずれもこれ)、userNameはメールを送信するアカウント、
passwordはアカウントのパスワードです.
 <system.net>
<mailSettings>
<smtp>
<network host="smtp.163.com" port="25" userName="[email protected]" password="wangyafei515390" />
</smtp>
</mailSettings>
</system.net>

その後、コードにwebを読み出す.コンフィグ構成の情報は、他のクラスライブラリでコンフィギュレーションマネージャを介してWebにアクセスできることが分かる.config、これはwebで無効で、幸いにもあります
System.Web.Configuration.WebConfigurationManager.
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/web.config");

OpenWebConfiguration(「web.configの仮想パス」(win 7でこのコードが間違っていることに気づく子供靴もありますが、エラーは/ディレクトリを見つけることができません.それはvsが管理者を使用してログインしていないため、vsを終了します.
右クリックvsは管理者によって開くことができる)、この方法はコンフィギュレーションのタイプのオブジェクトを返し、このオブジェクトを使用してwebにアクセスすることができる.configのノード情報.
public sealed class NetSectionGroup:コンフィギュレーション・セクション・グループです.このクラスでは、プロファイルに格納されている情報にプログラム的にアクセスできます.
このクラスとネットワークはドキュメントのsystemを設定します.Net要素(ネットワーク設定)対応;
GetSectionGroupは、指定するプロファイルからsystemを取得する.Netの構成;
WebConfigurationManager.OpenWebConfigurationアプリケーションのルートディレクトリの下のwebを開きます.configはSystemを生成する.Configuration.コンフィギュレーションオブジェクトインスタンス;
ここでのコンフィギュレーションAddressはwebで得るコンフィギュレーションオブジェクトである.
             Configuration ConfigurationAddress=System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/web.config");
              //SmtpSection   System.Net        SMTP  。
              System.Net.Configuration.SmtpSection cfg =
                                            System.Net.Configuration.NetSectionGroup.GetSectionGroup(ConfigurationAddress).MailSettings.Smtp;
//MailMessage SmtpClient
//SMTP 。
MailMessage msg = new MailMessage();
msg.From = new MailAddress(FromAddress); //
msg.To.Add(ToAddress); //
msg.Subject = SubJect; //
msg.Body = Content; //
msg.IsBodyHtml = true;
msg.BodyEncoding = System.Text.Encoding.UTF8;//

//SmtpClient SMTP
//Attachment, MailAddress ,MailMessage
SmtpClient smtp = new SmtpClient(cfg.Network.Host);
// SmtpClient (SSL) 。
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = false;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

                //            (   、  、NTLM   Kerberos     )    
NetworkCredential Credential = new NetworkCredential();
Credential.UserName = cfg.Network.UserName;// smtp UserName
Credential.Password = cfg.Network.Password;// smtp Password
smtp.Credentials = Credential;
smtp.Send(msg);// Send , MailMessage

簡単なメール送信で完了しました.