在.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(" //認證的用戶名
m_Mail.Fields.Add(" //認證密碼
m_Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassWord","password");
//定義郵件的發送地址
m_Mail.From="/"秋雨/"<username@13590.com>";
//定義郵件的接收地址
m_Mail.To = to.ToString();
//定義郵件的暗送地址
m_Mail.Bcc="bcc@13590.com";
//定義郵件的抄送地址
m_Mail.Cc = "cc@13590.com";
//定義郵件的主題
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;
}
}
注意郵件的地址
"/"秋雨/"<username@13590.com>";
前面是顯示的名稱,后面是真實的Email地址 ,如果收件人地址為多人,以“;” 隔開,例如:
"秋雨"<username@13590.com>;"管理員"<sys@13590.com> 注意使用轉義字符。
我們使用程序來調用
private void button_Click(object sender, System.EventArgs e)
{
string MailAddr="/"秋雨/"<username@13590.com>;/"管理員/"<sys@13590.com> ";
string Subject="請查收統計報表";
string MailBody="Test";
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)平臺下測試通過。
新聞熱點
疑難解答