sysmail_allitems (Transact-SQL)
数据库邮件处理的每个消息都在视图中占一行。 如果要查看所有消息的状态,则请使用该视图。
若要仅查看状态为失败的消息,请使用 sysmail_faileditems。 若要仅查看未发送的消息,请使用 sysmail_unsentitems。 若要查看仅发送的消息,请使用 sysmail_sentitems。
列名称 | 数据类型 | 说明 |
---|---|---|
mailitem_id |
int | 邮件队列中邮件项的标识符。 |
profile_id |
int | 发送消息所用配置文件的标识符。 |
recipients |
varchar(max) | 消息收件人的电子邮件地址。 |
copy_recipients |
varchar(max) | 接收邮件副本的收件人的电子邮件地址。 |
blind_copy_recipients |
varchar(max) | 接收邮件副本但姓名未显示在邮件头中的收件人的电子邮件地址。 |
subject |
nvarchar(510) | 消息的主题行。 |
body |
varchar(max) | 邮件的正文。 |
body_format |
varchar(20) | 消息正文的格式。 可能的值为 TEXT 和 HTML 。 |
importance |
varchar(6) | importance 消息的参数。 |
sensitivity |
varchar(12) | sensitivity 消息的参数。 |
file_attachments |
varchar(max) | 附加到电子邮件中的文件名列表,以分号分隔。 |
attachment_encoding |
varchar(20) | 邮件附件的类型。 |
query |
varchar(max) | 邮件程序所执行的查询。 |
execute_query_database |
sysname | 邮件程序在其中执行查询的数据库上下文。 |
attach_query_result_as_file |
bit | 如果值为值 0 ,则查询结果将包含在电子邮件正文中(正文内容之后)。 当值为值 1 时,结果将作为附件返回。 |
query_result_header |
bit | 如果值为值 1 ,则查询结果包含列标题。 如果值为值 0 ,则查询结果不包含列标题。 |
query_result_width |
int | query_result_width 消息的参数。 |
query_result_separator |
char(1) | 用于分隔查询输出中的各列的字符。 |
exclude_query_output |
bit | exclude_query_output 消息的参数。 有关详细信息,请参阅 sp_send_dbmail。 |
append_query_error |
bit | append_query_error 消息的参数。 0 指示如果查询中出现错误,数据库邮件不应发送电子邮件。 |
send_request_date |
datetime | 将消息放在邮件队列中的日期和时间。 |
send_request_user |
sysname | 提交消息的用户。 此值是数据库邮件过程的用户上下文,而不是 From: 邮件的字段。 |
sent_account_id |
int | 发送消息所用数据库邮件帐户的标识符。 |
sent_status |
varchar(8) | 邮件的状态。 可能的值为:sent - 邮件已发送。unsent - 数据库邮件仍在尝试发送邮件。retrying - 数据库邮件无法发送消息,但尝试再次发送消息。failed - 数据库邮件无法发送邮件。 |
sent_date |
datetime | 发送消息的日期和时间。 |
last_mod_date |
datetime | 上次修改行的日期和时间。 |
last_mod_user |
sysname | 上次修改行的用户。 |
注解
使用sysmail_allitems
视图查看数据库邮件处理的所有消息的状态。 此视图可帮助你识别任何问题的性质,方法是显示与未发送的消息的属性相比发送的消息的属性。
此视图公开的系统表包含所有消息,并可能导致 msdb
数据库增长。 应定期从视图中删除旧的消息,以减小表的大小。 有关详细信息,请参阅创建SQL Server 代理作业以存档数据库邮件消息和事件日志。
权限
授予 sysadmin 固定服务器角色和 DatabaseMailUserRole 数据库角色。 当由 sysadmin 固定服务器角色的成员执行时,此视图将显示所有消息。 所有其他用户仅可查看他们已提交的消息。