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 (失敗)
結果集
當傳遞有效的訊息識別碼時,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 中擷取訊息識別碼,再利用這個訊息識別碼來刪除訊息。xp_findnextmsg 中的值放在本機變數 @message_id 中。
DECLARE @message_id varchar(255) ;
USE master ;
EXEC xp_findnextmsg @msg_id = @message_id OUTPUT ;
EXEC xp_deletemail @message_id ;