在.Net 1.1裡面,如何用程序控制來發送電子郵件。比如,網站用戶注冊成功後,給注冊用戶自動發一封郵件,提示用戶的注冊信息。再則,有時候需要每天定時的把一個報表發給固定的幾個人。綜合起來需要解決如下的幾個問題:
1、SMTP服務器身份認證。
2、收件人為多人時,怎麼發送。
3、發送郵件附件。
實現程序如下:
為了使用System.Web.Mail,在名字空間裡引用:
using System.Web.Mail;
定義一個發送郵件的過程
/**//// <summary>
/// 發送電子郵件郵件
/// </summary>
/// <param name="to">接收電子郵件地址</param>
/// <param name="subject">郵件主題</param>
/// <param name="body">郵件正文</param>
/// <param name="mailatta">附件</param>
public void SendMail(string to,string subject,string body,MailAttachment mailatta)
{
MailMessage m_Mail = new MailMessage();
//定義SMTP服務器的名稱
SmtpMail.SmtpServer = "mail.13590.com";
//定義SMTP郵件服務器需要身份認證
m_Mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//認證的用戶名
m_Mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "username");
//認證密碼
m_Mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword","passWord");
//定義郵件的發送地址
m_Mail.From="\"秋雨\"<[email protected]>";
//定義郵件的接收地址
m_Mail.To = to.ToString();
//定義郵件的暗送地址
m_Mail.Bcc="[email protected]";
//定義郵件的抄送地址
m_Mail.Cc = "[email protected]";
&nbs
p; //定義郵件的主題
m_Mail.Subject = subject;
//定義郵件的主體
m_Mail.Body = body;
//'郵件以 Html的格式發送
m_Mail.BodyFormat = MailFormat.Text;
//定義郵件的有限級,在此設定為高
m_Mail.Priority = MailPriority.High;
// 給發送的郵件附加上一個附件
if (mailatta!=null)
{
m_Mail.Attachments.Add(mailatta);
}
try
{
SmtpMail.Send(m_Mail);
}
catch
{
//郵件發送有錯
Memo1.Text=Memo1.Text + subject;
}
}
注意郵件的地址
"\"秋雨\"<[email protected]>";
前面是顯示的名稱,後面是真實的Email地址 ,如果收件人地址為多人,以“;” 隔開,例如:
"秋雨"<[email protected]>;"管理員"<[email protected]> 注意使用轉義字符。
我們使用程序來調用
private void button_Click(object sender, System.EventArgs e)
{
string MailAddr="\"秋雨\"<;\">[email protected]>;\"管理員\"<[email protected]> ";
string Subject="請查收統計報表";
string MailBody="Test";
&
nbsp; string PathMailAtta=@"C:\統計報表.xls";
MailAttachment mailatta;
try
{
mailatta= new MailAttachment(PathMailAtta);
}
catch
{
Memo1.Text=Memo1.Text+PathMailAtta+"有異常,檢查是否打開";
return;
}
SendGroupMail(MailAddr,Subject,MailBody,mailatta);
}
以上程序在VS.Net2003,Windows 2003(SP1)平台下測試通過。