.Net 要如何透過SMTP寄發Mail?
通常在開發一個應用程式或是網站的時候會需要提供發送mail通知的功能,提醒該使用者進行確認或是告知其被指派了甚麼工作,而在.Net中要使用SMTP來發送真的非常的簡單,下面會大略說明一下
- 事前準備動作
首先你必須先了解你的SMTP Server的一些相關資料如下
(1). host ip 或 host name
(2). 正確的 port (一般來說預設都是25)
(3). 認證方式 (是否需要進行認證)
- 設定SMTP相關資料
基本上有下列幾個項目需要設定設定參數 說明 host SMTP伺服器位置 port SMTP服務的Port Credentials SMTP認證模式 EnableSsl 是否採用SSL
- 發送範例
首先我們必須先引用 System.Net.Mail 的命名空間
若SMTP Server需要驗證則需再引用System.Net,因為驗證物件為System.Net.NetworkCredentialstring sHost = "SMTP Server"; //設定SMTP Server int iPort = 25; SmtpClient oSMTP = new SmtpClient(); MailMessage oMsg = new MailMessage(); MailAddress oFrom = new MailAddress("發送信箱", "發送者顯式名稱", System.Text.Encoding.UTF8); MailAddress oTo = new MailAddress("接收信箱", "收信者顯示名稱", System.Text.Encoding.UTF8); //設定該筆訊息的發送相關資料 oMsg.From = oFrom; oMsg.To.Add(oTo); oMsg.Subject = "TEST Send Mail"; oMsg.IsBodyHtml = true; oMsg.Body = "TEST Send"; //設定SMTP相關資料 oSMTP.Host = sHost; oSMTP.Port = iPort; oSMTP.Credentials = new NetworkCredential("帳號", "密碼"); oSMTP.EnableSsl = true; oSMTP.Send(oMsg);
- 附註說明
上面的範例是將基本設定寫在程式碼理面,若ASP.NET還可將相關的設定放在Web.config的<system.net>區塊中<system.net> <mailSettings> <smtp deliveryMethod="Network"> <network defaultCredentials="false" host="smtp server" port="port number" userName="帳號" password="密碼" /> <!-- 若採用預設的驗證方式就不需要設定帳號密碼 <network defaultCredentials="true" host="" port="25" /> --> </smtp> </mailSettings> </system.net>
如果透過Web.config設定,那在程式碼中就不需要再去指定host、port、credentials這些資料就可以直接寄送.
在此跟大家分享一下,若有任何錯誤歡迎大家告知我,避免我自己一路錯下去.
===========================這是簽名檔分隔線==============================
我沒有甚麼技術能力
不過卻希望在這邊跟大家分享自己遭遇的一些問題
希望大家有更好的方法可以跟我說!!
======================================================================