本文主要是以.NET下怎麼實現發送E-Mail作為示例分析講解,故在示例程序裡有許多涉及到.Net.Mail之外的內容都沒做.最近比較忙沒太多的時候去完善其功能,有興趣的朋友可以下載源碼去完善下.這不是一個什麼大的軟件,也不是什麼很特別的東西,我寫這個文章的目的是讓大家一起來學習.NET下發送E-mail的實現,希望這篇文章可以幫助到還沒搞清楚怎麼實現發送郵件的朋友,對於已經會的或是這方面的牛人的前輩們看了本文請留下寶貴的建議.
本程序是采用.NET框架下的Mail類來完成郵件的發送操作的,裡面收件人mail地址我采用的xml來存儲,這涉及到了xml的讀寫操作,在添加附件的時候涉及到對話框的應用.分析於此,首先我門需要引用相宜的名稱空間,即:
1using System.Net.Mail; 2using System.Xml; 3using System.IO;
一. 首先來看看最終的運行效果(可以從界面層上理解到程序的結構)

二. 下面來看看實現發送e-mail功能的代碼,代碼如下所示:
private void btnSend_Click(object sender, EventArgs e)
{
System.Net.Mail.SmtpClient client = new SmtpClient();
client.Host = this.tbSmtpServer.Text.ToString(); //發送郵件所使用的Smtp事務的主機名稱或IP地址
client.UseDefaultCredentials = false;
//NetworkCredential(發送者郵件地址,發送者郵箱密碼)
client.Credentials = new System.Net.NetworkCredential(this.tbSender.Text.ToString(),
this.tbSenderPassWord.Text.ToString());
client.DeliveryMethod = SmtpDeliveryMethod.Network; //電子郵件通過網絡發送到Smtp服務器
//MailMessage(發件人地址,收件人地址)
MailMessage message = new MailMessage(this.tbSender.Text.ToString(),
this.lbQuester.SelectedItem.ToString());
message.Subject = this.tbTitle.Text.ToString(); //郵件主題
message.Body = this.tbContext.Text.ToString(); //郵件內容
message.BodyEncoding = System.Text.Encoding.UTF8; //郵件正文的編碼方式
message.IsBodyHtml = true;
//以下為附件處理過程
string attahmentName=this.tbAtrrac.Text.Trim().ToString();
if (!string.Equals(attahmentName, null) && !string.Equals(attahmentName, ""))
{
Attachment data = new Attachment(attahmentName, System.Net.Mime.MediaTypeNames.Application.Octet);
message.Attachments.Add(data);
}
//發送郵件
try
{
client.Send(message);
MessageBox.Show("E-Mail sucessfully send to:" + this.lbQuester.SelectedItem.ToString());
}
catch (Exception ex)
{
MessageBox.Show("E-Mail send fail!" + ex.ToString());
}
}