Поделиться через


Компонент Database Mail

Компонент Database Mail — это решение уровня предприятия для отправки сообщений электронной почты от компонента Компонент SQL Server Database Engine. Используя компонент Database Mail, приложения базы данных могут отправлять почтовые сообщения пользователям. Сообщения могут содержать результаты запроса, а также могут включать файлы из любого сетевого ресурса.

В этом разделе.

  • Преимущества использования компонента Database Mail

  • Структура компонента Database Mail

  • Общие сведения о компоненте Database Mail

  • См. также

Преимущества использования компонента 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.

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

Агент SQL Server можно настроить использование компонента Database Mail. Это необходимо для рассылки уведомлений о предупреждениях и автоматических уведомлений о завершении заданий.

ПредупреждениеВнимание!

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

Агент SQL Server может быть настроен на пересылку сообщений электронной почты заранее заданным операторам, если

  • Создается предупреждение. Предупреждения могут быть настроены таким образом, чтобы при возникновении определенных событий по электронной почте посылались уведомления. Например, предупреждения могут быть настроены на уведомление оператора о возникновении в базе данных определенного события или о формировании в операционной системе условий, которые требуют немедленных действий. Дополнительные сведения о настройке предупреждений см. в разделе Предупреждения.

  • Запланированная задача, например резервное копирование базы данных или репликация, выполнена удачно или с ошибкой. Например, почта агента SQL Server может использоваться для уведомления операторов о возникновении ошибки во время обработки в конце месяца.

[В начало]

Руководства по компоненту Database Mail

[В начало]