Оповещения компонента Database Mail и электронной почты с агент SQL Server в Linux
Область применения: SQL Server — Linux
В этой статье показано, как настроить компонент Database Mail и использовать его с агент SQL Server (mssql-server-agent) в Linux.
1. Включение компонента Database Mail
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXECUTE sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE;
GO
2. Создание учетной записи
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'SQLAlerts',
@description = 'Account for Automated DBA Notifications',
@email_address = 'sqlagenttest@example.com',
@replyto_address = 'sqlagenttest@example.com',
@display_name = 'SQL Agent',
@mailserver_name = 'smtp.example.com',
@port = 587,
@enable_ssl = 1,
@username = 'sqlagenttest@example.com',
@password = '<password>';
GO
Внимание
Пароль должен соответствовать политике паролей по умолчанию SQL Server. По умолчанию пароль должен быть не короче восьми символов и содержать три вида символов из следующих: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.
3. Создание профиля по умолчанию
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'default',
@description = 'Profile for sending Automated DBA Notifications';
GO
4. Добавление учетной записи Database Mail в профиль Database Mail
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'default',
@principal_name = 'public',
@is_default = 1;
GO
5. Добавление учетной записи в профиль
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'default',
@account_name = 'SQLAlerts',
@sequence_number = 1;
GO
6. Отправка тестового сообщения электронной почты
Возможно, вам придется перейти к клиенту электронной почты и разрешить менее безопасные клиенты отправлять почту . Не все клиенты распознают Database Mail в качестве управляющей программы электронной почты.
EXECUTE msdb.dbo.sp_send_dbmail
@profile_name = 'default',
@recipients = 'recipient-email@example.com',
@subject = 'Testing DBMail',
@body = 'This message is a test for DBMail';
GO
7. Настройка профиля Database Mail с помощью mssql-conf или переменной среды
Вы можете использовать служебную программу mssql-conf или переменные среды для регистрации профиля Database Mail. В этом случае давайте вызовем наш профиль default
.
Установите с помощью mssql-conf:
sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile default
Задать с помощью переменной среды:
MSSQL_AGENT_EMAIL_PROFILE=default
8. Настройка оператора для уведомлений о задании агент SQL Server
EXECUTE msdb.dbo.sp_add_operator
@name = N'JobAdmins',
@enabled = 1,
@email_address = N'recipient-email@example.com',
@category_name = N'[Uncategorized]';
GO
9. Отправка сообщения электронной почты при успешном выполнении задания агента
EXECUTE msdb.dbo.sp_update_job
@job_name = 'Agent Test Job',
@notify_level_email = 1,
@notify_email_operator_name = N'JobAdmins';
GO