|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
8.2.3. Работа с SQLMailПодсистема SQLMail в SQL Server 2005, отправка электронной почты по протоколу MAPI, настройка профиля Outlook, хранимая процедура xp_sendmail SQLMail — это подсистема для взаимодействия SQL Server с электронной почтой. Она использовалась в предыдущих версиях SQL Server и оставлена для обеспечения обратной совместимости в SQL Server 2005 (правда, разработчики предупреждают, что в следующих версиях SQL Server планируется убрать эту подсистему). Тем не менее, SQLMail для работы с электронной почты привычна многим администраторам и разработчикам, и работает вполне надежно на многих предприятиях. Для тех, кто не сталкивался с этой подсистемой в предыдущих версиях SQL Server, сразу отметим одно важное ограничение: SQLMail может работать только с протоколом MAPI (но не SMTP!). Кроме того, настройку SQLMail нельзя произвести только средствами SQL Server. Для создания почтового профиля MAPI придется использовать внешнюю программу (в большинстве случаев Microsoft Outlook). Настройка SQL Server для работы с электронной почтой средствами SQLMail состоит из нескольких этапов: q первое действие, которое нужно сделать — средствами Exchange Server создать почтовый ящик для учетной записи, от имени которой работает SQL Server (если SQL Server Agent работает от имени другой учетной записи, то почтовый ящик потребуется и для него). В Exchange Server 2000 и 2003 эта операция выполняется средствами консоли Active Directory Users and Computers (Active Directory — пользователи и компьютеры); q следующее, что нужно сделать, — установить на компьютер, на котором работает SQL Server, Microsoft Office. Из всего набора программ, которые в него входят, вам нужен только Outlook (любой версии — 97, 2000, XP или 2003). Обратите внимание, что Outlook Express, который есть на любом компьютере Windows, использовать нельзя: эта программа не может работать с протоколом MAPI! Можно использовать как английскую, так и русифицированную версии Outlook; q следующая операция — настройка почтового профиля MAPI для работы с электронной почтой. Для этого нужно выполнить следующие действия: · войти локально на сервер от имени той учетной записи, от имени которой работает SQL Server или SQL Server Agent (в зависимости от того, для кого вы настраиваете почтовый ящик); · создать MAPI-совместимый почтовый профиль. Проще всего это сделать при помощи мастера настройки учетных записей Outlook. Если под учетной записью, от имени которой работает SQL Server, Outlook еще не запускался, то при первом запуске Outlook окно мастера запустится автоматически. Если какие-то настройки уже были созданы, то изменить их можно либо из Outlook, либо при помощи консоли Почта (Mail) в Панели управления. На первом экране мастера создания учетных записей электронной почты вам потребуется выбрать пункт Добавить новую учетную запись электронной почты. На следующем экране, который называется Тип сервера, нужно выбрать Microsoft Exchange Server. Этот тип учетной записи соответствует протоколу MAPI и только он может использоваться подсистемой SQLMail. Затем в окне настроек Exchange Server вам потребуется ввести имя сервера и имя почтового ящика пользователя. Обратите внимание, что имя почтового ящика пользователя и адрес электронной почты данного пользователя — это не одно и то же. По умолчанию имя почтового ящика на Exchange Server совпадает с именем учетной записи Windows; q последнее, что осталось сделать, — настроить SQL Server и SQL Server Agent для работы с созданным почтовым профилем. Для настройки SQL Server нужно воспользоваться свойствами контейнера Management | Legacy | SQLMail (Управление | Унаследованное | SQLMail) в SQL Server Management Studio. По умолчанию подсистема SQLMail в SQL Server отключена. При первом обращении к свойствам этого контейнера вам будет предложено ее включить. Единственный параметр, который можно настроить в свойствах контейнера SQLMail, — имя созданного вами почтового профиля. По умолчанию он называется "Outlook". Чтобы настроить SQL Server Agent для использования SQLMail, в вашем распоряжении — вкладка Alert System свойств SQL Server Agent в Management Studio. В списке Mail system вам потребуется выбрать SQLMail, а в списке Mail profile — имя созданного вами профиля (здесь тот же самый профиль выглядит как "Outlook default profile"). После внесения изменений в свойства SQLMail для SQL Server и SQL Server Agent обе эти службы рекомендуется перезапустить. Для работы с SQLMail используются те же хранимые процедуры, что и в SQL Server 2000: q xp_sendmail — эта хранимая процедура предназначена для отправки сообщений электронной почты, например: EXEC master.dbo.xp_sendmail @recipients='administrator@nwtraders.msft', @subject='Заголовок сообщения', @message='Текст сообщения'; С ее помощью можно выполнить запрос и сразу отправить результаты выполнения по электронной почте: EXEC master.dbo.xp_sendmail @recipients='administrator@nwtraders.msft', @query = 'SELECT * FROM Table1'; q xp_findnextmsg — возвращает уникальный идентификатор сообщения, которое пришло последним. После этого идентификатор обычно передается хранимым процедурам xp_readmail (чтобы прочитать это сообщение) и xp_deletemail (чтобы удалить его); q xp_readmail — считывает сообщение из почтового ящика на Exchange Server. Принимает номер сообщения, который обычно возвращает хранимая процедура xp_findnextmsg; q xp_deletemail — удаляет сообщение по его номеру; q sp_proccessmail — позволяет автоматизировать работу с электронной почтой. Эта хранимая процедура (обычно она запускается по расписанию заданием SQL Server Agent) обращается к почтовому ящику на Exchange Server и пытается выполнить текст каждого непрочитанного сообщения как запрос к SQL Server. Результаты выполнения запроса отправляются в качестве ответа на сообщение (в виде вложенного текстового файла). Эта хранимая процедура справедливо считается небезопасной, но она может быть очень удобной для администрирования SQL Server по электронной почте.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||