在 SQL Server 2015之後,設定 Database Mail

by adonis 30. 一月 2018 11:01

.DB World國際中文電子雜誌 
作 者:楊先民 
審 稿:張智凱 

前言

自從 SQL Server 2015之後,把 SQL Mail改成 Database Mail之後,就一直想寫的主題。

本期就來介紹如何利用 Database Mail來發送信件到 gmail帳戶。

SQL Mail 與 Database Mail

SQL Server 2015之前,如果你想利用 SQL Server發送信件到 mail server的話,必需設定所謂的 SQL Mail。

不過先等一等,為什麼我們需要利用 SQL Server來發送信件?

其實最主要的原因是:自動化完成之後,若是成功或是失敗的話,可以發一個郵件通知管理者自動化的狀態,主要是這樣子的。

但是 SQL Mail有一個缺點,那就是你的 Mail Server必需是支援 MAPI(Messaging Application Programming Interface),但是支援 MAPI Server的數來數去就只有微軟本家的 Exchange Server,這個對公司已經有現成 Mail Server的管理者來說很不方便,所以 SQL Server 2005之後就以 Database Mail來取代原先的 SQL Mail(萬歲),Database Mail支援具有 SMTP(Simple Mail Transfer Protocol)的 Mail Server,這樣要設定送信功能就方便太多啦!!

好,回歸正題,那麼應該要怎麼設定呢?微軟的練習都是在教各位用自己的 SMTP服務來設定,並且做送信測試的時後故意把網域名稱設定成本機名稱,例如你的本機名稱叫 vs99,測試信就打 test@vs99,這樣信會被送到 Drop目錄中,這個練習只是要證明,你設定 Database Mail成功了,但是信是送不出去的,這樣讓大家在做練習時很不爽。

當然,其實是可以把信箱設定成 gmail的帳號,其實這類型的文章在網路上都可以找到,不過因為我還沒有寫過,所以就來寫一下吧,因為我實際在測試的時後發現,似乎並不是這麼一回事,還是有些細節必需注意。

首先,開啟 SSMS,展開管理,在 Database Mail按右鍵後設定組態。

 

給予一個 profile名稱,之後要寄信可以利用系統預存程序來完成。

接下來,設定一個 SMTP帳號,如下圖所示:

 

要注意的點就是這裡啦!

可以去看各大 mail server的 smtp名稱,此例我用 gmail當範例,其他的帳號請舉一反三。

gmail的 smtp位置是 smtp.gamil.com,這裡的注意是, gmail的 smtp的 SSL功能必需打勾,而 port number必需設定為 587,而不是465

我在這裡中招過,因為參考 google的網頁, google smtp的 SSL port 是 465,我就很興奮的設定為 465,但是會錯。

都是下面的說明讓我設定錯:

安全資料傳輸層 (SSL) 通訊埠:465

傳輸層安全性 (TLS)/STARTTLS 通訊埠:587

你要設定 587,並且把 SSL的地方打勾(這點弄的我好亂啊)

然後下方要選基本驗證,把你登入到 mail server的帳號密碼輸入進去,就大功告成了。

設定完來做個測試信測試吧!

 

 

好的,順利完成了喔!

Tags:

SQL Server資料庫 | 楊先民Adonis Young

不允許評論

NET Magazine國際中文電子雜誌

NET Magazine國際中文電子版雜誌,由恆逸資訊創立於2000,自發刊日起迄今已發行超過500篇.NET相關技術文章,擁有超過40000名註冊讀者群。NET Magazine國際中文電子版雜誌希望藉於電子雜誌與NET Developer達到共同學習與技術新知分享,歡迎每一位對.NET 技術有興趣的朋友們多多支持本雜誌,讓作者群們可以有持續性的動力繼續爬文。<請加入免費訂閱>

月分類Month List