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

ASP.NET
为T-SQL添加intellisense功能
SQL Server 2005安装过程中出现错误的解决办法
SQL Server 2005 RTM 安装错误 :The SQL Server System Configuration Checker cannot be executed due to
有关于JSON的一些资料
不能忽略c#中的using和as操作符的用处
JavaScript系列之―同步还是异步?
获取远程网页的内容之一(downmoon原创)
获取远程网页的内容之二(downmoon原创)
ASP.Net中防止刷新自动触发事件的解决方案
asp.net下用js实现鼠标移至小图,自动显示相应大图
Asp.Net 和 AJAX.Net 的区别
提交页面的定位--scrollIntoView的用法
利用AJAX与数据岛实现无刷新绑定
asp.net下判断用户什么时候离开,以什么方式离开
DataSet 添加数据集、行、列、主键和外键等操作示例
读写xml所有节点个人小结 和 读取xml节点的数据总结
收藏的asp.net文件上传类源码
asp.net下GDI+的一些常用应用(水印,文字,圆角处理)技巧
一个可以让.net程序在非WIN平台上运行的软件Mono
使用ASP.NET 2.0 CSS 控件适配器生成CSS友好的HTML输出

ASP.NET 中的 .NET发送邮件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 171 ::
收藏到网摘: 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;
            }
        }