Я ищу способ проверить, будут ли в конечном итоге sp_send_dbmail очереди электронной почты с помощью sp_send_dbmail отправлены с нашего сервера Exchange. Я просмотрел системные таблицы msdb.dbo.sysmail_mailitems и msdb.dbo.sysmail_log. msdb.dbo.sysmail_log кажется более полезным из двух; в частности, колонку description. Из тестов, которые я провел до сих пор, кажется, что всякий раз, когда возникает ошибка, в колонке description появляется сообщение в следующем формате:
Не удалось отправить почту получателям из-за сбоя почтового сервера. (Отправка почты с использованием учетной записи 3 (2012-11-01T11: 28: 04) Сообщение об исключении: не удается отправить почту на почтовый сервер (почтовый ящик недоступен. Ответ сервера: 5.7.1 Не удалось передать для [email protected]).)
Это связано с другими строками, которые имеют один и тот же process_id. Описание прилагаемых записей
Процесс DatabaseMail запущен
а также
Процесс DatabaseMail закрывается
Если сообщение электронной почты было успешно отправлено, в таблице записаны те же 2 строки, за исключением того, что между ними нет закрытых строк.
Поэтому, если у меня есть успешная отправка, в таблице появляется следующее:

и если у меня есть отказ отправки, журнал регистрирует это

Существуют ли другие экземпляры того, как записи могут регистрироваться, если сбой отправки или успешная передача? Например, возможно ли, что есть 4 строки записей для отправки (2 прилагается, когда он был запущен и когда он закрывается, и 2 заключенных, в которых сообщение электронной почты было успешно отправлено). Я не нашел записей журналов, которые отличались от приведенного выше шаблона, но хотелось бы убедиться, прежде чем писать логику на основе этого предположения.