У меня есть несколько (12) хранимых процедур, которые запрограммированы как шаги в задании, которое выполняется каждую ночь. Каждая хранимая процедура отправляет результаты запроса нескольким получателям. На самом деле существует 4 процедуры, каждая из которых связана с одной из трех баз данных и различным набором получателей, всего 12 процедур. Один из адресов электронной почты получателя стал недействительным. Когда это произошло, одна (но только одна!) из четырех процедур начала генерировать повторяющиеся электронные письма.
Я понимаю из хранимую процедуру с использованием отправки SP_SEND_DBMAIL дублировать электронные письма всем получателям, что недействительный адрес электронной почты может инициировать повторные попытки. Итак, я удалил проблемный адрес, а также уменьшил количество повторных попыток учетной записи до 0 в конфигурации DBMail. Но электронные письма все еще генерируются. Они отправляются на недействительный адрес электронной почты, который был удален, а также другим получателям.
Если я запускаю задание вручную, дубликаты не создаются. Я попытался удалить и заново создать задание, но проблема не устранена. Я изменил расписание задания, чтобы отправить его в другое время — повторяющиеся электронные письма отправляются одновременно с исходным расписанием, даже если оно было удалено. Глядя на историю работы / почты, оскорбительные электронные письма НЕ появляются.
Это какой-то баг? SQL процедуры показан ниже для справки:
DECLARE @qry varchar(2000)
SET @qry = 'SELECT Fields FROM TABLE WHERE Conditions'
SET NOCOUNT ON
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Example Email',
@from_address = '[email protected]',
@recipients = '[email protected]; [email protected]',
@subject = 'SubjectLine',
@body = 'BodyText',
@query = @qry;