Как настроить database mail

Настройка почты агента SQL Server на использование компонента Database Mail

Применимо к: SQL Server (все поддерживаемые версии)

В этом разделе описывается настройка в агенте SQL Server использования компонента Database Mail для отправки уведомлений и предупреждений в SQL Server с помощью среды SQL Server Management Studio. Сведения о включении и настройке компонента Database Mail см. в разделе Настройка компонента Database Mail. Пример использования Transact-SQLсм. в разделе Создание профиля компонента Database Mail.

Перед началом работы

Перед началом

Агент SQL в Управляемом экземпляре всегда настроен для использования компонента Database Mail, поэтому это содержимое неприменимо к Управляемому экземпляру. В Управляемом экземпляре должен быть профиль с именем AzureManagedInstance_dbmail_profile для привязки агента SQL Server к Database Mail.

Предварительные требования

Создать профиль компонента Database Mail для учетной записи агента SQL Server , чтобы сделать пользователя членом роли DatabaseMailUserRole в базе данных msdb .

Сделать профиль используемым по умолчанию в базе данных msdb .

безопасность

Permissions

Пользователь, создающий учетные записи профилей и выполняющий хранимые процедуры, должен быть членом предопределенной роли сервера sysadmin.

Использование среды SQL Server Management Studio

Настройка агента SQL Server на использование компонента Database Mail

Разверните экземпляр сервера SQL Server в обозревателе объектов.

Щелкните правой кнопкой мыши агент SQL Server, затем выберите Свойства.

Нажмите Система предупреждений.

Выберите Включить почтовый профиль.

В списке Почтовая система выберите Компонент Database Mail.

В Списке почтовых профилей выберите почтовый профиль для компонента Database Mail.

Перезапустите агент SQL Server.

Задачи дополнительной работы

Следующие задачи необходимо выполнить для завершения конфигурации агента на отправку предупреждений и уведомлений.

Предупреждения могут быть настроены на уведомление оператора о возникновении в базе данных определенного события или о формировании в операционной системе определенных условий.

Операторы — это псевдонимы для людей или групп, которые могут получать электронные уведомления.

Источник

Настройка компонента Database Mail в Microsoft SQL Server

Сегодня в материале мы с Вами рассмотрим компонент Database Mail входящий в состав Microsoft SQL Server, мы узнаем, что это за компонент, как его настроить и, конечно же, как им пользоваться.

Что такое Database Mail в MS SQL Server?

Database Mail – это компонент Microsoft SQL Server, который используется для отправки электронных писем самим SQL сервером.

Он появился в MS SQL Server 2005 и доступен в более поздних версиях. До появления Database Mail в SQL сервере существовал компонент SQLMail, который для отправки электронной почты использовал клиент Microsoft Outlook, не входящий в состав SQL Server. Компонент Database Mail взаимодействует с почтовым сервером (SMTP) уже напрямую.

Читайте также:  Как настроить обогащение смеси на карбюраторе ваз 2109

Основные возможности Database Mail

К основным возможностям компонента Database Mail относятся:

  • Отправка электронных писем без стороннего клиента;
  • Возможность вставлять в письмо результаты запроса;
  • Возможность вкладывать файлы в письмо;
  • Можно указывать важность сообщения;
  • Письма можно посылать сразу на несколько адресов, а также можно указывать адреса, на которые посылать копию;
  • Возможность выбора формата письма TEXT или HTML;
  • Аудит и ведение журнала отправленных писем;
  • Возможность создания множества профилей Database Mail, а также указывать более одного SMTP-сервера;
  • Взаимодействие с агентом SQL сервера;
  • Возможность ограничивать размер вложений и указывать запрещенные к отправке расширения файлов.

Компонент Database Mail можно использовать в следующих случаях:

  • Для отправки сообщений пользователям;
  • Для уведомления самого себя, т.е. администратора о различных событиях, произошедших на SQL сервере (выполнение задач, возникновение ошибок).

Настройка компонента Database Mail в MS SQL Server

Для начала хотелось бы сказать, что настраивать Database Mail я буду на примере Microsoft SQL Server 2008 R2. Нижеописанный процесс настройки характерен и для других версий MS SQL сервера, начиная с MS SQL Server 2005.

Прежде чем переходить к настройке Database Mail, необходимо проверить следующее:

  • У Вас нужной версии SQL сервер, 2005 или выше (в редакции Express компонента Database Mail нет);
  • У Вас есть работающий SMTP сервер и соответствующие настройки этого сервера для отправки писем;
  • Вы являетесь членом группы sysadmin на SQL сервере, так как только члены этой группы могут производить настройку Database Mail;
  • Отправкой писем в SQL Server занимается программа DatabaseMail.exe (или DatabaseMail90.exe). По умолчанию она расположена в каталоге «C:\Program Files\Microsoft SQL Server\…\MSSQL\Binn\». Если у Вас настроен брандмауэр, то в нем необходимо для этой программы разрешить исходящий трафик;
  • Также необходимо проверить, включен ли Service Broker на базе ‘msdb’, он необходим для создания очередей писем, используемых компонентом Database Mail, и в случае если он выключен включить его. Это можно сделать, выполнив следующую SQL инструкцию.

Настроить компонент Database Mail на SQL сервере можно разными способами, а именно с использованием среды SQL Server Management Studio и с помощью инструкций T-SQL, мы с Вами рассмотрим оба.

Настройка Database Mail с помощью среды Management Studio

Шаг 1

Открываем Management Studio, в обозревателе объектов открываем объект «Управление» и нажимаем правой кнопкой мыши по пункту «Компонент Database Mail», затем в появившемся меню щелкаем по пункту «Настроить компонент Database Mail».

Шаг 2

В итоге запустится мастер настройки компонента Database Mail, жмем «Далее».

Шаг 3

Затем мы должны будем выбрать задачу по настройке, но настроек пока нет никаких, так как компонент Database Mail мы настраиваем впервые, соответственно выбираем пункт «Установить Database Mail, выполнив следующие задачи», жмем «Далее».

После этого, скорей всего, SQL Server скажет нам, что компонент Database Mail выключен и предложит нам его включить, жмем «Да». Если данного сообщения не появилось, значит, Database Mail был включен ранее.

Читайте также:  Как настроить imap протокол

Шаг 4

На этом шаге нам необходимо создать профиль, указываем его название (я его назвал TestProfile) и, если хотим, описание этого профиля. Также здесь нам нужно добавить учетную запись SMTP сервера, для этого используем кнопку «Добавить».

Шаг 5

И так как учетных записей SMTP сервера в Database Mail у нас нет вообще, у нас сразу откроется окно создания новой учетной записи. Вводим настройки SMTP сервера и нажимаем «OK» (я для примера указал имя учетной записи TestAccount, остальные настройки на скриншоте несуществующие).

Шаг 6

После чего в списке учетных записей SMTP отобразится наша только что созданная учетная запись (в моем случае TestAccount), жмем «Далее».

Шаг 7

А далее мы попадаем в окно настроек безопасности. Здесь на вкладке «Личные профили» мы можем назначить каждому пользователю свой личный профиль. В моем случае этого делать не нужно, мы просто созданный нами ранее профиль делаем открытым и говорим, что он будет по умолчанию, жмем «Далее».

Шаг 8

Затем мы можем настроить системные параметры компонента Database Mail. По названию этих параметров можно определить, за что они отвечают, при необходимости изменяем параметры, и жмем «Далее».

Шаг 9

Это последний шаг, в котором мастер нам выводит список действий, которые будут сейчас выполнены, жмем «Готово».

В итоге будут выполнены все запланированные действия и выведен лог этих действий, жмем «Закрыть».

На этом настройка компонента Database Mail с помощью Management Studio закончена.

Настройка Database Mail с помощью хранимых процедур языка T-SQL

Ниже я представил скрипт, который выполняет такие же действия, как и те действия, которые мы выполняли в графическом интерфейсе чуть ранее. В него я также добавил инструкцию, которая проверяет, включен ли Service Broker на базе msdb.

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

Отправка тестового сообщения

После того как настройка компонента Database Mail закончена, можно проверить его работоспособность путем отправки тестового сообщения. Для более быстрой проверки в среде Management Studio предусмотрен специальный функционал, а именно в обозревателе объектов щелкаем правой кнопкой мыши по компоненту Database Mail и выбираем «Отправить тестовое сообщение…». Затем указываем, кому и жмем «Отправить тестовое сообщение». Если сообщение придет, то это значит, что компонент Database Mail работает.

Для того чтобы пользователь мог сам отправлять почту с помощью компонента Database Mail, необходимо чтобы он был членом роли DatabaseMailUserRole в базе данных msdb. Для добавления пользователю роли можно использовать процедуру sp_addrolemember, например

Объекты SQL сервера для работы с Database Mail

Для работы с компонентом SQL Server Database Mail существует достаточно много полезных объектов на SQL сервере (процедур, представлений) с помощью которых мы можем: отправлять письма, смотреть журнал отправленных писем, а также настраивать сам компонент Database Mail.

Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.

Хранимая процедура для отправки писем msdb.dbo.sp_send_dbmail

И начну я, конечно же, с той процедуры, которая позволяет нам отправлять письма – это msdb.dbo.sp_send_dbmail. Ниже я представил SQL инструкцию, в которой отправляю тестовое сообщение, с описанием параметров.

Читайте также:  Как настроить значки внизу экрана на телефоне андроид

Хранимые процедуры для настройки системных параметров Database Mail: sysmail_configure_sp и sysmail_help_configure_sp

Помните, на этапе настройки компонента Database Mail через Management Studio, у нас была возможность настройки системных параметров, так вот эти параметры можно изменить с помощью процедуры msdb.dbo.sysmail_configure_sp. Процедура msdb.dbo.sysmail_help_configure_sp показывает текущие значения системных параметров. Для примера давайте изменим значение максимального размера вложения на 2 мегабайта.

Системные представления sysmail_allitems, sysmail_sentitems и sysmail_event_log

При работе с электронной почтой в частности с компонентом Database Mail возникает необходимость узнать такие сведения как: какие сообщения были отправлены, когда они были отправлены, какой их статус, а также посмотреть реквизиты всех этих сообщений.

Для этого в SQL сервере существуют специальные представления, которые предоставляют нам всю эту информацию:

  • msdb.dbo.sysmail_allitems — просмотр всех сообщений;
  • msdb.dbo.sysmail_sentitems – просмотр только отправленных сообщений;
  • msdb.dbo.sysmail_unsentitems — просмотр неотправленных сообщений;
  • msdb.dbo.sysmail_faileditems – просмотр сообщений с ошибками;
  • msdb.dbo.sysmail_event_log – журнал работы компонента Database Mail.

Например, для просмотра всех отправленных сообщений можно использовать следующий запрос:

Другие хранимые процедуры для работы с компонентом Database Mail

Также еще существуют и другие хранимые процедуры для работы с компонентом Database Mail, а именно (некоторые процедуры мы уже использовали в процессе настройки компонента):

  • msdb.dbo.sysmail_add_profile_sp — создает новый профиль компонента Database Mail;
  • msdb.dbo.sysmail_update_profile_sp — изменят профиль;
  • msdb.dbo.sysmail_delete_profile_sp — удаляет профиль;
  • msdb.dbo.sysmail_help_profile_sp — показывает существующие профили Database Mail;
  • msdb.dbo.sysmail_add_account_sp — создает новую учетную запись компонента Database Mail;
  • msdb.dbo.sysmail_update_account_sp — изменят учетную запись;
  • msdb.dbo.sysmail_delete_account_sp — удаляет учетную запись;
  • msdb.dbo.sysmail_help_account_sp — показывает существующие учетные записи Database Mail;
  • msdb.dbo.sysmail_add_profileaccount_sp — подключает учетную запись к профилю компонента Database Mail;
  • msdb.dbo.sysmail_update_profileaccount_sp — обновляет порядковый номер учетной записи в профиле компонента Database Mail.
  • msdb.dbo.sysmail_delete_profileaccount_sp — удаляет учетную запись из профиля;
  • msdb.dbo.sysmail_help_profileaccount_sp – показывает привязки между учетными записями и профилями;
  • msdb.dbo.sysmail_add_principalprofile_sp – предоставляет необходимые права доступа к профилю Database Mail
  • msdb.dbo.sysmail_update_principalprofile_sp — обновляет данные о взаимосвязи между пользователем или ролью базы данных и профилем;
  • msdb.dbo.sysmail_delete_principalprofile_sp — удаляет разрешение пользователя или роли базы данных на использование компонента Database Mail;
  • msdb.dbo.sysmail_help_principalprofile_sp — показывает взаимосвязи между профилями компонента Database Mail и участниками базы данных;
  • msdb.dbo.sysmail_help_status_sp — показывает состояние компонента Database Mail;
  • msdb.dbo.sysmail_start_sp – запускает компонент;
  • msdb.dbo.sysmail_stop_sp – останавливает компонент;
  • msdb.dbo.sysmail_delete_log_sp — очищает журнал компонента Database Mail;
  • msdb.dbo.sysmail_delete_mailitems_sp — удаляет сообщения электронной почты из внутренних таблиц Database Mail.

Более подробную информацию об объектах SQL сервера для работы с компонентом Database Mail можете найти в официальной технической документации.

На этом у меня все, надеюсь, материал был Вам полезен, пока!

Источник

Поделиться с друзьями
Инструкции360