程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> .NET發送郵件

.NET發送郵件

編輯:關於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 = "[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.webjx.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;
            }
        }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved