Share via


xp_deletemail (Transact-SQL)

刪除 MicrosoftSQL 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 會刪除收件匣中的訊息,而不會刪除檔案系統中的任何附加檔案。您必須手動刪除附加檔案。您可以將 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 ;