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.

msdb sends messages to an SMTP mail server

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

См. также

Далее