Агент SQL запускает процедуру для успешной отправки электронной почты, но электронная почта не приходит

#sql #sql-server #ssms #sql-agent-job

Вопрос:

В основном у меня есть ЗАДАНИЕ SQL , которое запускает процедуру, ответственную за выполнение запроса и отправку электронного письма, с msdb.dbo.sp_send_dbmail помощью которой, когда я запускаю процедуру, все работает по назначению, и электронное письмо доставляется. Но когда я создал задание в агенте SQL, jos успешно выполняется, но электронное письмо не доставляется.

Рассматриваемая процедура заключается в следующем:

 EXEC msdb.dbo.sp_send_dbmail   @profile_name = 'Active_users',   @recipients = 'teste0@teste.com;teste1@teste.com',   @subject = 'List',  @body = 'Users',  @query = 'SELECT Top 1000   [caller_id]  ,[session_start_dt]  ,[session_end_dt]  ,[caller_address]  ,[caller_type]  FROM [database].[db].[teste1]  where session_end_dt IS NULL  order by caller_id desc' ,  @attach_query_result_as_file = 1,  @query_attachment_filename = 'users.csv',  @query_result_header = 1,  @query_result_no_padding = 1,  @exclude_query_output = 1;   

Моим первым, однако, была проблема с разрешениями, из-за которой у пользователя SQLAgtAct не было доступа к рассматриваемой базе данных, но у нее есть и есть роль db_datareader , db_datawriter , db_ddladmin . Я не знаю, нужно ли пользователю SQLAgtAct больше разрешений, чем это, так как задание выполняется успешно.

Комментарии:

1. Имеет ли учетная запись службы агента SQL Server DatabaseMailUserRole эту роль и является Active_users ли профиль общедоступным, или у нее [учетной записи службы] есть разрешение на отправку электронных писем из этого профиля?

2. Вы смотрели на msdb.dbo.sysmail_event_log это ?

3. Также просмотрите историю заданий агента, чтобы узнать, есть ли ошибки.