рубрики: SQL | Дата: 15 июня, 2016
Начиная с 2005 версии MS SQL сервера в нем присутствует компонента Database Mail,
которая позволяет производить рассылку электронной почты.
А начиная с версии 2008 есть возможность отследить статус сообщений, используя несколько системных таблиц.
Их и рассмотрим в данной статье.
В этой таблице находятся не отправленные письма. То есть они стоят в очереди на отправку,
но по факту еще не отправлены.
Здесь хранятся отправленные письма.
В этой таблице находятся сообщения, которые не удалось отправить.
Эта таблица объединяет в себе все три вышеперечисленные таблицы. В поле sent_status
можно посмотреть в каком состоянии находится каждое конкретное сообщение.
Журнал сообщений об ошибках. В нем можно посмотреть причину
по которой то или иное письмо не было отправлено. Соединив таблицы sysmail_faileditems
и sysmail_event_log можно посмотреть при отправке каких сообщений произошла ошибка,
а также причину возникновения ошибки.
Таким образом, при отправке сообщения оно сначала помещается в таблицу sysmail_unsentitems.
Если отправка прошла успешно, то сообщение записывается в таблицу sysmal_sentitems,
в противном случае в таблицу sysmail_faileditems.
А из таблицы sysmail_unsentitems сообщение соответственно удаляется.
Рассмотрим некоторые поля общие для всех перечисленных таблиц:
mailitem_id – идентификатор сообщения. При перемещении из таблицы в таблицу
идентификатор сообщения остается прежним;
recipients – здесь хранятся адреса электронной почты по которым отправлялось сообщение;
body – текст сообщения.
Более подробную информацию о полях таблиц можно посмотреть в справке к MS SQL серверу.
Добавить комментарий