xp_deletemail (Transact-SQL)
删除 Microsoft SQL Server 收件箱中的邮件。sp_processmail 使用此过程来处理 SQL Server 收件箱中的邮件。
注意: |
---|
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 |
语法
xp_deletemail { 'message_id' }
参数
- 'message_id'
收件箱中应删除的邮件的专有邮件号(由 xp_findnextmsg 分配)。message_id 的数据类型为 varchar(255),无默认值。
返回代码值
0(成功)或 1(失败)
结果集
当所传递的邮件 ID 有效时,xp_deletemail 将返回一封邮件。
备注
除了无效参数以外,所有错误都将记录到 Windows 应用程序日志中。
xp_deletemail 删除收件箱中的邮件,但不会删除文件系统中的任何附件。您必须手动删除附件。可以通过将 xp_readmail 的 suppress_attach 参数设置为 TRUE 来取消生成附件。有关附件安全问题的详细信息,请参阅 xp_readmail (Transact-SQL)。
xp_deletemail 不记录所删除的邮件或删除这些邮件的用户。在多个用户都具有执行 xp_deletemail 的权限的环境中,这可能会导致审核问题。为了尽量减少此问题,请将 xp_deletemail 的权限限于 sysadmin 固定服务器角色的成员。
权限
要求具有 sysadmin 固定服务器角色的成员身份,但也可以将 EXECUTE 权限授予其他用户。不过,出于安全考虑,建议将此存储过程的权限仅授予 sysadmin 固定服务器角色的成员。
示例
以下示例检索 xp_findnextmsg
提供的邮件 ID,然后使用此邮件 ID 删除邮件。xp_findnextmsg
返回的值将放入局部变量 @message_id
中。
DECLARE @message_id varchar(255) ;
USE master ;
EXEC xp_findnextmsg @msg_id = @message_id OUTPUT ;
EXEC xp_deletemail @message_id ;
请参阅
参考
sp_processmail (Transact-SQL)
系统存储过程 (Transact-SQL)
xp_findnextmsg (Transact-SQL)
xp_readmail (Transact-SQL)
xp_sendmail (Transact-SQL)
xp_startmail (Transact-SQL)
xp_stopmail (Transact-SQL)