Share via


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 では、有効なメッセージ ID が渡された場合にメッセージが返されます。

説明

無効なパラメータ以外のエラーはすべて、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 ;