Я просмотрел весь интернет, но не смог найти решение.Есть ли способ автоматически отправлять отчеты по электронной почте с помощью SQL Server Express Edition?Мне удалось настроить свой сервер, и он отправляет электронную почту, если я запускаю код вручную, но он мне нужен для отправки электронной почты один раз в неделю.
Вот пример моего сценария:
exec msdb.dbo.sp_send_dbmail
@profile_name = 'MailTest3',
@recipients = 'a@aaa.com',
@subject = 'Mail Test 2',
@body = 'Mail Sent Successfully',
@body_format = 'text'
Я настроил все как Андрей Николов в предложенном ниже комментарии, но это не сработало.Электронные письма не отправлялись автоматически.
После проверки журналов я обнаружил следующее сообщение:
Отказано в разрешении EXECUTE для объекта 'sp_send_dbmail', базы данных 'msdb', схемы 'dbo'.as
Так что похоже на проблему с разрешением.Но при попытке предоставить пользователю dbo разрешения с помощью скрипта
EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole'
,@membername = 'db_username';
GO
я получил сообщение, что этого пользователя не удалось найти:
Сообщение 15410, уровень 11, состояние 1, процедураmsdb.dbo.sp_addrolemember, строка 35 [Batch Start Line 0] Пользователь или роль 'db_username' не существует в этой базе данных.
Этот сценарий работал только после того, как я пытался использовать пользователя домена.
И файл * .bat начал работать только после того, как я запустил его с пользователем домена
sqlcmd -S localhost -E -Q "EXEC Send_email_Friday" -o "C:\Log_email.txt"