SQL Server 2008數據庫郵件配置及應用

文章轉載自http://zhangkui.blog.51cto.com/1796259/340557

作者:zhangkui2010

數據庫郵件是從 SQL Server數據庫引擎中發送電子郵件的企業解決方案。通過使用數據庫郵件,數據庫應用程序可以向用戶發送電子郵件。郵件中可以包含查詢結果,還可以包含來自網絡中任何資源的文件。
1、數據庫郵件配置
    使用SQL Server Management Studio連接到數據庫服務器後,可按下面示意圖一步步配置數據庫郵件。
(1)、在SQL Server Management Studio的數據庫實例的管理菜單下,選中數據庫郵件菜單,然後郵件選擇:配置數據庫郵件。
clip_image002[17]
(2)、在選擇配置任務頁面,選擇通過執行以下任務來安裝數據庫郵件。

clip_image004[4]
(3)、在新建配置文件界面,首先錄入配置文件名及說明信息,然後點擊下圖所示“添加”按鈕,開始添加當前配置文件對應的SMTP賬戶。
clip_image006[4]
(4)、按下圖所示,錄入SMTP賬戶信息,其中最重要的是服務器名稱選項。若使用當前流行的郵件服務提供商的SMTP服務,則一般還需要在基本身份驗證部分錄入郵箱賬戶身份信息。
clip_image008[4]
(5)、在上一步添加完賬戶信息並點擊確定後,新增的賬戶信息將列示在下圖的SMTP賬戶列表中。一個配置文件是可以和多個賬戶關聯的,因而可以重複前面步驟添加其它SMTP賬戶信息。
clip_image010[4]
(6)、在該步驟選擇“公共”複選框及“默認配置文件”。
clip_image012[4]
(7)、此步驟主要是配置數據庫郵件參數,若無特殊要求,默認即可。
clip_image014[4]
(8)、下圖展示剛配置的信息。
clip_image016[4]
(9)、系統開始根據前面的配置信息自動配置系統。如果一切ok,將會展示類似下圖信息,點擊關閉完成配置。
clip_image018[4]
(10)、按照上述步驟,配置好數據庫郵件後,可進行數據庫郵件測試,以確認配置是否完全正確。在SQL Server Management Studio的數據庫實例的管理菜單下,選中數據庫郵件菜單,然後郵件選擇:發送測試電子郵件…。
clip_image020[4]
(11)、在彈出的測試郵件發送配置界面,維護好相關信息後,點擊“發送測試電子郵件”功能按鈕開始發生郵件。
clip_image022[4]
(12)、系統對測試電子郵件進行列隊以進行發送。
clip_image024[4]
(13)、如果一切順利,過一會,一般爲1分鐘左右,將可以在郵箱內容收到一份主題爲:“數據庫郵件測試”的郵件,如下圖所示。
clip_image026[4]
2、數據庫郵件應用
    應用業務場景1:業務數據庫數據達到一定數量級後,進行郵件發送提醒。
    使用SQL Server Management Studio連接到數據庫服務器後,可按下面示意圖一步步配置以創建一個作業,通過作業執行特定語句,進行郵件發送。
(1)、在SQL Server Management Studio的數據庫實例的管理菜單下,選中SQL Server代理→作業菜單,右擊作業菜單,然後點擊“新建作業”。
clip_image028[4]
(2)、在作業屬性/常規屬性頁,維護好作業的名稱等信息。
clip_image030[4]
(3)、在作業屬性/步驟屬性頁,維護作業步驟及作業命令。
本文示例SQL:
USE msdb 
GO 
DECLARE @cnt INT; 
DECLARE @emailBody VARCHAR(4000); 
SELECT @cnt=COUNT(*) FROM ng0002.dbo.secuser; 
IF @cnt>100 
BEGIN 
SELECT @emailBody='數據庫用戶表記錄數已達:'+convert(varchar,@cnt) ; 
Exec dbo.sp_send_dbmail 
    @profile_name='SQLMailConfig', 
    @recipients='[email protected]', 
    @subject='用戶數預警', 
    @body=@emailBody 
END
clip_image032[4]
(4)、在作業屬性/計劃屬性頁,維護作業的執行計劃。
clip_image034[4]
(5)、待數據庫作業成功執行後,將會收到一份類似下圖的郵件:
clip_image036[4]
 
應用業務場景2:將數據庫查詢結果以附件形式投遞到指定郵箱
USE msdb
GO
Exec msdb.dbo.sp_send_dbmail
@profile_name='SQLMailConfig',
@recipients='[email protected]',
@query='select logid,u_name from ng0002.dbo.secuser',
@subject='用戶數預警',
@body='查詢結果,詳見附件',
@attach_query_result_as_file =1,--查詢結果以附件形式發送
@query_attachment_filename ='查詢結果.Txt'--郵件附件名稱
GO
PS:
     數據庫郵件發送存儲(sp_send_dbmail)詳細技術參數可參考以下網站:http://msdn.microsoft.com/zh-cn/library/ms190307.aspx

本文出自 “zhangkui的博客” 博客,請務必保留此出處http://zhangkui.blog.51cto.com/1796259/340557


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章