C#發(fā)送郵件的實(shí)現(xiàn)實(shí)例解析
C#發(fā)送郵件使用System.Net.Mail來實(shí)現(xiàn),那么在這種實(shí)現(xiàn)中要注意這樣幾個(gè)問題是什么?C#發(fā)送郵件使用System.Net.Mail來實(shí)現(xiàn)的具體的實(shí)例是什么呢?現(xiàn)在開始我們的講述。
1、System.Net.Mail是.NET 2.0以后的版本中被推薦使用的方法,它解決了一些編碼問題和一些安全驗(yàn)證的問題,并且對MailMessage類重寫,提供了更多的函數(shù),使得建立MailMessage更加便利。
2、System.Net.Mail.MailMessage中,加入SubjectEncoding屬性,而且對于To, Cc, Bcc都加入了一些域下的方法,使得可以更便利的實(shí)現(xiàn)郵件群發(fā)。而且使用了更加面向?qū)ο蟮腗ailAddress類的對象來表明郵件地址。
3、System.Net.Mail中加入SmtpClient類,該類包含了諸如本應(yīng)用中的一些方法和屬性,可以對鏈接進(jìn)行安全鏈接的標(biāo)記等等
4、值得注意的是,一般來講SMTP(Simple Message Transfer Protocol)使用的端口是25,這也是多數(shù)郵件服務(wù)期提供的端口,但是gmail卻不一樣,gmail的***端口是587,而不是先前的465。
5、Gmail的服務(wù)器是要求安全鏈接的,所以一定要指定Sender.EnableSsl = true。
6、此外SmtpClient對象中有一個(gè)非常重要的方法,要介紹一下,就是SendAsync(), 這個(gè)方法已經(jīng)被重載過了,public void SendAsync(MailMessage message, object userToken)要求使用MailMessage作為發(fā)送對象,并且勇userToken指定異步操作時(shí)調(diào)用的方法。public void SendAsync(string from, string recipients, string subject, string body, object userToken) 可以不用建立MailMessage對象直接發(fā)送郵件,userToken與上一個(gè)函數(shù)相同,public void SendAsyncCancel()用來取消異步操作以發(fā)送郵件。
C#發(fā)送郵件使用System.Net.Mail來實(shí)現(xiàn)的實(shí)例
- 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#發(fā)送郵件使用System.Net.Mail來實(shí)現(xiàn)的具體內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#發(fā)送郵件有所幫助。
【編輯推薦】