sysmail_event_log (Transact-SQL)

Содержит по одной строке для каждого из сообщений Windows или SQL Server, возвращаемых компонентом Database Mail (под сообщением подразумевается сообщение об ошибке, а не электронное письмо). Набор возвращаемых сообщений определяется параметром Logging Level в диалоговом окне Configure System Parameters мастера настройки компонента 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, не связаны с конкретными электронными сообщениями. Для обнаружения ошибок, относящихся к конкретному электронному сообщению, найдите соответствующий идентификатор mailitem_id в представлении sysmail_faileditems, а затем ищите в журнале sysmail_event_log сообщения с тем же идентификатором mailitem_id. Если ошибка возвращена из процедуры sp_send_dbmail, электронное письмо системе Database Mail не передается, и ошибка в этом представлении не отображается.

Если происходит ошибка доставки для определенной учетной записи, при выполнении повторных попыток компонент Database Mail задерживает сообщения об ошибках до тех пор, пока доставка почтового элемента не завершится либо успехом, либо неудачей. Если в конечном итоге операция завершилась успешно, все накопленные ошибки заносятся в журнал в виде отдельных предупреждений с указанием идентификатора account_id. Это может привести к появлению предупреждений, несмотря на то, что электронное письмо было отправлено. Если в итоге доставка завершилась неудачей, все имеющиеся предупреждения заносятся в журнал в виде одного сообщения об ошибке без указания идентификаторов account_id, поскольку отправка для всех учетных записей завершилась неудачей.

Разрешения

Для доступа к этому представлению пользователь должен быть членом предопределенной роли сервера sysadmin или роли базы данных DatabaseMailUserRole. Члены роли DatabaseMailUserRole, не являющиеся членами роли sysadmin, могут просматривать события, относящиеся только к электронным сообщениям, отправленным ими самими.