SQL Serverでは、sysmail_help_queue_sp
を使用できます。 msdb
のストアドプロシージャ データベースを使用して、キューにあるメールアイテムの数、キューのステータス、および最後にアクティブ化された日時を確認します。
キューには、メールキューとステータスキューの2種類があります。
キューの種類に基づいてアカウント情報を返すこともできます。
キュー内のすべてのアイテムを返す
キューからすべてのアイテムを返すには、パラメータなしでストアドプロシージャを実行するだけです。
EXEC msdb.dbo.sysmail_help_queue_sp;
結果(垂直出力を使用):
-[ RECORD 1 ]------------------------- queue_type | mail length | 0 state | INACTIVE last_empty_rowset_time | 2020-08-25 22:25:02.637 last_activated_time | 2020-08-25 22:25:02.637 -[ RECORD 2 ]------------------------- queue_type | status length | 0 state | INACTIVE last_empty_rowset_time | 2020-08-25 22:25:02.637 last_activated_time | 2020-08-25 22:25:02.637
すべての列を表示するために横にスクロールする必要がないように、垂直出力を使用して結果をリストしました。
私の場合、キューに2つのメールアイテムがあるため、2つの行が返されます。
last_empty_rowset_time
列には、キューが最後に空になった日時が表示されます。
last_activated_time
列には、キューが最後にアクティブ化された日時が表示されます。
sysmail_help_queue_sp
に注意してください ストアドプロシージャはmsdb
にあります データベースであり、dbo
が所有しています スキーマ。したがって、msdb
の場合は、3つの部分からなる命名を使用する必要があります 現在のデータベースではありません。
キュータイプでフィルタリング
前述のように、キューには2つのタイプ(メールとステータス)があります。キューの種類に基づいてアイテムを返品することもできます。
これを行うには、@queue_type
を指定します パラメータを設定し、目的のキュータイプを指定します。
メールからすべてのアイテムを返品するには キュー:
EXEC msdb.dbo.sysmail_help_queue_sp
@queue_type = 'mail';
結果:
queue_type | mail length | 0 state | INACTIVE last_empty_rowset_time | 2020-08-25 22:25:02.637 last_activated_time | 2020-08-25 22:25:02.637
ステータスからすべてのアイテムを返すには キュー:
EXEC msdb.dbo.sysmail_help_queue_sp
@queue_type = 'status';
結果:
queue_type | status length | 0 state | INACTIVE last_empty_rowset_time | 2020-08-25 22:25:02.637 last_activated_time | 2020-08-25 22:25:02.637