Sqlserver資料庫郵件的體系結構及常用的查詢檢視

lusklusklusk發表於2021-09-23

官方文件




資料庫郵件體系結構
資料庫郵件的設計基於使用 Service Broker 技術的排隊體系結構。 當使用者執行 sp_send_dbmail 時,儲存過程將向郵件佇列中插入一項,並建立一條包含該電子郵件資訊的記錄。 在郵件佇列中插入新項將啟動資料庫郵件外部程式 (DatabaseMail.exe)。 該外部程式會讀取電子郵件的資訊並將電子郵件傳送到相應的一臺或多臺電子郵件伺服器。 該外部程式還會在狀態佇列中插入一項,來指示傳送操作的結果。 在狀態佇列中插入新項將啟動內部儲存過程,該過程將更新電子郵件資訊的狀態。 除儲存已傳送(或未傳送)的電子郵件資訊外,資料庫郵件還在系統表中記錄所有電子郵件的附件。 資料庫郵件檢視提供了供排除故障使用的郵件狀態,使用儲存過程可以對資料庫郵件佇列進行管理。



--檢視DB Mail 佇列狀態
EXEC msdb.dbo.sysmail_help_queue_sp

--檢視DB Mail 是否啟動:
EXEC msdb.dbo.sysmail_help_status_sp

--資料庫處理的每條郵件,包含傳送、未傳送、失敗、重試
SELECT * FROM msdb.dbo.sysmail_allitems;

--檢視傳送和未傳送的郵件
SELECT * FROM msdb.dbo.sysmail_sentitems;
SELECT * FROM msdb.dbo.sysmail_unsentitems;

--檢視資料庫郵件帶的附件的資訊
SELECT * FROM msdb.dbo.sysmail_mailattachments

--檢視service broker是否啟動:
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'


--檢視profile資訊
select * from msdb..sysmail_profile

--檢視operator資訊
select * from msdb..sysoperators

--執行資料庫郵件
EXEC msdb..sp_send_dbmail
@profile_name = 'XX',
@recipients = 'yy@zz',
@body = 'Test successfully.',
@subject = 'This is a test'

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2793300/,如需轉載,請註明出處,否則將追究法律責任。

相關文章