在與數據庫相關的項目中, 比如像數據庫維護, 性能警報, 程序出錯警報或通知都會使用到在 SQL Server 中配置Email發送郵件的功能.
在BI項目中, 這種功能也使用的比較多. 比如 SSIS Package 一般會配置到 SQL Server Agent 按計划執行, 這時 Package 執行失敗后就需要在 Job 中發送郵件通知以及時排除錯誤. 有的時候在 Package 級別也會將錯誤信息存入 Error Log中, 使用觸發器來發送郵件, 以防止 Job 中的Notification 沒有配置成功或者禁用.
一個基於表級別, 一個基於 Job 級別, 它們都需要使用到基本的郵件配置功能.
開始配置郵件服務

第一次配置使用

填好 Profile 名稱,它在很多地方會用到,並點擊添加來添加一個新的 SMTP 賬戶

添加 SMTP 賬戶,我個人使用的是126的郵箱,可以在它們官網上搜索一下它的SMTP服務器地址。
在SMTP賬戶驗證的時候輸入郵箱地址和密碼。

下一步

再下一步

基本上可以直接使用默認配置,或者可以選擇性的添加禁止發送的文件后綴。

完成

下面就要開始簡單測試一下郵件發送的功能

測試自己發給自己

有的時候會有一些延遲,第一次稍微等下就可以了。如果沒有發送成功,一般的情況就是賬戶配置不正確,比如用戶名和密碼,第二個常見的錯誤就是 SMTP 服務器的設置不正確。
顯示發送成功!

下面的配置在 SQL Server Agent 上完成
首先啟用 SQL Server Agent

先添加一個 Operator 操作員

使用 withinker@126.com 作為接收郵件地址,SMTP 是發送郵件的賬戶,這里的Notification 是接收郵件的賬戶.
這個地址最好是一個公共郵件地址,能夠映射或者包含整個團隊的所有郵件,這樣可以保證團隊中的每一位成員都可以接受到郵件通知。

更改 SQL Server Agent 屬性

在 Alert System 中選擇好之前配置好的 BIWORK Profile 它包含了 SMTP 發送郵件服務的 biwork@126.com 賬戶

一般可以不重啟 SQL Server Agent, 但是如果后來測試沒有生效的話可以重啟試一下.
那么這樣 SQL Server Agent 的操作員和通知就已經配置完畢了,我們可以創建一個測試Job來測試一下,當JOB 完成時發送一個通知到操作員 withinker@126.com
新建一個 Job - TestJob

在 Step 中創建一個簡單的 SELECT 查詢,實際使用中在這里還可以配置 SSIS Package 完成 ETL操作

還可以演示一下,作一個計划,每分鍾執行這個步驟依次來模擬實際 JOB 計划。
把計划時間改成1分鍾,也就是說1分鍾這個 SQL 語句就會被執行1次。

在通知中,設置好操作員 withinker。並且為了演示郵件通知的效果,設置為當JOB執行完成后就發送郵件。實際應用中應該是JOB執行失敗時發送郵件,這個可以在之后來調整。

配置完成后,就耐心等待准備一分鍾接收一封通知郵件吧!


到這里為止,整個郵件配置,操作員配置和JOB郵件通知的配置就完成了!