sysmail_event_log (Transact-SQL)
适用于:SQL Server
对于数据库邮件系统返回的每个 Windows 或SQL Server消息,都包含一行。 此上下文中的 (消息是指错误消息等消息,而不是电子邮件。) 使用数据库邮件配置向导的“配置系统参数”对话框或sysmail_configure_sp存储过程来配置日志记录级别参数,以确定返回的消息。
列名称 | 数据类型 | 说明 |
---|---|---|
Log_id | int | 日志中项的标识符。 |
event_type | varchar (11) | 插入日志中的通告的类型。 可能值为错误、警告、信息性消息、成功消息以及其他内部消息。 |
log_date | datetime | 记录日志条目的日期和时间。 |
description | nvarchar(max) | 要记录的消息的文本。 |
process_id | int | 数据库邮件外部程序的进程 ID。 每当数据库邮件外部程序启动时,该进程 ID 通常都会更改。 |
mailitem_id | int | 邮件队列中邮件项的标识符。 如果消息与特定的电子邮件项不相关,则该值为 NULL。 |
account_id | int | 与事件相关的帐户的 account_id 。 如果消息与特定的帐户不相关,则该值为 NULL。 |
last_mod_date | datetime | 上次修改行的日期和时间。 |
last_mod_user | sysname | 上次修改行的用户。 对于电子邮件,这是发送邮件的用户。 对于数据库邮件外部程序生成的消息,这是程序的用户上下文。 |
备注
排查数据库邮件问题时,请在sysmail_event_log视图中搜索与电子邮件失败相关的事件。 某些消息(例如,数据库邮件外部程序的失败)并不与特定的电子邮件相关。 若要搜索与特定电子邮件相关的错误,请在 sysmail_faileditems 视图中查找失败电子邮件的 mailitem_id ,然后在 sysmail_event_log 中搜索与该 mailitem_id相关的邮件。 当从 sp_send_dbmail 返回错误时,电子邮件不会提交到数据库邮件系统,并且错误不会在此视图中显示。
如果单个帐户传递尝试失败,则在重试过程中数据库邮件将会包含错误消息,直到邮件项传递成功或者失败为止。 如果最终成功,所有累积的错误都会记录为单独的警告,包括 account_id。 这样,即使电子邮件已被发送,也会出现警告。 在最终传递失败的情况下,以前的所有警告都会记录为一条错误消息 ,没有account_id,因为所有帐户都失败了。
权限
必须是 sysadmin 固定服务器角色或 DatabaseMailUserRole 数据库角色的成员才能访问此视图。 不是 sysadmin 角色成员的 DatabaseMailUserRole 成员只能查看他们提交的电子邮件的事件。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈