使用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();
}
}
}
在這種實現中要注意這樣幾個問題:
-
System.Net.Mail是.NET 2.0以後的版本中被推薦使用的方法,它解決了一些編碼問題和一些安全驗證的問題,並且對MailMessage類重寫,提供了更多的函式,使得建立MailMessage更加便利。
-
System.Net.Mail.MailMessage中,加入SubjectEncoding屬性,而且對於To, Cc, Bcc都加入了一些域下的方法,使得可以更便利的實現郵件群發。而且使用了更加物件導向的MailAddress類的物件來表明郵件地址。
-
System.Net.Mail中加入SmtpClient類,該類包含了諸如本應用中的一些方法和屬性,可以對連結進行安全連結的標記等等
-
值得注意的是,一般來講SMTP(Simple Message Transfer Protocol)使用的埠是25,這也是多數郵件服務期提供的埠,但是gmail卻不一樣,gmail的最新埠是587,而不是先前的465。
-
Gmail的伺服器是要求安全連結的,所以一定要指定Sender.EnableSsl = true。
-
此外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()用來取消非同步操作以傳送郵件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-564906/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP實現郵件群發機薦PHP
- 群發郵件
- Java郵件群發(web版)JavaWeb
- 一個簡易郵件群發軟體設計與實現
- JS實現發郵件功能JS
- ASP.NET中使用計時器(Timer)來實現群發郵件等功能ASP.NET
- kettle 實用功能之三 ---- 使用 kettle 群發動態內容的郵件。
- C#實現自動發郵件C#
- 使用JavaMail實現收取和回覆郵件JavaAI
- 第9章使用PKI實現郵件安全
- Java實現QQ郵件傳送郵件工具類Java
- 用Gmail做QQ郵件群發的一種方式AI
- 直接用通訊錄Excel群發電子郵件Excel
- Laravel5.6 使用定時任務實現定時發郵件Laravel
- Laravel5.6使用定時任務實現定時發郵件Laravel
- 前端高質量郵件信開發實現 ?前端
- 實現簡單的郵件收發器(十二)
- 【知識積累】JavaMail實現發郵件功能JavaAI
- 使用多執行緒實現郵件傳送執行緒
- 基於java spring的郵件群發簡單方式JavaSpring
- 直接用通訊錄Excel群發電子郵件(轉)Excel
- 如何在Outlook安裝使用S/MIME郵件證書實現郵件簽名加密加密
- Java 實現郵件的接收Java
- Java實現郵件推送功能Java
- 郵件開發:接收解析郵件
- 使用 LDAP 目錄協議實現 Domino 郵件路由LDA協議路由
- 利用ASP+JMAIL進行郵件群發的新思路 (轉)AI
- oracle 傳送郵件 實現方法Oracle
- Django實現傳送郵件功能Django
- 用Perl實現郵件傳送
- python實現傳送郵件Python
- C#使用 MailKit 收發郵件C#AI
- shell發郵件
- oracle 發郵件Oracle
- WireShark駭客發現之旅(7)—勒索郵件
- python實現郵件的傳送Python
- SPS中使用JSOM發郵件JS
- python多使用者發郵件Python