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.

msdb отправляет сообщения на почтовый smtp-сервер

Общие сведения о компонентах 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 может использоваться для уведомления операторов о возникновении ошибки во время обработки в конце месяца.

См. также раздел

Дальнейшие действия