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

.net發郵件 實現教程

編輯:關於C#
 

對於.NET而言,從2.0開始,發郵件已經是一件非常easy 的事了。下面我給出一個用C#群發郵件的實例,做了比較詳細的注解,希望對有需要的朋友有所help。

// 引入命名空間
using System.Net;
using System.Net.Mail;

SmtpClient smtp = new SmtpClient(); //實例化一個SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //將smtp的出站方式設為 Network
smtp.EnableSsl = false;//smtp服務器是否啟用SSL加密
smtp.Host = "smtp.163.com"; //指定 smtp 服務器地址
smtp.Port = 25; //指定 smtp 服務器的端口,默認是25,如果采用默認端口,可省去
//如果你的SMTP服務器不需要身份認證,則使用下面的方式,不過,目前基本沒有不需要認證的了
smtp.UseDefaultCredentials = true;
//如果需要認證,則用下面的方式
smtp.Credentials = new NetworkCredential("郵箱帳號@163.com", "郵箱密碼");
MailMessage mm = new MailMessage(); //實例化一個郵件類
mm.Priority = MailPriority.High; //郵件的優先級,分為 Low, Normal, High,通常用 Normal即可
mm.From = new MailAddress("郵箱帳號@163.com", "真有意思", Encoding.GetEncoding(936));
//收件方看到的郵件來源;
//第一個參數是發信人郵件地址
//第二參數是發信人顯示的名稱
//第三個參數是 第二個參數所使用的編碼,如果指定不正確,則對方收到後顯示亂碼
//936是簡體中文的codepage值

注:上面的郵件來源,一定要和你登錄郵箱的帳號一致,否則會認證失敗

mm.ReplyTo = new MailAddress("[email protected]", "我的接收郵箱", Encoding.GetEncoding(936));
//ReplyTo 表示對方回復郵件時默認的接收地址,即:你用一個郵箱發信,但卻用另一個來收信
//上面後兩個參數的意義, 同 From 的意義
mm.CC.Add("[email protected],[email protected],[email protected]");
//郵件的抄送者,支持群發,多個郵件地址之間用 半角逗號 分開

//當然也可以用全地址,如下:
mm.CC.Add(new MailAddress("[email protected]", "抄送者A", Encoding.GetEncoding(936)));
mm.CC.Add(new MailAddress("[email protected]", "抄送者B", Encoding.GetEncoding(936)));
mm.CC.Add(new MailAddress("[email protected]", "抄送者C", Encoding.GetEncoding(936)));

mm.Bcc.Add("[email protected],[email protected]");
//郵件的密送者,支持群發,多個郵件地址之間用 半角逗號 分開

//當然也可以用全地址,如下:
mm.CC.Add(new MailAddress("[email protected]", "密送者D", Encoding.GetEncoding(936)));
mm.CC.Add(new MailAddress("[email protected]", "密送者E", Encoding.GetEncoding(936)));
mm.Sender = new MailAddress("[email protected]", "郵件發送者", Encoding.GetEncoding(936));
//可以任意設置,此信息包含在郵件頭中,但並不會驗證有效性,也不會顯示給收件人
//說實話,我不知道有啥實際作用,大家可不理會,也可不寫此項
mm.To.Add("[email protected],[email protected]");
//郵件的接收者,支持群發,多個地址之間用 半角逗號 分開

//當然也可以用全地址添加

mm.To.Add(new MailAddress("[email protected]", "接收者g", Encoding.GetEncoding(936)));
mm.To.Add(new MailAddress("[email protected]", "接收者h", Encoding.GetEncoding(936)));
mm.Subject = "這是郵件標題"; //郵件標題
mm.SubjectEncoding = Encoding.GetEncoding(936);
// 這裡非常重要,如果你的郵件標題包含中文,這裡一定要指定,否則對方收到的極有可能是亂碼。
// 936是簡體中文的pagecode,如果是英文標題,這句可以忽略不用
mm.IsBodyHtml = true; //郵件正文是否是HTML格式

mm.BodyEncoding = Encoding.GetEncoding(936);
//郵件正文的編碼, 設置不正確, 接收者會收到亂碼

mm.Body = "<font color="red">郵件測試,呵呵</font>";
//郵件正文
mm.Attachments.Add( new Attachment( @"d:a.doc", System.Net.Mime.MediaTypeNames.Application.Rtf ) );
//添加附件,第二個參數,表示附件的文件類型,可以不用指定
//可以添加多個附件
mm.Attachments.Add( new Attachment( @"d:b.doc") );
smtp.Send( mm ); //發送郵件,如果不返回異常, 則大功告成了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved