Главная Обратная связь

Дисциплины:






Хранимые процедуры Database Mail



Хранимые процедуры предназначены для выполнения определенных действий. Они находятся в базе данных MSDB и принадлежат схеме dbo.

Наиболее часто используемые хранимые процедуры:

· sp_send_dbmail — предназначена для отправки электронной почты. Пример:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'MailProfile1', @recipients = 'admininstrator@nwtraders.msft', @subject = 'Заголовок сообщения', @body = 'Текст сообщения';

· sysmail_delete_mailitems_sp — позволяет удалить ранее отправленные (успешно и неуспешно) сообщения электронной почты из таблиц Database Mail в базе данных MSDB;

· sysmail_delete_log_sp — позволяет очистить таблицы базы данных MSDB. Но при ее использовании удаляются не сами сообщения, а протокол их отправки;

 

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

Настройка SQL Server Agent для использования электронной почты

1. Включить Database Mail и создать необходимый профиль и учетную запись, как это было описано выше;

2. Включить учетную запись, от имени которой SQL Server Agent подключается к SQL Server, в роль DatabaseMailUserRole в базе данных MSDB;

3. Сделать данный профиль профилем по умолчанию для учетной записи SQL Server Agent;

4. Открыть свойства SQL Server Agent и на вкладке Alert System установить флажок Enable mail profile.

5. В списке Mail system выбрать систему Database Mail, а в списке почтовых профилей — нужный профиль;

6. Перезапустить SQL Server Agent, чтобы изменения вступили в силу.

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

Получение информации о работе Database Mail

Вне зависимости от того, удалось ли отправить сообщение, хранимая процедура sp_send_ dbmail вернет стандартное сообщение "Mail queued", то есть письмо поставлено в очередь на отправку.

Для получения информации о результатах отправки сообщения можно:

· Просмотреть журналы Database Mail - для этого можно воспользоваться командой View Database Mail Log из контекстного меню для контейнера Management àDatabase Mail в Management Studio.

· Воспользоваться специальными представлениями Database Mail в базе данных MSDB:

o sysmail_allitems — полная информация обо всех отправленных средствами Database Mail письмах;

o sysmail_faileditems — только письма, при отправке которых произошел сбой;



o sysmail_sentitems — только успешно отправленные письма;

o sysmail_unsentitems — только письма, которые еще не были отправлены, но стоят в очереди;

o sysmail_mailattachments — только информация о сообщениях со вложениями

o sysmail_event_log — возвращается информация из журнала Database Mail (та же, которую можно получить при помощи команды View Database Mail Log).

Работа с SQLMail

SQLMail — подсистема для взаимодействия SQL Server с электронной почтой. Она использовалась в предыдущих версиях SQL Server и оставлена для обеспечения обратной совместимости в SQL Server 2008. SQLMail может работать только с протоколом MAPI и для создания почтового профиля MAPI необходимо использовать внешнюю программу (в большинстве случаев Outlook).

Настройка SQL Server для работы с SQLMail

1. Средствами Exchange Server создать почтовый ящик для учетных записей, от имени которых работают SQL Server и SQL Server Agent.

2. Установить на компьютер, на котором работает SQL Server, Microsoft Outlook (любой версии — 97, 2000, XP или 2003).

3. Настроить почтовый профиль MAPI для работы с электронной почтой:

a. Войти локально на сервер от имени учетной записи SQL Server или SQL Server Agent;

b. Создать MAPI-совместимый почтовый профиль, при помощи мастера настройки учетных записей Outlook.

4. Настроить SQL Server и SQL Server Agent для работы с созданным почтовым профилем.

· Для настройки SQL Server нужно воспользоваться свойствами контейнера Management à Legacy àSQLMail в SQL Server Management Studio. По умолчанию подсистема SQLMail в SQL Server отключена. При первом обращении к свойствам этого контейнера вам будет предложено ее включить. Параметр, который можно настроить в свойствах контейнера SQLMail — имя созданного почтового профиля.

· Чтобы настроить SQL Server Agent для использования SQLMail, в вашем распоряжении — вкладка Alert System свойств SQL Server Agent в Management Studio. В списке Mail system вам потребуется выбрать SQLMail, а в списке Mail profile — имя созданного вами профиля.

5. После внесения изменений в свойства SQLMail для SQL Server и SQL Server Agent обе эти службы рекомендуется перезапустить.





sdamzavas.net - 2017 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...