C# の補足 SmtpClient クラス

黄舟
リリース: 2017-02-06 17:23:54
オリジナル
1929 人が閲覧しました

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)!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート