SQLiMail SQL Server 2005 mail architecture
Назначение Автоматическая отправка отчетов Автоматическая отправка отчетов Состояние базы данных Состояние базы данных Аналитические выборки Аналитические выборки Оповещение о наступлении какого-либо события Оповещение о наступлении какого-либо события Откладывание определенного действия или перенос его на другой уровень обработки Откладывание определенного действия или перенос его на другой уровень обработки
Обзор Замена SQL Mail Замена SQL Mail Независимость от Outlook Независимость от Outlook Ассинхронность Ассинхронность Безопастность Безопастность Запрещенные расширения файлов Запрещенные расширения файлов Проверка размера файлов Проверка размера файлов Расширяемость Расширяемость Множество учетных записей Множество учетных записей Множество mail host databases Множество mail host databases Сопровождение Сопровождение Аудит Аудит Сохранение всех отправленных сообщений Сохранение всех отправленных сообщений Мониторинг Мониторинг Удобный wizard Удобный wizard
Архитектура Компоненты Компоненты База данных SQLiMail База данных SQLiMail База данных msdb База данных msdb Service Broker Service Broker SQLiMail90.exe SQLiMail90.exe Последовательность Последовательность 1. Пользователь выполняет sendimail_sp 2. Формируется xml-документ, описывающий сообщение, копия документа сохраняется в sysmail_mailitems 3. Документ помещается в очередь 4. Активируется процесс SQLiMail.exe 5. Процесс SQLiMail.exe a) читает документ из очереди b) собирает информацию о пользователе из msdb c) Формирует SMTP пакет и отправляет его на SMTP сервер 6. Процесс SQLiMail.exe получает ответ от SMTP сервера и сохраняет его в таблицу sysmail_log
Функциональность С помощью SQLiMail можно отправлять письма со следующими параметрами С помощью SQLiMail можно отправлять письма со следующими параметрами Получатели Получатели Получатели копии Получатели копии Скрытые получатели копии Скрытые получатели копии Важность письма Важность письма Тело сообщения может быть двух типов: text и html Тело сообщения может быть двух типов: text и html В письмо можно вкладывать файлы и результаты исполнения определенных T-SQL команд В письмо можно вкладывать файлы и результаты исполнения определенных T-SQL команд При невозможности доставки сообщения одному SMTP серверу, SQLiMail попытается отправить сообщение другому SMTP серверу (можно сконфигурировать несколько серверов) – account failover При невозможности доставки сообщения одному SMTP серверу, SQLiMail попытается отправить сообщение другому SMTP серверу (можно сконфигурировать несколько серверов) – account failover
Конфигурация (demo) Создать mail базу Создать mail базу Разрешить Service Broker Разрешить Service Broker alter database [maildb] set enable_broker alter database [maildb] set enable_broker Прогнать скрипт Прогнать скрипт Создать учетную запись (account) Создать учетную запись (account) sysmail_add_account_sp sysmail_add_account_sp Создать профиль (profile) Создать профиль (profile) sysmail_add_profile_sp sysmail_add_profile_sp Связать профиль с учетной записью (отношение между профилем и учетной записью многие ко многим) Связать профиль с учетной записью (отношение между профилем и учетной записью многие ко многим) sysmail_add_profileaccount_sp sysmail_add_profileaccount_sp При добавлении учетной запись к профилю можно задать приоритет, который будет использоваться при нескольких учетных записях При добавлении учетной запись к профилю можно задать приоритет, который будет использоваться при нескольких учетных записях Отправка почты с помощью sendimail_sp. Профиль можно не указавыть, если есть скрытый профиль по умолчанию или публичный профиль по умолчанию. Отправка почты с помощью sendimail_sp. Профиль можно не указавыть, если есть скрытый профиль по умолчанию или публичный профиль по умолчанию. Информация об учетных записях и соответствующие хранимые процедуры находятся в msdb.
Конфигурация с помощью wizard-а
Безопасность Системные параметры Системные параметры sysmail_help_configure_sp – просмотр параметров sysmail_help_configure_sp – просмотр параметров sysmail_configure_sp – изменение параметров sysmail_configure_sp – изменение параметров Настраиваются такие параметры как, количество попыток отправки сообщения SMTP серверу, максимальный размер вложения, запрещеные расширения и проч. Настраиваются такие параметры как, количество попыток отправки сообщения SMTP серверу, максимальный размер вложения, запрещеные расширения и проч. Информация сохраняется в msdb Информация сохраняется в msdb Пример: exec msdb.dbo.sysmail_configure_sp 'MaxFileSize', Mb Пример: exec msdb.dbo.sysmail_configure_sp 'MaxFileSize', Mb
Безопасность (продолжение) По умолчанию любой пользователь имеет право вызывать sendimail_sp По умолчанию любой пользователь имеет право вызывать sendimail_sp Публичные профили никак не связаны с mail базой и пользователями Публичные профили никак не связаны с mail базой и пользователями Для всех mail баз можно задать один публичный профиль по умолчанию Для всех mail баз можно задать один публичный профиль по умолчанию Закрытый профиль имеют право использовать только определенные пользователи Закрытый профиль имеют право использовать только определенные пользователи У одного пользователя может быть несколько закрытых профилей и только один по умолчанию У одного пользователя может быть несколько закрытых профилей и только один по умолчанию Просмотр данных - sysmail_help_principalprofile_sp Просмотр данных - sysmail_help_principalprofile_sp Пример: exec = 0, = = '' Пример: exec = 0, = = ''
SQL Agent и SQLiMail Необходимо поставить SQLiMail на базу msdb Необходимо поставить SQLiMail на базу msdb Задать для пользователя, под которым исполняется сервис SQL Agent закрытый профиль по умолчанию Задать для пользователя, под которым исполняется сервис SQL Agent закрытый профиль по умолчанию На вкладке Alert System свойств SQL Agent выбрать Mail System – SQLiMail и профиль На вкладке Alert System свойств SQL Agent выбрать Mail System – SQLiMail и профиль
Ваши вопросы Алексей Ширшов - Алексей Ширшов -