sql >> データベース >  >> RDS >> Sqlserver

SQL Serverデータベースメール(T-SQL)から送信された電子メールのリストを返す

    SQL Serverでデータベースメールを使用する場合は、sysmail_sentitemsを使用できます。 データベースメールが送信したすべての電子メールのリストを返すために表示します。

    送信されたすべてのメールを返す例を次に示します。これはmsdbで行う必要があることに注意してください データベース。

    SELECT * FROM msdb.dbo.sysmail_sentitems;

    結果(垂直出力を使用):

    mailitem_id                 | 3
    profile_id                  | 1
    recipients                  | [email protected]
    copy_recipients             | NULL
    blind_copy_recipients       | NULL
    subject                     | SQL Server Agent Job: FAILED
    body                        | Your favorite SQL Server Agent job just failed
    body_format                 | TEXT
    importance                  | NORMAL
    sensitivity                 | NORMAL
    file_attachments            | NULL
    attachment_encoding         | MIME
    query                       | NULL
    execute_query_database      | NULL
    attach_query_result_as_file | 0
    query_result_header         | 1
    query_result_width          | 256
    query_result_separator      |  
    exclude_query_output        | 0
    append_query_error          | 0
    send_request_date           | 2020-08-24 03:58:57.887
    send_request_user           | sa
    sent_account_id             | 1
    sent_status                 | sent
    sent_date                   | 2020-08-24 03:59:01.000
    last_mod_date               | 2020-08-24 03:59:01.543
    last_mod_user               | sa

    ここでは、すべての列を表示するために横にスクロールする必要がないように、垂直出力を使用しました。

    また、簡潔にするために、最初の行だけを表示しています(2行が返されましたが)。

    今回も水平出力に切り替えて両方の行を表示することを除いて、ここにあります。また、いくつかの列を指定します。

    SELECT
        mailitem_id,
        sent_status,
        send_request_date
    FROM msdb.dbo.sysmail_allitems;

    結果(垂直出力を使用):

    +---------------+---------------+-------------------------+-------------------------+
    | mailitem_id   | sent_status   | send_request_date       | sent_date               |
    |---------------+---------------+-------------------------+-------------------------|
    | 3             | sent          | 2020-08-24 03:58:57.887 | 2020-08-24 03:59:01.000 |
    | 4             | sent          | 2020-08-24 04:11:19.300 | 2020-08-24 04:11:22.000 |
    +---------------+---------------+-------------------------+-------------------------+

    sysmail_unsentitemsをクエリできます 未送信の電子メールのリストを返します(まだ送信されていないもので、必ずしも失敗したわけではありません)。

    sysmail_faileditemsをクエリすることもできます 失敗したすべてのメールを取得します。

    sysmail_allitemsをクエリすることもできます すべてのメール(送信済み、未送信、失敗、再試行)を取得します。


    1. MySQLは、フィールド内の一部のテキストを検索して置換します

    2. Postgres:タイムスタンプを最も近い分に切り上げるまたは切り下げるにはどうすればよいですか?

    3. MySQLで新しいユーザーを作成し、1つのデータベースへのフルアクセスを許可します

    4. SQL:NULL値のみの列を選択します