xp_deletemail (Transact-SQL)
Удаляет сообщение из папки входящих сообщений MicrosoftSQL Server. Эта процедура используется процедурой sp_processmail для обработки почты в папке входящих сообщений SQL Server.
Примечание |
---|
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. |
Синтаксис
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 ;