C#發送郵件的實現實例解析
C#發送郵件使用System.Net.Mail來實現,那么在這種實現中要注意這樣幾個問題是什么?C#發送郵件使用System.Net.Mail來實現的具體的實例是什么呢?現在開始我們的講述。
1、System.Net.Mail是.NET 2.0以后的版本中被推薦使用的方法,它解決了一些編碼問題和一些安全驗證的問題,并且對MailMessage類重寫,提供了更多的函數,使得建立MailMessage更加便利。
2、System.Net.Mail.MailMessage中,加入SubjectEncoding屬性,而且對于To, Cc, Bcc都加入了一些域下的方法,使得可以更便利的實現郵件群發。而且使用了更加面向對象的MailAddress類的對象來表明郵件地址。
3、System.Net.Mail中加入SmtpClient類,該類包含了諸如本應用中的一些方法和屬性,可以對鏈接進行安全鏈接的標記等等
4、值得注意的是,一般來講SMTP(Simple Message Transfer Protocol)使用的端口是25,這也是多數郵件服務期提供的端口,但是gmail卻不一樣,gmail的***端口是587,而不是先前的465。
5、Gmail的服務器是要求安全鏈接的,所以一定要指定Sender.EnableSsl = true。
6、此外SmtpClient對象中有一個非常重要的方法,要介紹一下,就是SendAsync(), 這個方法已經被重載過了,public void SendAsync(MailMessage message, object userToken)要求使用MailMessage作為發送對象,并且勇userToken指定異步操作時調用的方法。public void SendAsync(string from, string recipients, string subject, string body, object userToken) 可以不用建立MailMessage對象直接發送郵件,userToken與上一個函數相同,public void SendAsyncCancel()用來取消異步操作以發送郵件。
C#發送郵件使用System.Net.Mail來實現的實例
- using System;
- using System.Collections;
- using System.Text;
- using System.Net;
- using System.Net.Mail;
- namespace NetMailSend
- {
- class Programe
- {
- public static void Main(string[] args)
- {
- //mail message
- MailMessage myMail = new MailMessage();
- myMail.From = new MailAddress("test@gmail.com");
- myMail.To.Add(new MailAddress("test@gmail.com"));
- myMail.Subject = "Test";
- myMail.SubjectEncoding = Encoding.UTF8;
- myMail.Body = "You are successed.";
- myMail.BodyEncoding = Encoding.UTF8;
- myMail.IsBodyHtml = false;
- myMail.Priority = MailPriority.High;
- myMail.CC.Add(new MailAddress("test@gmail.com"));
- myMail.Bcc.Add(new MailAddress("test@gmail.com"));
- //smtp client
- SmtpClient sender = new SmtpClient();
- sender.Host = "smtp.gmail.com";
- sender.Port = 587;
- sender.Credentials =
- new NetworkCredential("test@gmail.com", "test");
- sender.DeliveryMethod = SmtpDeliveryMethod.Network;
- sender.EnableSsl = true;
- try
- {
- sender.Send(myMail);
- Console.WriteLine("Success");
- }
- catch (Exception e)
- {
- Console.WriteLine("Failed.Exception:{0}", e.Message);
- }
- Console.Write("Press any key to quit...");
- Console.ReadKey();
- }
- }
- }
C#發送郵件使用System.Net.Mail來實現的具體內容就向你介紹到這里,希望對你了解和學習C#發送郵件有所幫助。
【編輯推薦】