E-mail от SQL сервера. Часть 1 — Настраиваем…

Содержание:

1. Вступление. Настройка SQL для отправки писем.
2. Модернизируем механизм отправки писем с помощью правил.
3. Пишем Delphi клиента, для управления правилами.

Часть 1. Введение.

В некоторое время назад, мне нужен был механизм для отправки почтовых сообщений. Понятное дело, что это просто сделать используя Delphi, но мне надо использовать MS Navision и SQL сервер.

Понятное дело, что в первую очередь я вспомнил, что SQL server умный и умеет отправлять почту. Но потом я вспомнил, что где то читал, что для этого нужно разворачивать Exchange Server,   а это надо разбираться, опять же пинать админов… в общем довольно безнадежное дело, поэтому я тогда пошел в обход. Я создал табличку SendMail и стал писать туда письма для отправки, а потом написал delphi клиента, который Job-ом дергался каждые 5 мин и отправлял письма из этой таблички.

Система оказалась вполне рабочей. Но вот сегодня наконец-то решил разобраться с настройками SQL server-а для отправки писем.

Как оказалось, время не стоит на месте, и то что было актуально для SQL Server 2000, уже не актуально для SQL Server 2005, благо у нас уже больше года как используется именно он.

Рассмотрим как же настроить отправку писем. Это оказалось довольно просто.

В  SQL 2005 отправку можно реализовать 2мя способами —

1) служба SQL Mail, из SQL Server 2000. Требует Exchange Server или клиента Outlook-а. SQL Mail не рекомендуют использовать, т.к. её поддержки больше не будет в дальнейших версиях. Этот способ мы рассматривать не будем.

2) Database Mail — новый компонент SQL 2005, он позволяет отправлять почту используя smtp протокол на прямую. Его то мы и рассмотрим.

Подробно почитать о том, чем хорош этот компонент и как он устроен, можно тут.

Итак, открываем Database Mail:

mail1

По умолчанию этот компонент не активен, при первом запуске, SQL предложит его активировать.
Далее:

mail2

Нажимаем Далее,  задаём имя профиля, ниже нажимаем ADD SMTP account, в появившемся окошке, указываем настройки почтового ящика, с которого пойдет рассылка писем.Можно указать несколько ящиков, тогда, как я понял, при недоступности первого, отправка пойдет на следующий.

Далее нам предлагается указать будет ли этот профиль публичным или приватным. Если приватный, то для каких пользователей он доступен. Мы делаем его публичным.

mail3

Далее настраиваем параметры почты,

mail4

тут наиболее интересные — максимальный размер аттача, список запрещенных расширений для аттачей, уровень логов (если стоит Advanced — по умолчанию, то копии всех писем сохраняются в базе msdb, нам там этот хлам ни к чему, поставим Normal).

Всё тоже самое можно сделать и программно.

Собственно, на этом настройка почты завершена, далее надо назначить роль DatabaseMailUserRole для базы msdb пользователям, которым разрешенно отправлять почту. Далее можно использовать для отправки почты процедуру — sp_send_dbmail.

Это довольно интересная процедура, которая умеет помимо прочего отправлять и результаты выполнения переданного ей запроса.

Впрочем, вернемся к настройке. Раз уж мы начали настраивать почту, то давайте доведем дело до конца и настроим уведомления о сбоях в работе Job-ов и репликации.

Страницы: Следующая страница

21.04.2010 · 13-ый · Комментариев нет
Метки: , , , ,  · Рубрики: 13-ый, MS SQL

Написать комментарий