Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zwróć listę wiadomości e-mail wysłanych z poczty bazy danych SQL Server (T-SQL)

Jeśli używasz poczty bazy danych w programie SQL Server, możesz użyć sysmail_sentitems Wyświetl, aby zwrócić listę wszystkich wiadomości e-mail, które wysłała poczta bazy danych.

Przykład

Oto przykład zwracania wszystkich wysłanych e-maili. Pamiętaj, że należy to zrobić w msdb baza danych.

SELECT * FROM msdb.dbo.sysmail_sentitems;

Wynik (przy użyciu wyjścia pionowego):

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

Użyłem tutaj wyjścia pionowego, aby nie trzeba było przewijać na boki, aby zobaczyć wszystkie kolumny.

Wyświetlam również tylko pierwszy wiersz (mimo że zwrócono dwa wiersze), aby zachować zwięzłość.

I znowu, tyle że tym razem przełączę się na wyjście poziome i wyświetlę oba wiersze. Ponadto określę tylko kilka kolumn.

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

Wynik (przy użyciu wyjścia pionowego):

+---------------+---------------+-------------------------+-------------------------+
| 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 |
+---------------+---------------+-------------------------+-------------------------+

Możesz zapytać sysmail_unsentitems aby zwrócić listę niewysłanych e-maili (tych, które nie zostały jeszcze wysłane, niekoniecznie nieudane).

Możesz także zapytać sysmail_faileditems aby otrzymać wszystkie nieudane e-maile.

Możesz także zapytać sysmail_allitems aby otrzymać wszystkie e-maile (wysłane, niewysłane, nieudane i ponawiane).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmniejszyć rozmiar pliku danych w SQL Server (T-SQL)

  2. Nieskończona pętla CTE z OPCJA (maksymalna rekurencja 0)

  3. Unikalny identyfikator (guid) jako klucz podstawowy w projekcie bazy danych

  4. Jak zaktualizować wiersze o losową datę?

  5. Dlaczego warto korzystać z poziomu izolacji ODCZYTAJ NIEZAANGAŻOWANE?