sysmail_event_log (Transact-SQL)

針對每個由 Database Mail 系統傳回的 Windows 或 SQL Server 訊息,各包含一個資料列。(這個內容中的訊息指的是錯誤訊息之類的訊息,不是電子郵件訊息。) 使用 Database Mail 組態精靈的 [設定系統參數] 對話方塊或 sysmail_configure_sp 預存程序設定 Logging Level 參數,來決定傳回的訊息。

資料行名稱 資料類型 描述

Log_id

int

記錄中項目的識別碼。

event_type

varchar(11)

插入記錄中通知的類型。可能的值有錯誤、警告、參考訊息、成功訊息和其他內部訊息。

log_date

datetime

產生記錄項目的日期和時間。

描述

nvarchar(max)

記錄的訊息文字。

process_id

int

Database Mail 外部程式的處理序識別碼。這通常在每一次 Database Mail 外部程式啟動時都會變更。

mailitem_id

int

郵件佇列中郵件項目的識別碼。如果訊息與特定電子郵件項目無關,則為 NULL。

account_id

int

與事件相關之帳戶的 account_id。如果訊息與特定帳戶無關,則為 NULL。

last_mod_date

datetime

資料列上次修改的日期和時間。

last_mod_user

sysname

上次修改資料列的使用者。針對電子郵件,這是傳送郵件的使用者。針對 Database Mail 外部程式產生的訊息,這是程式的使用者內容。

備註

對 Database Mail 進行疑難排解時,請在 sysmail_event_log 檢視搜尋電子郵件失敗的相關事件。部分訊息 (如 Database Mail 外部程式失敗) 與特定電子郵件沒有關聯。若要搜尋特定電子郵件的相關錯誤,請查閱 sysmail_faileditems 檢視中失敗電子郵件的 mailitem_id,然後在 sysmail_event_log 搜尋該 mailitem_id 的相關訊息。如果錯誤是從 sp_send_dbmail 傳回,電子郵件不會提交到 Database Mail 系統,錯誤也不會顯示在這個檢視中。

當個別帳戶傳遞嘗試失敗時,Database Mail 會在重試嘗試期間保留錯誤訊息,直到郵件項目傳遞成功或失敗為止。在最終成功的情況下,所有累積的錯誤會記錄為包括 account_id 的不同警告。即使電子郵件已傳送,這仍可能會使警告出現。在最終傳遞失敗的情況下,所有先前的警告會記錄為一個不含 account_id 的錯誤訊息,因為所有的帳戶均已失敗。

權限

您必須是系統管理員 (sysadmin) 固定伺服器角色的成員,或 DatabaseMailUserRole 資料庫角色,才能存取這份檢視。不是系統管理員 (sysadmin) 角色成員的 DatabaseMailUserRole 成員只能看到他們所提交之電子郵件的事件。

請參閱

參考

sysmail_delete_log_sp (Transact-SQL)
sysmail_faileditems (Transact-SQL)

其他資源

Database Mail 疑難排解
Database Mail 外部程式

說明及資訊

取得 SQL Server 2005 協助