分享方式:


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 外部程式