xp_deletemail (Transact-SQL)

Удаляет сообщение из папки входящих сообщений Microsoft SQL Server. Эта процедура используется процедурой sp_processmail для обработки почты в папке входящих сообщений SQL Server.

ПримечаниеПримечание

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

xp_deletemail { 'message_id' }

Аргументы

  • 'message_id'
    Внутренний (назначенный процедурой xp_findnextmsg) номер почтового сообщения в папке входящих сообщений, подлежащего удалению. Аргумент message_id имеет тип varchar(255) и не имеет значения по умолчанию.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Процедура xp_deletemail возвращает сообщение, если ей передан допустимый идентификатор сообщения.

Замечания

Все ошибки, кроме недопустимых аргументов, заносятся в журнал приложений Windows.

Процедура xp_deletemail удаляет сообщение из папки входящих сообщений, но не удаляет его вложения из файловой системы. Вложения необходимо удалить вручную. Можно подавить формирование вложений, установив параметр suppress_attach для процедуры xp_readmail в значение TRUE. Дополнительные сведения о вопросах безопасности, связанных с вложениями, см. в разделе xp_readmail (Transact-SQL).

Процедура xp_deletemail не регистрирует где-либо удаленные сообщения или пользователей, удаляющих их. Это может вызвать проблемы аудита в среде, где несколько пользователей обладают разрешениями на выполнение процедуры xp_deletemail. Для минимизации этой проблемы следует ограничить разрешения на процедуру xp_deletemail только участникам предопределенной роли сервера sysadmin.

Разрешения

Необходимо членство в предопределенной роли сервера sysadmin, однако разрешение EXECUTE может быть предоставлено другим пользователям. Тем не менее, в целях безопасности, разрешения для этой хранимой процедуры следует ограничить членами предопределенной роли сервера sysadmin.

Примеры

В следующем примере извлекается идентификатор сообщения, выдаваемый процедурой xp_findnextmsg, после чего этот идентификатор используется для удаления сообщения. Значение, полученное из процедуры xp_findnextmsg, помещается в локальную переменную @message_id.

DECLARE @message_id varchar(255) ;

USE master ;

EXEC xp_findnextmsg @msg_id = @message_id OUTPUT ;

EXEC xp_deletemail @message_id ;