Database Mail
Применимо к: SQL Server Управляемый экземпляр SQL Azure
Компонент Database Mail — это решение уровня предприятия для отправки сообщений электронной почты из компонента Компонент SQL Server Database Engine или Управляемого экземпляра SQL Azure. Приложения могут отправлять сообщения электронной почты пользователям с помощью Database Mail через внешний SMTP-сервер. Сообщения могут содержать результаты запроса, а также могут включать файлы из любого сетевого ресурса.
Примечание
Database Mail доступно в SQL Server компоненте Database Engine и Управляемый экземпляр SQL Azure, но не в одноэлементных и эластичных пулах базы данных Azure SQL. Дополнительные сведения об использовании Database Mail в Управляемый экземпляр SQL Azure см. в статье Автоматизация задач управления с помощью заданий агента SQL в Управляемый экземпляр SQL Azure.
Преимущества использования компонента Database Mail
Компонент Database Mail спроектирован для надежности, масштабируемости, безопасности и простой поддержки.
Надежность
Для отправки почты компонент Database Mail использует простой протокол доставки сообщений (SMTP). Можно использовать компонент Database Mail, не устанавливая клиент Extended 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 Engine. Для присоединения к письму файла из папки учетная запись компонента SQL Server Engine должна иметь разрешения на доступ к папке, в которой содержится этот файл.
Возможности поддержки
Интегрированная конфигурация. Компонент Database Mail позволяет использовать сведения учетных записей электронной почты в компоненте Компонент SQL Server Database Engine. Нет необходимости управлять профилем почты во внешнем приложении-клиенте. Мастер настройки компонента 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