Monday, December 1, 2008

ASP.NET 使用 GMail 寄信並讀取信件範本(Template.htm)寄送郵件 (Gmail Send Mail ASP.NET)

ASP.NET 使用 GMail 寄信並讀取信件範本(Template.htm)寄送郵件 (Gmail Send Mail ASP.NET)

Dotjum 今天要介紹的是如何使用 .NET 來透過 Gmail 來寄信,並讀取 htm 自訂信件範本的方式,
也是用在 點部落 網站目前新版本的註冊的通知。
OK,話不多說我們直接來看Code說明,
首先在上一篇中 使用 Windows Live Mail 收 GMail 的信下來 有提到Google Gmail他提供的POP3

伺服器資訊
內送郵件伺服器 (POP3): pop.gmail.com
外寄郵件伺服器 (SMTP): smtp.gmail.com

登入資訊
使用者名稱:輸入您的 Gmail 使用者名稱 (包含 @gmail.com)
密碼:輸入您的 Gmail 密碼

[外寄伺服器 (SMTP)] 方塊中輸入 465
所以程式碼這邊就做對應的設定
MailMessage em = new MailMessage();
em.From = new System.Net.Mail.MailAddress("你的Gmail帳號@gmail.com", "顯示名稱", System.Text.Encoding.UTF8);
em.SubjectEncoding = System.Text.Encoding.UTF8;
em.BodyEncoding = Encoding.UTF8;

//信件主題
em.Subject = subject;

//內容
em.Body = message;
em.IsBodyHtml = true;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

//登入帳號認證
client.Credentials = new System.Net.NetworkCredential("你的Gmail帳號@gmail.com", "你Gmail的密碼");

//使用587 Port
client.Port = 587;
client.Host = "smtp.gmail.com";

//啟動SSL
client.EnableSsl = true;

//寄出
client.Send(em);

就這樣順利就可以寄出,當然寄送範本這邊 Dotjum 是寫好一個 HTML 的範本 MailTemplate.htm



$MemberName$ 您好:


歡迎您加入專屬於IT技術園地 點部落,這是您的啟動連結 啟動連結

請點選您的啟動連結,進行下一步的設定。


.cs
StreamReader sr = null;
string strBody = "";

//讀取信件範本
try
{
sr = new StreamReader(Server.MapPath("信件範本.htm"), Encoding.Default);
strBody = sr.ReadToEnd();

}
catch (Exception ex)
{
throw ex;
}
finally
{
sr.Close();
}

//將範本內的特定變數作取代
strBody = strBody.Replace("$MemberName$", strName);
strBody = strBody.Replace("$ActiveNo$", activeGuid);

No comments: