第一種:
??????? //emailaddress郵件接收者地址
??????? //mailcontent郵件主體內容
??????? //mailtitle郵件標題
??????? //mailsubject郵件主題
??????? public bool SendMail(string emailaddress,string mailcontent,string mailtitle,string mailsubject) {
??????????? MailMessage onemail = new MailMessage();
??????????? string myEmail="aaaa@163.com";? //發送郵件的郵箱地址
??????????? string myPwd="11111111";? //發送郵件的郵箱密碼
??????????? onemail.BodyEncoding=System.Text.Encoding.UTF8;
??????????? onemail.IsBodyHtml=true;
??????????? onemail.From = new MailAddress(myEmail);
??????????? onemail.To.Add (new MailAddress(emailaddress)) ;
??????????? onemail.Subject = mailsubject;
??????????? onemail.Body = mailcontent;
??????????? onemail.BodyEncoding = System.Text.Encoding.UTF8;
??????????? SmtpClient clint = new SmtpClient("mail.iapechina.com");//發送郵件的服務器
??????????? clint.UseDefaultCredentials = false;
??????????? clint.Credentials = new System.Net.NetworkCredential(myEmail,myPwd);
??????????? clint.DeliveryMethod = SmtpDeliveryMethod.Network;
??????????? try
??????????? {
??????????????? clint.Send(onemail);
??????????????? return true;
??????????? }
??????????? catch (Exception ex) {
??????????????? return false;
??????????? }???
??????? }
第二種:
在web.config中做如下設置
<configuration>
<system.net>
?? ?<mailSettings>
?????? <smtp from="aaaa@163.com">?<!--要發送郵件的郵箱-->
?????????? <network host="mail.iapechina.com" password="1111111" port="25" userName="aaaa@163.com" defaultCredentials="false"/>
????? </smtp>
??</mailSettings>
</system.net>
</configuration>
??????? //emailaddress郵件接收者地址
??????? //mailcontent郵件主體內容
??????? //mailtitle郵件標題
??????? //mailsubject郵件主題
??????? private bool SendMail(string emailaddress,string mailcontent,string mailtitle,string mailsubject) {
??????????? MailMessage onemail = new MailMessage();
??????????? onemail.BodyEncoding=System.Text.Encoding.UTF8;
??????????? onemail.IsBodyHtml=true;
??????????? onemail.To.Add (new MailAddress(emailaddress)) ;
??????????? onemail.Subject = mailsubject;
??????????? onemail.Body = mailcontent;
??????????? onemail.BodyEncoding = System.Text.Encoding.UTF8;
??????????? SmtpClient clint = new SmtpClient();
??????????? try
??????????? {
??????????????? clint.Send(onemail);
??????????????? return true;
??????????? }
??????????? catch (Exception ex) {
??????????????? return false;
??????????? }???
??????? }
?
總結:雖然在.NET 2.0下,使用System.Web.Mail發送郵件很簡單,在錯誤的時候也可以得到比較詳細的異常信息,但是有時候出現的問題也會讓你摸不著頭腦。最經常出現的是,當你的機器有安裝殺毒防火墻,有可能會發不出郵件,但是提示信息卻讓你無法診斷是哪里出問題了,大意是郵件發送被拒絕。出現這種事況是由于防火墻拒絕了我們對25端口的使用,從而造成無法與SMTP服務器正常通信。解決辦法就是關閉它了,相信網上已經有很多的案例了。還有一點要特別注意,要發送郵件的機器必須是直接外網的,由于公司是通過代理上網,所以這個印象特別深。 上面的代碼還有一點需要注意,MailMessage對象的From值必須和配置文件中From值是一樣的,這里好像也可以不用設,大家可以試一下。