Хранимые процедуры обработки сообщений
В состав SQL Mail входят следующие хранимые процедуры:
xp_startmail - расширенная хранимая процедура, выполняющая запуск сервиса SQL Mail и регистрацию в почтовой системе;
xp_stopmail - расширенная хранимая процедура, останавливающая выполнение операций с почтой;
xp_sendmail - расширенная хранимая процедура, выполняющая посылку сообщения адресатам; поддерживается посылка результатов запроса в виде вложения, режимы Carbon Copy и Blind Copy;
xp_findnextmsg - расширенная хранимая процедура; производит выборку из почтового ящика следующего сообщения; позволяет выбирать только непрочитанные сообщения; возвращает идентификатор сообщения, который может быть далее использован в xp_readmail или xp_deletemail;
xp_readmail - расширенная хранимая процедура; производит чтение сообщения из почтового ящика; за одну операцию считывается максимум 255 символов текста сообщения; для получения содержимого сообщений, длина текста которых более 255 символов, вызов функции выполняется несколько раз с указанием идентификатора и смещения от начала сообщения;
xp_deletemail - расширенная хранимая процедура; производит удаление сообщение по его идентификатору, полученному в результате вызова xp_findnetxmsg;
sp_processmail - системная хранимая процедура, выполняющая автоматическое чтение входящих сообщений, заголовок которых совпадает с указанной строкой текста. Тело сообщения трактуется как один SQL-запрос и результат его выполнения автоматически возвращается отправителю в виде вложения. Если в исходном сообщении присутствовали адресаты в поле CC:, результат рассылается также им. Обработанное сообщение удаляется из почтового ящика. Дополнительно в качестве параметров данной процедуре может быть заданы:
разделитель полей в результатах запроса;
расширение файла вложения для автоматической его ассоциации с приложением получателя (например расширение CSV ассоциируется с Excel);
имя пользователя, в контексте которого будет исполняться запрос;
имя базы данных, в контексте которой будет исполняться запрос.
Для всех хранимых процедур права на исполнение закреплены за SA, который на своё усмотрение назначает права конкретным пользователям.
Наличие процедур манипуляции сообщениями позволяет реализовать собственную схему приёма, разборки и отправки сообщений на сервере. Поскольку действия над сообщениями выполняются из расширенных процедур, их набор может быть увеличен, а логика работы надлежащим образом изменена путем создания оных на языках высокого уровня, таких как C/C++, с последующей регистрацией расширенных процедур на сервере.
Содержание раздела