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("XXX@xxx.com");
            //標題
            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("XXX@163.com");
            msg.To.Add("XXX@xxx.com");
            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);
            
        }

posted @ 2011-12-01 21:45  googlegis  阅读(997)  评论(0编辑  收藏  举报

坐标合肥,非典型GIS开发人员 GitHub