ASP.NET发送电子邮件

今天在网上搜集了一些使用.net发送邮件的资料,现在拿出来和大家分享一下!在.net中,.NET自带了发送邮件的功能,在VS2003中该功能已经封装进.NET Framework的System.Web.Mail的命名空间里了,在VS2005下更多的是利用System.Net.Mail命名空间了。

使用这个命名空间下的类,就可以很容易的构建一个发送邮件的程序,所需要的仅仅是在windows中架构好SMTP服务器。

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);

例子程序:

来看看下面这一个完整的例子,在这个例子中,使用System.Web.Mail命名空间,我们先创建一个MailMessage对象,然后设置部分属性,最后使用SmtpMail对象把它发送出去:
 protected void Page_Load(object sender, EventArgs e)
 {
 // CREATE A MAIL MESSAGE
 System.Web.Mail.MailMessage myEmail = new System.Web.Mail.MailMessage();

// SET MESSAGE PARAMETERS
 myEmail.From = "chenjun@webjx.com";
 myEmail.To = "admin@webjx.com";
 myEmail.Subject = "Product Availability Notice";
 myEmail.BodyFormat = System.Web.Mail.MailFormat.Html;
 myEmail.Body = "The sunglasses you expressed interest in are now in stock.";

//SEND THE MESSAGE
 System.Web.Mail.SmtpMail.Send(myEmail);

//UPDATE STATUS
 lblMailStatus.Text = "Mail successfully sent.";
 }

<html>
 < body>

<asp:Label id="lblMailStatus" runat="server" />

</body>
 < /html>

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命名空间

static string strHost = String.Empty;
 static string strAccount = String.Empty;
 static string strPwd = String.Empty;
 static string strFrom = String.Empty;

/// <summary>
 /// 发送邮件
 /// </summary>
 /// <param name="to">接收方邮件地址</param>
 /// <param name="title">邮件标题</param>
 /// <param name="content">邮件正文内容</param>
 public static bool sendmail(string to, string title, string content)
 {
 strHost = "smtp.webjx.com"; //STMP服务器地址
 strAccount = "abc@webjx.com"; //SMTP服务帐号
 strPwd = "password"; //SMTP服务密码
 strFrom = "chenjun@webjx.com"; //发送方邮件地址

SmtpClient _smtpClient = new SmtpClient();
 _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
 _smtpClient.Host = strHost; ;//指定SMTP服务器
 _smtpClient.Credentials = new System.Net.NetworkCredential(strAccount, strPwd);//用户名和密码

MailMessage _mailMessage = new MailMessage(strFrom, to);
 _mailMessage.Subject = title;//主题
 _mailMessage.Body = content;//内容
 _mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//正文编码
 _mailMessage.IsBodyHtml = true;//设置为HTML格式
 _mailMessage.Priority = MailPriority.High;//优先级

try
 {
 _smtpClient.Send(_mailMessage);
 return true;
 }
 catch
 {
 return false;
 }
 }

知识共享许可协议
《ASP.NET发送电子邮件》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
相邻依据:发表时间
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     154.91ms