大家都知道C#中的System.Net.Mail.SmtpClient類是專門用來請求SMTP伺服器發送郵件的,但是如果使用本地的SMTP伺服器(比如本機IIS的SMTP伺服器)發送郵件,會被許多大型網站的郵箱當做垃圾郵件來處理,原因是本地SMTP伺服器的地址並不為人所知,發送的郵件理所當然會被當做來曆不明的郵件,所以我們要藉助一些大型知名網站的SMTP伺服器來為我們發送郵件,這裡就向大家介紹使用163的SMTP伺服器發送郵件的方法。
PS:使用163的SMTP伺服器發送郵件會使得你開發系統所發送的郵件都使用163的郵箱地址作為發信人的地址,但是我認為這總比把郵件每次都發送到使用者的垃圾郵件箱要強,因為如果你發送的郵件全是垃圾郵件,使用者可能根本就不會去看你發送的是什麼,就把郵件刪掉了,這才是最糟糕的....
下面我們來看看代碼:
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = "smtp.163.com";//使用163的SMTP伺服器發送郵件
client.UseDefaultCredentials = true;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.Credentials = new System.Net.NetworkCredential("abc", "*******");//163的SMTP伺服器需要用163郵箱的使用者名稱和密碼作認證,如果沒有需要去163申請個,
//這裡假定你已經擁有了一個163郵箱的賬戶,使用者名稱為abc,密碼為*******
System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage();
Message.From = new System.Net.Mail.MailAddress("abc@163.com");//這裡需要注意,163似乎有規定發信人的郵箱地址必須是163的,而且發信人的信箱使用者名必須和上面SMTP伺服器認證時的使用者名稱相同
//因為上面用的使用者名稱abc作SMTP伺服器認證,所以這裡發信人的郵箱地址也應該寫為abc@163.com
Message.To.Add("123456@gmail.com");//將郵件發送給Gmail
Message.To.Add("123456@qq.com");//將郵件發送給QQ郵箱
Message.Subject = "測試標體";
Message.Body = "測試郵件體";
Message.SubjectEncoding = System.Text.Encoding.UTF8;
Message.BodyEncoding = System.Text.Encoding.UTF8;
Message.Priority = System.Net.Mail.MailPriority.High;
Message.IsBodyHtml = true;
client.Send(Message);