sysmail_unsentitems (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Содержит одну строку для каждого сообщения Database Mail с отступом или состоянием повтора. Сообщения в неотправленном состоянии или состоянии повторной попытки все еще находятся в очереди и могут быть отправлены в любой момент. Сообщения могут иметь неотступное состояние по следующим причинам:

  • Сообщение является новым, и, хотя оно было поставлено в очередь сообщений, компонент Database Mail работает над другими сообщениями и еще не дошел до данного сообщения.

  • Компонент Database Mail не запущен, и никакие сообщения не отправляются.

Сообщения могут иметь состояние повтора по следующим причинам:

  • Компонент Database Mail совершил попытку отправки сообщения, но отсутствует связь с почтовым SMTP-сервером. Компонент Database Mail продолжит попытку отправки сообщения, используя другие учетные записи компонента Database Mail, назначенные профилю, который отправляет сообщение. Если учетные записи не могут отправлять почту, компонент Database Mail ожидает времени, настроенного для параметра "Повторная задержка учетной записи", а затем попытается отправить сообщение еще раз. Компонент Database Mail использует параметр "Попытка повтора учетной записи", чтобы определить количество попыток отправки сообщения. Сообщения сохраняют состояние повтора до тех пор, пока компонент Database Mail пытается отправить сообщение.

Используйте это представление, если хотите увидеть, сколько сообщений ожидает отправки и как долго они находятся в очереди. Как правило, количество неотступных сообщений будет низким. Проведите оценку производительности во время обычной работы, чтобы определить подходящее для данной конфигурации число сообщений в очереди.

Чтобы просмотреть все сообщения, обработанные компонентом Database Mail, используйте sysmail_allitems (Transact-SQL). Чтобы просмотреть только сообщения с состоянием сбоя, используйте sysmail_faileditems (Transact-SQL). Чтобы просмотреть только отправленные сообщения, используйте sysmail_sentitems (Transact-SQL).

Имя столбца Тип данных Description
mailitem_id int Идентификатор почтового отправления в очереди почты.
profile_id int Идентификатор профиля, использованного для передачи сообщения.
Получателей varchar(max) Электронные адреса получателей сообщения.
copy_recipients varchar(max) Электронные адреса получателей копий сообщения.
blind_copy_recipients varchar(max) Электронные адреса получателей копий сообщения, чьи имена не будут отображаться в заголовке сообщения.
subject nvarchar(510) Строка темы сообщения.
текст varchar(max) Текст сообщения.
body_format varchar(20) Формат тела сообщения. Возможные значения: TEXT и HTML.
importance varchar(6) Параметр важности сообщения.
чувствительность varchar(12) Параметр конфиденциальности сообщения.
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 (Transact-SQL).
append_query_error bit Параметр append_query_error сообщения. 0 означает, что компонент Database Mail не отсылает электронное сообщение, если в запросе содержится ошибка.
send_request_date datetime Дата и время помещения сообщения в очередь почты.
send_request_user sysname Пользователь, отправивший сообщение. Это контекст пользовательской процедуры почты базы данных, а не поля From сообщения.
sent_account_id int Идентификатор учетной записи компонента Database Mail, используемой для отсылки этого сообщения. Всегда NULL для этого представления.
sent_status varchar(8) Не будет отступом, если database Mail не попытается отправить сообщение. Будет повторяться, если компонент Database Mail не удалось отправить сообщение, но повторите попытку.
sent_date datetime Дата и время, когда компонент Database Mail последний раз пытался отправить сообщение. Имеет значение NULL, если компонент Database Mail не производил попытки отправки сообщения.
last_mod_date datetime Дата и время последнего изменения строки.
last_mod_user sysname Пользователь, внесший последнее изменение в строку.

Замечания

При поиске и устранении неполадок в компоненте Database Mail это представление может помочь установить природу проблемы путем отображения числа ожидающих отправки сообщений и продолжительности их ожидания. Если в данный момент сообщения не отправляются, компонент Database Mail может быть не запущен или могут быть проблемы с сетью, что не позволяет компоненту связаться с SMTP-серверами. Если многие из неотступных сообщений имеют одинаковые profile_id, может возникнуть проблема с SMTP-сервером. Попробуйте добавить дополнительные учетные записи в профиль. Если сообщения отправляются, но сообщения тратят слишком много времени в очереди, SQL Server может потребовать больше ресурсов для обработки объема необходимых сообщений.

Разрешения

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