首頁  >  文章  >  後端開發  >  C#拾遺之SmtpClient類

C#拾遺之SmtpClient類

黄舟
黄舟原創
2017-02-06 17:23:541929瀏覽

SmtpClient類別

允許應用程式使用簡單郵件傳輸協定 (SMTP) 發送電子郵件。

命名空間:system.net.mail

屬性

ClientCertificates:指定應使用哪個憑證來建立安全通訊端層(SSL)連線

Credentials:取得或設定用來對取得寄件者進行驗證的憑證

DeliveryFormat:取得或設定所使用的傳遞格式SmtpClient傳送電子郵件

DeliveryMethod:指定如何傳送的電子郵件將處理訊息

EnableSsl:指定是否SmtpClient使用安全通訊端層(SSL)加密的連線字層

Host:取得或設定一個或多個SMTP交易記錄所使用的主機的IP位址

PickupDirectoryLocation:取得或設定應用程式在其中儲存郵件以處理由本地SMTP伺服器的資料夾

Port:取得或設定用於SMTP事物的連接埠

ServicePoint:取得用於傳輸電子郵件的網路連線

TargetName:取得或設定服務提供者名稱(SPN)時使用擴充功能的保護用於進行驗證

Timeout:取得或設定一個值,指定Send呼叫的逾時時間

UseDefaultCredentials:取得或設定Boolean值,該值控制是否DefaultCredentials隨請求一起傳送

方法

Dispose()

伺服器並釋放目前實例所使用的SmtpClient類別的所有資源

Dispose(Boolean)

將一條QUIT訊息傳送到SMTP伺服器、正常結束TCP連線時,釋放目前實例所使用的SmtpClient類別的所有資源,並可根據需要釋放託管資源

Equals(Object)

確定指定的物件是否等於目前物件

Finalize()

在垃圾回收機制將回收某一物件前允許該物件嘗試釋放資源並執行其他清理作業

GetHashCode()

作為預設的雜湊函數

GetType()

取得目前實例的Type

MemberwiseClone()

創建目前相關的淺表符

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

當非同步電子郵件發送作業完成時發生

備註

下表中所示的類別用於建立使用可傳送的電子郵件 SmtpClcient。

Attachment類

表示文件附件,此類允許您將文件、流、或文字附加到電子郵件

MailAddress類

表示發件人和收件人的電子郵件地址

MailMessage類

表示發件人和收件人的電子郵件地址

MailMessage類

表示一封電子郵件

建構並發送一封電子郵件使用 SmtpClient, ,您必須指定以下資訊︰

用於發送電子郵件的SMTP 主機伺服器。

對於身份驗證,如果 SMTP 伺服器所需的憑證。

寄件者電子郵件地址。

電子郵件地址或收件者的地址。 

訊息內容。 

若要包含使用電子郵件附件,首先建立附件使用 Attachment 類,然後再新增至訊息透過 MailMessage.Attachments 屬性。 取決於使用收件者和附件的文件類型的電子郵件的讀取器的情況下,某些收件者不可能能夠讀取附件。 對於無法保持其原始格式顯示的附件的用戶端,您可以透過指定替代視圖 MailMessage.AlternateViews 屬性。

可以使用該應用程式或電腦設定檔來指定用於所有的預設主機、 連接埠和憑證值 SmtpClient 物件。

若要在等待傳送到 SMTP 伺服器的電子郵件時傳送電子郵件和區塊,使用一個同步 Send 方法。 若要允許程式的主執行緒繼續執行傳輸電子郵件時,使用非同步之一 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中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn