.Net 如何透過SMTP寄發Mail

.Net 要如何透過SMTP寄發Mail?

通常在開發一個應用程式或是網站的時候會需要提供發送mail通知的功能,提醒該使用者進行確認或是告知其被指派了甚麼工作,而在.Net中要使用SMTP來發送真的非常的簡單,下面會大略說明一下

  1. 事前準備動作
    首先你必須先了解你的SMTP Server的一些相關資料如下
    (1). host ip 或 host name
    (2). 正確的 port (一般來說預設都是25)
    (3). 認證方式  (是否需要進行認證)
     
  2. 設定SMTP相關資料
    基本上有下列幾個項目需要設定
    設定參數說明
    hostSMTP伺服器位置
    portSMTP服務的Port
    CredentialsSMTP認證模式
    EnableSsl是否採用SSL

     
  3. 發送範例
    首先我們必須先引用 System.Net.Mail 的命名空間
    若SMTP Server需要驗證則需再引用System.Net,因為驗證物件為System.Net.NetworkCredential
    
                string 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);


     
  4. 附註說明
    上面的範例是將基本設定寫在程式碼理面,若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這些資料就可以直接寄送.

    在此跟大家分享一下,若有任何錯誤歡迎大家告知我,避免我自己一路錯下去.

 

IIS 7.0:設定 SMTP 電子郵件

 

===========================這是簽名檔分隔線==============================
我沒有甚麼技術能力
不過卻希望在這邊跟大家分享自己遭遇的一些問題
希望大家有更好的方法可以跟我說!!
======================================================================