当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .NET发送邮件

ASP.NET
二级域名Cookie问题的解决方法
如何为asp.net网站项目添加子项目
asp.net用url重写URLReWriter实现任意二级域名
asp.net 序列化and反序列化演示
asp.net Timer的使用方法
AjaxControlToolKit DropDownExtender(下拉扩展控件)使用方法
AjaxControlToolKit CalendarExtender(日历扩展控件)的使用方法
让GridView只显示特定用户的数据的方法
让GridView只更新某些特定的数据的方法
ajaxControlToolkit中CascadingDropDown的用法说明
axp.net ScriptManager的简单用法
把程序集安装到全局程序集缓存中的步骤
引用全局程序集缓存内的程序集的方法
asp.net COOKIES需要注意的一点
asp.net UrlReWriter使用经验小结
页面导出为Excel的时间格式的问题
asp.net cookie清除的代码
Asp.net XMLHTTP封装类(GET,Post发送和接收数据)
ASP.NET XmlHttp跨域访问实现代码
Asp.NET 随机码生成基类(随机字母,随机数字,随机字母+数字)

ASP.NET 中的 .NET发送邮件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 140 ::
收藏到网摘: n/a

   今天在网上搜集了一些使用.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 = "[email protected]";
    myEmail.To = "[email protected]";
    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.ruanchen.com";   //STMP服务器地址
            strAccount = "[email protected]";       //SMTP服务帐号
            strPwd = "password";       //SMTP服务密码
            strFrom = "[email protected]";  //发送方邮件地址

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