Database Mail
Применимо к:Управляемому экземпляру SQL Server Azure
Database Mail — это корпоративное решение для отправки сообщений электронной почты из ядра СУБД SQL Server или Управляемого экземпляра SQL Azure. Приложения могут отправлять сообщения электронной почты пользователям с помощью Database Mail через внешний SMTP-сервер. Сообщения могут содержать результаты запроса, а также могут включать файлы из любого сетевого ресурса.
Заметка
Компонент Database Mail доступен в ядре СУБД SQL Server и Управляемом экземпляре SQL Azure, но не в одноэлементных и эластичных пулах базы данных SQL Azure. Дополнительные сведения об использовании компонента Database Mail в Управляемом экземпляре SQL Azure см. в статье "Автоматизация задач управления с помощью заданий агента SQL в Управляемом экземпляре SQL Azure".
Преимущества использования компонента Database Mail
Компонент Database Mail спроектирован для надежности, масштабируемости, безопасности и простой поддержки.
Надежность
Для отправки почты компонент Database Mail использует простой протокол доставки сообщений (SMTP). Компонент Database Mail можно использовать без установки расширенного клиента MAPI на компьютере под управлением SQL Server.
Изоляция процесса. Чтобы свести к минимуму влияние на SQL Server, компонент, предоставляющий электронную почту, выполняется за пределами SQL Server в отдельном процессе. SQL Server продолжит очередь сообщений электронной почты, даже если внешний процесс останавливается или завершается сбоем. Поставленные в очередь сообщения будут отосланы, как только внешний процесс или SMTP-сервер перейдет в состояние «в сети».
Учетные записи отработки отказа. Профиль компонента Database Mail позволяет указать более одного SMTP-сервера. Если SMTP-сервер будет недоступен, почта может быть доставлена другому SMTP-серверу.
Поддержка кластера. Компонент Database Mail является ориентированным на кластеры и полностью поддерживается кластером.
Масштабируемость
Фоновая доставка. Компонент Database Mail обеспечивает фоновую или асинхронную доставку. При вызове
sp_send_dbmail
для отправки сообщения Компонент Database Mail добавляет запрос в очередь Service Broker. Хранимая процедура возвращается немедленно. Внешний компонент электронной почты получает запрос и доставляет электронную почту.Несколько профилей: Database Mail позволяет создавать несколько профилей в экземпляре SQL Server. Дополнительно можно выбрать профиль, который будет использовать компонент Database Mail при отправке сообщения.
Множество учетных записей. Каждый профиль может содержать множество учетных записей отработок отказов. Можно настроить различные профили с различными учетными записями для распределения электронной почты через несколько почтовых серверов.
64-разрядная совместимость. Компонент Database Mail полностью поддерживается на 64-разрядных установках SQL Server.
Безопасность
Отключен по умолчанию: чтобы уменьшить область поверхности SQL Server, хранимые процедуры Database Mail отключены по умолчанию.
Безопасность почты.Чтобы отправить database Mail, необходимо быть членом роли базы данных DatabaseMailUserRole в
msdb
базе данных.Безопасность профиля. Компонент Database Mail определяет безопасность для профилей почты. Вы выбираете
msdb
пользователей или группы базы данных, имеющие доступ к профилю Database Mail. Вы можете предоставить доступ определенным пользователям или всем пользователямmsdb
. Закрытый профиль ограничивает доступ к указанному списку пользователей. Открытый профиль доступен для всех пользователей в базе данных.Регулятор размера вложения. Компонент Database Mail определяет настраиваемое ограничение на размер файла вложения. Это ограничение можно изменить с помощью хранимой процедуры sysmail_configure_sp .
Запрещенные расширения файлов. Компонент Database Mail поддерживает список запрещенных расширений файлов. Пользователи не могут прикреплять файлы с расширением, указанным в списке. Этот список можно изменить с помощью хранимой процедуры sysmail_configure_sp.
Компонент Database Mail выполняется под учетной записью службы ядра SQL Server. Чтобы присоединить файл из папки к электронной почте, учетная запись подсистемы SQL Server должна иметь разрешения на доступ к папке с файлом.
Возможность поддержки
Интегрированная конфигурация: Database Mail сохраняет сведения о учетных записях электронной почты в ядро СУБД SQL Server. Нет необходимости управлять профилем почты во внешнем приложении-клиенте. Мастер настройки компонента Database Mail обеспечивает удобный интерфейс для настройки компонента Database Mail. Вы также можете создавать конфигурации компонента Database Mail и поддерживать их с помощью Transact-SQL.
ведение журналов. Database Mail регистрирует действия электронной почты в SQL Server, журнал событий приложения Microsoft Windows и таблицы в
msdb
базе данных.Аудит: Database Mail сохраняет копии сообщений и вложений, отправленных в
msdb
базу данных. Можно легко проводить аудит использования компонента Database Mail и просматривать сохраненные сообщения.Поддержка HTML. Компонент Database Mail позволяет посылать электронную почту в формате HTML.
Структура компонента Database Mail
Компонент Database Mail спроектирован по принципу очереди на основе технологий компонента Service Broker. При выполнении sp_send_dbmail
хранимой процедуры вставляет элемент в очередь почты и создает запись, содержащую сообщение электронной почты. При вставке новой записи в почтовую очередь запускается внешний процесс компонента Database Mail (DatabaseMail.exe). Внешний процесс считывает данные электронной почты и отправляет сообщение электронной почты соответствующему серверу или серверам электронной почты. Внешний процесс вставляет элемент в очередь состояния в соответствии с результатами операции отправки. При вставке новой записи в очередь состояний запускается внутренняя хранимая процедура, которая выполняет обновление состояния электронного сообщения. Кроме сохранения отправленного (или неотправленного) сообщения электронной почты, компонент Database Mail также записывает в системные таблицы все вложения. Представления компонента Database Mail содержат сведения о состоянии сообщений для диагностики и устранения неполадок в работе, а хранимые процедуры позволяют администрировать очередь компонента Database Mail.
Общие сведения о компонентах Database Mail
Компонент Database Mail состоит из следующих основных компонентов.
Компоненты настройки и безопасности
Database Mail хранит сведения о конфигурации и безопасности в
msdb
базе данных. Объекты настройки и безопасности создают профили и учетные записи, используемые компонентом Database Mail.Компоненты обмена сообщениями
База
msdb
данных выступает в качестве базы данных узла почты, в которой хранятся объекты обмена сообщениями, которые database Mail использует для отправки электронной почты. К этим объектам относятсяsp_send_dbmail
хранимая процедура и структуры данных, содержащие сведения о сообщениях.Исполняемый файл компонента Database Mail
Исполняемый файл Database Mail — это внешняя программа, которая считывает из очереди в
msdb
базе данных и отправляет сообщения на почтовые серверы.Компоненты протоколирования и контроля
Данные журнала компонента Database Mail записываются в
msdb
базе данных и журнале событий приложения Microsoft Windows.
Настройка агента SQL для использования компонента Database Mail
Агент SQL Server можно настроить использование компонента Database Mail. Это необходимо для рассылки уведомлений о предупреждениях и автоматических уведомлений о завершении заданий.
Предупреждение
Отдельные действия задания в задании также могут отправлять сообщения электронной почты без настройки агента SQL Server для использования компонента Database Mail. Например, шаг задания Transact-SQL может использовать Компонент Database Mail для отправки результатов запроса в список получателей.
Агент SQL Server можно настроить для отправки сообщений электронной почты предопределенным операторам, когда:
Создается предупреждение. Предупреждения могут быть настроены таким образом, чтобы при возникновении определенных событий по электронной почте посылались уведомления. Например, предупреждения могут быть настроены на уведомление оператора о возникновении в базе данных определенного события или о формировании в операционной системе условий, которые требуют немедленных действий. Дополнительные сведения о настройке предупреждений см. в разделе Предупреждения.
Запланированная задача, например резервное копирование базы данных или репликация, выполнена удачно или с ошибкой. Например, можно использовать службу "Почта агента SQL Server" для уведомления операторов о возникновении ошибки во время обработки в конце месяца.
См. также
- Объекты конфигурации компонента Database Mail
- Объекты обмена сообщениями компонента Database Mail
- Внешняя программа компонента Database Mail
- Ведение журнала и аудит компонента Database Mail