ASP.NET 2.0登入控制項的寄信功能(一)
2007年11月10日 星期六 by 哲民
最近在實作登入的部份,剛好需要用到send mail的功能,主要是用在忘記密碼跟註冊通知上面。在寄信的部份要先設定SMTP Server,可以使用既有的或是本機IIS Server提供的SMTP服務。
如果要使用本機上IIS 6.0(XP的環境)的話要先安裝SMTP服務,安裝步驟如下:
1.在 [開始] 功能表上按一下 [控制台],按兩下 [新增或移除程式],然後按一下 [新增/移 除 Windows 元件]。
2.在 [元件] 清單中,按一下 [應用程式伺服器],然後按一下 [詳細資料]。
3.在 [應用程式伺服器的子元件] 清單中,按一下 [網際網路資訊服務 (IIS)],然後按一下 [詳細資料]。
4.在 [網際網路資訊服務 (IIS) 的子元件] 清單中,選取 [SMTP 服務] 核取方塊,然後按一下 [確定]。
5.按 [下一步]。如果電腦提示您輸入 Windows CD 或網路安裝路徑,請按指示操作。
6.按一下 [完成]。
安裝完後會發現在C:\Inetpub\Mailroot 中建立預設的 SMTP 伺服器組態和訊息存放區。
接下來是設定SMTP服務,步驟如下:
1. 開啟 [IIS 管理員] 之 [預設 SMTP 虛擬伺服器] 設定。
2. 在 [存取] 的畫面中,針對 [轉換限制] 進行設定,將該台機器的 IP 加入可允許的清單中,例如 "127.0.0.1" 。
完成後,ASP.NET就可以使用本機IIS提供的SMTP服務了。
ASP.NET 2.0提供了會員管理功能,其對應的類別為membership。所以當使用ASP.NET 2.0內建的登入控制項系列元件時,其背後運作的機制就是透過membership API。另外,ASP.NET 2.0開發工具也提供了圖形介面的會員管理操作。可以透過登入元件或在開發工具上使用,經由會員管理圖形介面指定SMTP Server,如127.0.0.1(使用本機上的IIS SMTP服務),或是自行使用程式碼指定。
最後,在使用本機IIS SMTP服務發送Mail的過程中發現使用防毒軟體的垃圾郵件功能可能要關掉,不然發送的Mail都會被queue在MailRoot下的queue目錄裡送不出去。另外如果本機是浮動IP的話發送也可能會失敗或是被當成垃圾信處理,我在家裡的電腦上測試時發現google是當成垃圾信,而yahoo則是連回應都沒有,直接擋掉了。