====== MS SQL: Настройка отправки почты Database Mail ====== Что нужно: * MS SQL Server Management Studio (SSMS): https://docs.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms * Если пользуемся почтовыми сервисами (например mail.ru) - создать пароль приложения. Пароль от почтового аккаунта в таком случае не подойдет. Если используется свой почтовый сервере и/или поддерживающий анонимную отправку - этот пункт можно пропустить. Настройка выполняется в два этапа: * Настройка Database Mail * Настройка SQL Server Agent ===== Настройка Database Mail ===== Запускаем SQL Server Management Studio (SSMS), подключаемся к MS SQL серверу и далее все делаем в нем. * Щелкаем правой кнопкой мыши на Management / Database Mail и выбираем "Configure Database Mail" * Нас интересует первый пункт: "Set up Database Mail by performing the following task" * Заполняем поля "Account name" и "Description" * Добавляем учетную запись для SMTP. Для Mail.ru настройки следующие: * Сервер: smtp.mail.ru * Порт: 587 * Включить "This server requires a secure connection (SSL)" * Если есть - заполняем логин и пароль * Так же при желании можно добавить несколько учетных записей и установить для них приоритет * Проходим далее по мастеру, закрываем его и проверяем корректность отправкой тестового письма ===== Настройка SQL Server Agent ===== * Добавляем Оператора через меню SQL Server Agent / Operators * Щелкаем правой кнопкой мыши на SQL Server Agent и выбираем Properties / Alert System * В открывшейся настройке включаем: * Enable mail profile * Выбираем ваш Mail profile * Включаем "Include body of e-mail in notification message" * Перезапускаем SQL Server Agent ===== Отправляем письмо с результатами работы скрипта в виде вложения ===== Создаем Job, добавляем Step с типом "Transact-SQL Script (T-SQL)" (в примере подсчитывается суммарный размер баз): EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQLAlerts', @recipients = 'MY-EMAIL@mail.ru', @body = 'DB Size for Server', @subject = 'DB Size for Server', @attach_query_result_as_file = 1, @query_attachment_filename = 'Server-DB-Size.csv', @query_result_header = 1, @query_result_width = 256, @query_result_separator = ',', @exclude_query_output = 1, @append_query_error = 1, @query_no_truncate = 0, @query_result_no_padding = 1, @query = 'SELECT sys.databases.name AS [Database Name],CONVERT(VARCHAR,SUM(size)*8/1024) AS ["Size (MB)"] FROM sys.databases JOIN sys.master_files ON sys.databases.database_id=sys.master_files.database_id GROUP BY sys.databases.name ORDER BY sys.databases.name;'; Необходимо правильно указать имя профиля @profile_name, получателя @recipients и т.д. {{tag>mssql database mail send_main}}