C#使用smtp發送郵件帶附件

這裏使用SMTP發郵件,什麼是SMTP呢?SMTP:“Simple Mail Transfer Protocol”,即簡單郵件傳輸協議。它是一組用於從源地址到目的地址傳輸郵件的規範,通過它來控制郵件的中轉方式。

    要發送郵件,先了解郵件有哪些內容構成:
        郵件服務器地址     
        端口
        寄件人
        收件人
        副本人
        密件人
        標題
        正文
        附件
    知道這些內容後,我們就知道在設置郵件時需要設置哪些東西了。

如何發呢?
    發送郵件需使System.Net.Mail命名空間
    使用其中的SmtpClient、MailMessage和Attachment三個類。
         1. MailMessage:表示可以使用 SmtpClient 類發送的電子郵件。(郵件的信息)
         2. Attachment:表示電子郵件的附件。
         3. SmtpClient:允許應用程序使用簡單郵件傳輸協議 (SMTP) 來發送電子郵件。

    注:郵件中的內容與MailMessage中屬性的對應如下:

郵件部分

屬性

發件人

From

收件人

To

抄送 (CC)

CC

密件抄送 (BCC)

Bcc

附件

Attachments

主題

Subject

郵件正文

Body


下邊來看一下代碼: 

        /// <summary>
        
/// 發送郵件的基礎代碼(不需要設定寄件者賬戶及密碼)
        
/// </summary>
        private static void SendMailBaseCode()
        {
            //實例化郵件信息類
            MailMessage msg = new MailMessage();
            //寄件人 
            msg.From = new MailAddress(MailSender);
            //收件人
            msg.To.Add("[email protected]");
            //標題
            msg.Subject = "test";
            //標題編碼 
            msg.SubjectEncoding = Encoding.UTF8;

            //正文
            msg.Body = "test body";
            //正文編碼
            msg.BodyEncoding = Encoding.UTF8;
            //正文是否用Html形式
            msg.IsBodyHtml = false;

            //實例化附件類
            //附件
            Attachment amAnnex = new Attachment(@"D:\ckmsg.txt");
            msg.Attachments.Add(amAnnex);

            //實例化SMTPClinet類
            SmtpClient scMailServer = new SmtpClient();
            //郵件服務器地址
            scMailServer.Host = "xxx.xxx.xxx.xxx";
            //端口
            scMailServer.Port = 25;

            //發送郵件
            scMailServer.Send(msg);
        }

        /// <summary>
        
/// 發送郵件的基礎代碼(需要賬號)        
        
/// </summary>
        private static void SendMailNeedBaseCode()
        {
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress("[email protected]");
            msg.To.Add("[email protected]");
            msg.Subject = "test";
            msg.SubjectEncoding = Encoding.UTF8;

            Attachment amAnnex = new Attachment(@"D:\ckmsg.txt");
            msg.Attachments.Add(amAnnex);

            msg.Body = "test body";
            msg.BodyEncoding = Encoding.UTF8;

            msg.IsBodyHtml = true;

            SmtpClient scMailServer = new SmtpClient();
            scMailServer.DeliveryMethod = SmtpDeliveryMethod.Network;
            scMailServer.Credentials = new NetworkCredential("XXX""XXX");
            scMailServer.Host = "smtp.163.com";
            scMailServer.Port = 25;
            scMailServer.Send(msg);
            
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章