昨天在寫用戶注冊的時候,需要寫用戶填寫用戶郵件地址,但又得驗證郵件地址的有效性,解決這種問題的方法就是根據用戶注冊的郵箱,有郵箱中發送一個注冊碼,然後根據注冊碼來完成下一步的注冊。在網上搜索了一下方法,只有.Net1.1的方法,在此基礎上修改了一下。現在提供兩種版本的示例
1).Net1.1
System.Web.Mail命名空間:
這個命名控件下包含了以下的對象和三個屬性:
包含的對象:
MailAttachment:與郵件附件有關的對象類
MailMessage :郵件主體
SmtpMail :負責發送郵件的SMTP協議。
屬性列表:
MailEncoding :郵件的編碼(Base64,UUEncode)
MailFormat :郵件的格式(Html超文本格式,Text純文本格式)
MailPriority :郵件優先級(High, Medium, Low)
構建MailMessage對象:
MailMessage對象是郵件的承載主體,通常可以先構建好MailMessage對象,然後設置它的屬性的方式來構建郵件程序,下面列出了的是一些常用的屬性:
Attachments :郵件附件
Bcc :暗送地址
Body :郵件主體
BodyFormat :郵件格式(Html,text)
Cc :抄送地址
From :發信人地址
Priority :郵件優先級(High, Medium,Low)
Subject :郵件主題
To :接收人地址
UrlContentBase :在Html格式郵件中的URL編碼方式
UrlContentLocation:郵件信息的優先級(High, Medium,Low)
使用SMTPMail發送郵件
構建好MailMessage對象之後,還需要使用另外一個對象-SMTPMail-來發送郵件,SMTPMAIL有一個很重要的方法:Send,該方法有兩個不同用法,其中一個可以僅僅發送整個的MailMessage對象:
SmtpMail.Send(myEmailObject);
另外一個允許你分別指定發送者,收郵件地址,郵件主題,郵件主題,然後再發送出去:
SmtpMail.Send(strFrom, strTo, strSubject, strBody);
示例:
void SendMail()
{
System.Web.Mail.MailMessage myEmail = new System.Web.Mail.MailMessage();
// SET MESSAGE PARAMETERS
myEmail.From = "[email protected]";
myEmail.To = "[email protected]";
myEmail.Subject = "咨詢培訓事宜";
myEmail.BodyFormat = System.Web.Mail.MailFormat.Html;
myEmail.Body = "學習.Net,請問你們的實訓課程都何時開課?.";
//SEND THE MESSAGE
System.Web.Mail.SmtpMail.Send(myEmail);
}
http://www.devdao.com
2).Net2.0
System.Net.Mail命名空間:
這個命名控件下包含了以下主要對象和主要屬性:
包含的對象:
MailAddress:表示電子郵件發件人或收件人的地址
Attachment :表示電子郵件的附件
MailAddressCollection :存儲與電子郵件關聯的電子郵件地址
MailMessage :表示可以使用 SmtpClIEnt 類發送的電子郵件
SmtpClIEnt :允許應用程序使用簡單郵件傳輸協議 (SMTP) 來發送電子郵件。
屬性列表:
DeliveryNotificationOptions:描述電子郵件的傳送通知選項
MailPriority :指定 MailMessage 的優先級
SmtpAccess :指定允許的簡單郵件傳輸協議 (SMTP) 服務器訪問級別
SmtpDeliveryMethod:指定如何發送電子郵件
SmtpStatusCode:指定使用 SmtpClIEnt 類發送電子郵件的結果
構建MailMessage對象:
MailMessage對象是郵件的承載主體,通常可以先構建好MailMessage對象,然後設置它的屬性的方式來構建郵件程序,下面列出了的是一些常用的屬性:
Attachments :郵件附件
Bcc :暗送地址
Body :郵件主體
Cc :抄送地址
From :發信人地址
Subject :郵件主題
To :接收人地址
使用SmtpClIEnt發送郵件
構建好MailMessage對象之後,還需要使用另外一個對象-SmtpClient-來發送郵件,SmtpClIEnt有一個很重要的方法Send,可以發送整個的MailMessage對象:
SmtpClIEnt.Send(MailMessage);
在這個例子中,使用System.Net.Mail命名空間
/// <summary>
/// 自動發送郵件
/// </summary>
/// <param name="strMail">郵件接受地址</param>
/// <param name="strRegistCode">注冊碼</param>
/// <returns></returns>
bool SendMail(string strMail, string strRegistCode)
{
string strHost = "mail.cdce.cn"; //STMP服務器地址
string strAccount = "jackguo"; //SMTP服務帳號
string strPwd = "111111"; //SMTP服務密碼
SmtpClient _smtpClient = new SmtpClIEnt();
_smtpClIEnt.DeliveryMethod = SmtpDeliveryMethod.Network;//指定電子郵件發送方式
_smtpClIEnt.Host = strHost; ;//指定SMTP服務器
_smtpClIEnt.Credentials = new System.Net.NetworkCredential(strAccount, strPwd);//用戶名和密碼
string content = "你的驗證碼是:" + strRegistCode + ",請獲取後立即完成注冊,關聯基本信息。";
content += "<br><br>該郵件為自動發送,請不要回復!";
MailAddress sender = new MailAddress("[email protected]", "統考信息");
MailAddress receriver = new MailAddress(strMail);
MailMessage mail = new MailMessage(sender, receriver);
MailAddressCollection ToMail = new MailAddressCollection();
mail.Subject = "統考信息系統驗證碼";//主題
mail.Body = content;//內容
mail.BodyEncoding = System.Text.Encoding.Default;//正文編碼
mail.IsBodyHtml = true ;
mail.Priority = MailPriority.High;//
優先級
try
{
_smtpClIEnt.Send(mail);
return true;
}
catch (Exception e)
{
return false;
}
}