[SQL]設定 SQL Server Database Mail 搭配 GMail 或 Outlook 來做使用

如何設定讓 database mail 可以搭配 GMail 或 Outlook 來做使用

前幾天收到一個學生的信件,表示他想要按照課程中所教的 Database Mail ,來做一些通知管理,但怎麼做都沒有辦法正常寄信,因此想要詢問到底自己再實作的時候,要注意到那些項目。剛收到這樣的問題,實在也有點搞不清楚問題的原因,因此就弄個 VM 來測試一下,總算了解為什麼會沒有辦法使用了。

首先,Database Mail 的設定,一般來說不大會遇到問題,但當您寄送測試 Mail 的時候,可能會類似以下的狀況,明明有寄送了,但連錯誤的 Log 也都沒有,那到底是怎麼了嗎 ?

由於 SQL Server 在寄送 EMail 的時候,主要會去使用 DatabaseMail.exe,因此如果當有上述狀況發生的時候,我們可以去試著去執行 DatabaseMail.exe 的那隻作業,看看是否有甚麼樣的狀況囉

執行後就可以看到以下的訊息,這下真象就大白了,因為現在 SQL Server 安裝的時候,沒有強制限制您一定要先安裝好 .Net Framework 3.5,但因為 Database Mail 那隻程式是 .Net Framework 3.5 環境下所開發的,所以才會發生無法正常啟動的狀況。

那問題的原因知道之後,那就好辦了, 只要去「新增角色及功能」內,將 .Net Framework 3.5 Features 給勾選起來安裝,就應該可以正常使用了。

當安裝完畢之後,如果再去執行 DatabaseMail.exe ,就會類似以下的畫面,基本上就沒有問題了。


前面我們已經讓 Database Mail 可以啟動了,那要怎麼來設定搭配 GMail 或 Outlook 呢 ? 先以 GMail 為例,首先這個 GMail 帳號不能設定兩階段驗證,否則是無法登入 SMTP 的,另外還要在您 GMail 帳戶的安全性的設定,將預設的「低安全性應用程式存取權」給開啟

當開啟之後,應該就可以正常使用 SMTP 的方式來寄信了

此時在 Database Mail 內,按照 GMail 的說明,設定好相關參數即可自動寄信了

因此我們就到 Database Mail 內,將參數設定好,就可以正常使用了。


但如果不是採用 GMail ,而是利用 Outlook.com 呢 ? 您可以進入您的 Outlook 內,選擇「設定」→「同步電子郵件」內,就可以看到 SMTP 的相關設定

因此參考上述的說明,我們就可以到 Database Mail 內設定一組搭配 Outlook 來使用了