分享:.NET發送郵件

來源:互聯網
上載者:User
今天在網上搜集了一些使用.net發送郵件的資料,現在拿出來和大家分享一下!在.net中,.NET內建了發送郵件的功能,在VS2003中該功能已經封裝進.NET Framework的System.Web.Mail的命名空間裡了,在VS2005下更多的是利用System.Net.Mail命名空間了。

今天在網上搜集了一些使用.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;
            }
        }
 



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。