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

ASP.NET
获取字符串数组的最后一段字符
asp.net遍历目录文件夹和子目录所有文件
ASP.NET 中文显示之两种解决方法
asp.net替换和恢复html特殊字符
asp.net简化接收参数值的函数
asp.net验证一个字符串是否符合指定的正则表达式
asp.net求3位不同数字的组合数
C#(.NET)数据访问连接、查询、插入等操作的封装类
在ASP.NET2.0中通过Gmail发送邮件的代码
asp.net下配置数据源时出现: 未将对象引用设置到对象的实例。
asp.net gridview强制换行
asp.net gridview多页时的批量删除
未处理的事件"PageIndexChanging" 之解决方案
gridview调整单元格宽度的方法
aspx如果引用cs中的变量的方法
asp.net导出EXCEL的功能代码
asp.net注册Javascript的方法
Asp.Net 文件操作基类
Asp.Net+XML操作基类(修改,删除,新增,创建)
asp.net 获取指定文件夹下所有子目录及文件(树形)

ASP.NET 中的 .NET发送邮件


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