Недавно я работал на SQL Server, выполняя некоторые настройки и тестирование Database Mail (см. Microsoft Docs) с одним из наших приложений. Мне нужен был способ увидеть, какие электронные письма были отправлены, а какие нет. нижеприведенные запросы дадут вам информацию, которую я искал, первый из них показывает любые элементы, которые прошли через Database Mail, и их детали за последний день (Вы можете настроить оператор WHERE в соответствии с вашими потребностями. Вы можете запустить их через MSDB, выбрав его или используя инструкцию USE MSDB.
<ya-tr-span data- index = "6-0" data-value= "SELECT p.name, i.send_request_date, i.sent_date, i.recipients, i.subject, i.body
" data- translation = "Выберите p.name, i. send_request_date, i. sent_date, i.recipients, i. subject, i. body
" data-type= "trSpan" >Выберите p. name , i. send_request_date, i. sent_date, i.recipients, i. subject, i. body
</ya-tr-span><ya-tr-span data- index = "6-1" data-value= "FROM sysmail_mailitems AS i inner join sysmail_profile as p on p.profile_id = i.profile_id
" data- translation = "FROM sysmail_mailitems AS i inner join sysmail_profile as p on p. profile_id = i. profile_id
" data-type= "trSpan" > FROM sysmail_mailitems AS i inner join sysmail_profile as p on p. profile_id = i. profile_id
</ya-tr-span><ya-tr-span data- index = "6-2" data-value= "WHERE sent_date > DATEADD(DAY, -1,GETDATE())
" data- translation = "Где sent_date > DATEADD(DAY, -1, GETDATE())
" data-type= "trSpan" >Где sent_date > DATEADD( DAY , -1, GETDATE())
</ya-tr-span>
|
Имейте в виду, что я использую псевдонимы, чтобы немного сократить запрос . Теперь этот запрос просто показывает неудачные элементы, а также ответы на ошибки, если таковые имеются, с почтового сервера.
SELECT i.subject, i.recipients, i.copy_recipients, i.blind_copy_recipients, i.last_mod_date, l.description
FROM sysmail_failedi AS i LEFT OUTER JOIN sysmail_event_log AS l ON i.mailitem_id = l.mailitem_id
WHERE (i.last_mod_date > DATEADD( DAY , - 1, GETDATE()))
|
Надеюсь, вам это поможет.