發送電子郵件是許多需要用戶注冊的網站的通用功能通過正則表達式我們可以過濾掉不符合電子郵件格式的輸入但是仍沒有辦法確保用戶填寫的電子郵件地址一定是他本人真實有效的電子郵件地址通常驗證電子郵件真實有效的辦法是當用戶填寫的注冊資料經過網站初步格式驗證之後用戶並不能利用此帳號登錄系統會向用戶注冊時填寫的電子郵件地址發送一封電子郵件郵件中給出一個鏈接只有當用戶點擊了這個鏈接之後才能登錄到網站如果用戶填寫的電子郵件地址不是真實有效的或者不是他本人的就不會收到這封電子郵件這樣仍然不能登錄這一步一般稱之為電子郵件激活
在net類庫中有兩種發送電子郵件的方式一種是在net以下版本中的做法一種是net以上版本的做法下面分別介紹這兩種辦法
一net及net中的做法(利用CDOSYS消息組件發送電子郵件)
代碼如下
using System;
using SystemWebMail;
/// <summary>
/// 說明在net以下版本中發送電子郵件的方法示例
/// 用到的類主要位於SystemWebMail命名空間下
/// 作者周公
/// 日期
/// 首發地址http://blogcsdnnet/zhoufoxcn
/// </summary>
public class SendMail
{
public SendMail()
{
}
/// <summary>
/// 發送郵件
/// </summary>
/// <param name=to>收件人郵件地址</param>
/// <param name=from>發件人郵件地址</param>
/// <param name=subject>郵件主題</param>
/// <param name=body>郵件內容</param>
/// <param name=username>登錄smtp主機時用到的用戶名注意是郵件地址@以前的部分</param>
/// <param name=password>登錄smtp主機時用到的用戶密碼</param>
/// <param name=smtpHost>發送郵件用到的smtp主機</param>
public void Send(string to string from string subject string body string username string password string smtpHost)
{
MailMessage mail = new MailMessage();
mailTo = to;//設置收件人地址
mailFrom = from;//設置發件人地址
mailSubject = subject;//設置郵件主題
mailBodyFormat = MailFormatHtml;//設置郵件以HTML格式發送
mailBody = body;//設置郵件內容
//設置發送郵件時需要身份驗證
mailFieldsAdd(http://schemasmicrosoftcom/cdo/configuration/smtpauthenticate );
//設置登錄郵件主機時的用戶名注意如果發件人地址是abc@defcom則用戶名是abc而不是abc@defcom
mailFieldsAdd(http://schemasmicrosoftcom/cdo/configuration/sendusername userName);
//設置登錄SMTP主機的用戶密碼
mailFieldsAdd(http://schemasmicrosoftcom/cdo/configuration/sendpassword password);
//設置發送郵件的SMTP主機
SmtpMailSmtpServer = smtpHost;
//發送郵件如果發送不成功會拋出異常
SmtpMailSend(mail);
}
}
上面的方法底層用到了CDOSYS組件用到的類主要是SystemWebMailSmtpServer和SystemWebMailMailMessage這種方法已經被微軟不贊成使用了取而代之的是net中的新增的類和方法
[] []
From:http://tw.wingwit.com/Article/program/net/201311/14954.html