ホームページ >バックエンド開発 >C#.Net チュートリアル >C# の補足 SmtpClient クラス
SmtpClient クラス
を使用すると、アプリケーションは SMTP (Simple Mail Transfer Protocol) を使用して電子メールを送信できます。
名前空間: system.net.mail
プロパティ
ClientCertificates: Secure Socket Layer (SSL) 接続の確立に使用する証明書を指定します
Credentials: 送信者の資格情報の認証に使用される証明書を取得または設定します
deliveryFormat : SmtpClient が電子メールを送信するために使用する配信形式を取得または設定します
deliveryMethod: 送信された電子メールがメッセージを処理する方法を指定します
EnableSsl: SmtpClient が Secure Sockets Layer (SSL) 暗号化接続を使用するかどうかを指定します
Host: IP アドレスを取得または設定します1 つ以上の SMTP トランザクションを記録するために使用されるホストの場所
PickupDirectoryLocation: アプリケーションがローカル SMTP サーバーで処理するメッセージを保存するフォルダーを取得または設定します
Port: SMTP トランザクションのポートに使用される場所を取得または設定します
ServicePoint: 電子メールの転送に使用されるネットワーク接続を取得します
TargetName: 認証に拡張保護を使用する場合のサービス プロバイダー名 (SPN) を取得または設定します
Timeout: 値を取得または設定し、送信呼び出しのタイムアウト期間を指定します
UseDefaultCredentials: リクエストで DefaultCredentials を送信するかどうかを制御するブール値を取得または設定します
Method
Dispose()
SMTP サーバーに QUIT メッセージを送信し、TCP 接続を正常に終了し、SmtpClient のすべてのリソースを解放します現在のインスタンスによって使用されているクラス
Dispose(Boolean)
SMTP サーバーに QUIT メッセージを送信し、TCP 接続を正常に終了し、現在のインスタンスによって使用されている SmtpClient クラスのすべてのリソースを解放し、管理対象リソースを解放する必要がある場合があります
Equals(Object)
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します
Finalize()
ガベージコレクションメカニズムがオブジェクトをリサイクルする前に、オブジェクトがリソースを解放し、他のクリーンアップ操作を実行できるようにします
GetHashCode( )
デフォルトのハッシュ関数として
GetType()
現在のインスタンスのTypeを取得
MemberwiseClone()
現在のオブジェクトの浅いコピーを作成
OnSendCompleted(AsyncCompletedEventArgs)
SendCompleteイベントを発生させる
Send(MailMessage)
指定されたメッセージを配信のために SMTP サーバーに送信します
Send(String, String, String, String)
指定された電子メールを配信のために SMTP サーバーに送信します。電子メールの送信者、受信者、件名、およびメッセージ本文は、指定された String オブジェクト
SendAsync(MailMessage, Object)
を使用して、指定された電子メールを配信のために SMTP サーバーに送信します。このメソッドは呼び出しスレッドをブロックせず、呼び出し元は操作の完了時に呼び出されるメソッドにオブジェクトを渡すことができます
SendAsync(String, String, String, String, Object)
SMTP サーバーに電子メールを送信します転送用。電子メールの送信者、受信者、件名、メッセージ本文は String オブジェクトを使用して指定されます。このメソッドは呼び出しスレッドをブロックせず、呼び出し元は操作の完了時に呼び出されるメソッドにオブジェクトを渡すことができます。
SendAsyncCancel()
電子メールを送信するための非同期操作をキャンセルします。
SendMailAsync(MailMessage)
指定されたメッセージを非同期操作として配信するために SMTP サーバーに送信します。
SendMailAsync(String, String, String, String)
指定されたメッセージを非同期操作として配信するために SMTP サーバーに送信します。 。電子メールの送信者、受信者、件名、メッセージ本文は String オブジェクトを使用して指定されます。
ToString()
現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
イベント
SendCompleted
非同期メール送信操作が完了すると発生します
Notes
次の表に示すクラスは、SmtpClient を使用して送信できるメールを構築するために使用されます。
Attachment クラス
は添付ファイルを表します。このクラスを使用すると、ファイル、ストリーム、またはテキストを電子メールに添付できます
MailAddress クラス
送信者と受信者の電子メール アドレスを表します
MailMessage クラス
は、電子メール
SmtpClient を使用して電子メールを作成して送信するには、次の情報を指定する必要があります:
電子メールの送信に使用される SMTP ホスト サーバー。
認証のために、SMTP サーバーが資格情報を必要とする場合。
送信者のメールアドレス。
メールアドレスまたは受信者のアドレス。
メッセージの内容。
電子メールの添付ファイルを含めるには、まず Attachment クラスを使用して添付ファイルを作成し、次に MailMessage.Attachments プロパティを介してそれをメッセージに追加します。使用する電子メール リーダーと添付ファイルのファイルの種類によっては、受信者によっては添付ファイルを読み取ることができない場合があります。元の形式で表示される添付ファイルを維持できないクライアントの場合は、MailMessage.AlternateViews プロパティを指定して代替ビューを指定できます。
アプリケーションまたはコンピューターの構成ファイルを使用して、すべての SmtpClient オブジェクトのデフォルトのホスト、ポート、および資格情報の値を指定できます。
電子メールが SMTP サーバーに転送されるのを待機している間に電子メールとチャンクを送信するには、同期送信メソッドを使用します。電子メールの送信中にプログラムのメイン スレッドが実行を継続できるようにするには、非同期 SendAsync メソッドのいずれかを使用します。 SendCompleted イベントは、SendAsync 操作が完了すると発生します。このイベントを受信するには、SendCompletedEventHandler デリゲートを SendCompleted に追加する必要があります。 SendCompletedEventHandler デリゲートが通知の SendCompleted イベントを処理するために参照する必要があるコールバック メソッド。非同期メール送信をキャンセルするには、SendAsyncCancel メソッドを使用します。
メール送信インターフェイスのメインコード:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;using System.Windows.Forms; using System.IO;using System.Net;using System.Net.Mail; namespace SendEmail{ public partial class Form3 : Form{ string severaddress;string mailuser;string userpwd;public Form3(){ InitializeComponent(); } private void button1_Click(object sender, EventArgs e){ Form6 form = new Form6(); form.SendParaHandler +=new Form6.SendPara(reload); //事件的挂接form.Show(); } public void reload(){ StreamReader read = new StreamReader(@"fajianren.asdf"); severaddress = read.ReadLine(); mailuser = read.ReadLine(); userpwd = read.ReadLine(); read.Close();} private void Form3_Load(object sender, EventArgs e){ reload();} public bool sendmail(string mailfrom,string mailto,string mailsubject,string mailbody){ MailAddress from = new MailAddress(mailfrom); MailMessage message = new MailMessage(); try{message.From = from; message.To.Add(mailto); message.Subject = mailsubject; message.Body = mailbody; message.Priority = MailPriority.Normal; SmtpClient smtp = new SmtpClient(); smtp.Host = severaddress; smtp.UseDefaultCredentials = false; smtp.EnableSsl = true; smtp.Credentials = new NetworkCredential(mailuser,userpwd); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Send(message); } catch(Exception e){ return false; } return true; } private void button2_Click(object sender, EventArgs e){ string mailfrom = mailuser; string mailto = textBox1.Text; string mailsubject = textBox2.Text; string mailbody = textBox3.Text; if (sendmail(mailfrom, mailto, mailsubject, mailbody)){ MessageBox.Show("邮件发送成功"); } else{ MessageBox.Show("邮件发送失败"); } } } }
送信者情報インターフェイスを設定するためのメインコード:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace SendEmail { public partial class Form 6 : Form {public Form6(){InitializeComponent(); } private void button1_Click(object sender, EventArgs e){ Write(); } //加载信息 private void Form6_Load(object sender, EventArgs e){ StreamReader read = new StreamReader(@"fajianren.asdf"); textBox1.Text = read.ReadLine(); textBox2.Text = read.ReadLine(); textBox3.Text = read.ReadLine(); read.Close(); } //写入信息 public void Write(){ StreamWriter write = new StreamWriter(@"fajianren.asdf"); write.WriteLine(textBox1.Text); write.WriteLine(textBox2.Text); write.WriteLine(textBox3.Text); write.Close(); } public delegate void SendPara(); //定义委托 public event SendPara SendParaHandler; //定义事件 private void button2_Click(object sender, EventArgs e){ SendParaHandler.Invoke(); Write(); this.Close(); } } }
上記は、C# の SmtpClient クラスの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトを参照してください。 (www.php.cn)!