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 成員只能看到他們所提交之電子郵件的事件。