2011年6月14日 星期二

查詢Database Mail相關設定與發送紀錄

  Database Mail我之前用都設定完就不管它了,沒特別研究,今天剛好誤判一封mail怎麼沒收到,才想說有沒有相關指令可查詢歷史紀錄的,才發現原來有好多指令可用喔,連發送過的郵件與發送失敗的原因都查的到說,特此紀錄一下,以免忘記

  以下指令在SQL 2008 R2也可用喔

--列出Database Mail設定檔
SELECT * FROM msdb.dbo.sysmail_profile

--列出Database Mail帳戶
SELECT * FROM msdb.dbo.sysmail_account

--列出設定檔對應的帳戶
select * from msdb.dbo.sysmail_profileaccount

--列出主要的設定檔
select * from msdb.dbo.sysmail_principalprofile

--Mail Server相關設定
SELECT * FROM msdb.dbo.sysmail_server
SELECT * FROM msdb.dbo.sysmail_servertype

--列出Database Mail 帳戶的相關資訊(密碼除外)
EXECUTE msdb.dbo.sysmail_help_account_sp

--列出一或多個郵件設定檔的相關資訊。
EXECUTE msdb.dbo.sysmail_help_profile_sp

--列出一或多個Database Mail 設定檔的相關帳戶。
EXECUTE msdb.dbo.sysmail_help_profileaccount_sp

--列出Database Mail系統參數
SELECT * FROM msdb.dbo.sysmail_configuration


--查看所有訊息的狀態
SELECT * FROM msdb.dbo.sysmail_allitems ORDER BY send_request_date DESC
--查看傳送成功的訊息
SELECT * FROM msdb.dbo.sysmail_sentitems ORDER BY send_request_date DESC
--查看未傳送或正在重試狀態的訊息
SELECT * FROM msdb.dbo.sysmail_unsentitems ORDER BY send_request_date DESC
--查看傳送失敗的訊息
SELECT * FROM msdb.dbo.sysmail_faileditems ORDER BY send_request_date DESC

--查看mail失敗的原因
SELECT SUBSTRING(fail.subject,1,25) AS 'Subject',
       fail.mailitem_id,
       LOG.description
FROM msdb.dbo.sysmail_event_log LOG
join msdb.dbo.sysmail_faileditems fail
ON fail.mailitem_id = LOG.mailitem_id
WHERE event_type = 'error'

--傳回郵件和狀態佇列
EXEC msdb.dbo.sysmail_help_queue_sp

--顯示Database Mail 佇列的狀態
EXEC msdb.dbo.sysmail_help_status_sp

--可啟動Database Mail 佇列
exec dbo.sysmail_start_sp
--可停止Database Mail 佇列
exec dbo.sysmail_stop_sp

0 意見:

張貼留言