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 では、有効なメッセージ 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 ;