sysmail_event_log (Transact-SQL)

適用於:SQL Server

針對 Database Mail 系統傳回的每個 Windows 或 SQL Server 訊息,各包含一個資料列。 (此內容中的訊息是指錯誤訊息,而非電子郵件訊息等訊息。使用 [Database Mail 組態精靈] 的 [設定系統參數 ] 對話方塊或 sysmail_configure_sp 預存程式,來設定記錄層級 參數,以判斷傳回哪些訊息。

資料行名稱 資料類型 描述
Log_id int 記錄檔中專案的識別碼。
event_type Varchar(11) 插入記錄檔中的注意事項類型。 可能的值為錯誤、警告、資訊訊息、成功訊息和其他內部訊息。
log_date datetime 記錄專案的日期和時間。
description 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 的錯誤訊息,因為所有帳戶都失敗。

權限

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

另請參閱

sysmail_faileditems (Transact-SQL)
Database Mail 外部程式