阿宽

Nothing is more powerful than habit!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#中用Smtp發郵件

Posted on 2008-03-21 11:47  宽田  阅读(1228)  评论(5编辑  收藏  举报
     這里使用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);
            
        }