sql >> Databasteknik >  >> RDS >> Sqlserver

Returnera en lista över e-postmeddelanden som skickats från SQL Server Database Mail (T-SQL)

Om du använder Database Mail i SQL Server kan du använda sysmail_sentitems visa för att returnera en lista över alla e-postmeddelanden som Database Mail har skickat.

Exempel

Här är ett exempel på att returnera alla skickade e-postmeddelanden. Observera att detta måste göras på msdb databas.

SELECT * FROM msdb.dbo.sysmail_sentitems;

Resultat (med vertikal utdata):

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

Jag använde vertikal utmatning här så att du inte behöver rulla i sidled för att se alla kolumner.

Jag visar också bara den första raden (även om två rader returnerades), för att göra saker kortfattade.

Här är den igen, förutom att jag den här gången byter till horisontell utmatning och visar båda raderna. Jag kommer också att ange några få kolumner.

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

Resultat (med vertikal utdata):

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

Du kan fråga sysmail_unsentitems för att returnera en lista över osända e-postmeddelanden (de som ännu inte har skickats, inte nödvändigtvis misslyckade).

Du kan också fråga sysmail_faileditems för att få alla misslyckade e-postmeddelanden.

Du kan också fråga sysmail_allitems för att få alla e-postmeddelanden (skickade, osända, misslyckades och försöker igen).


  1. PostgreSQL sekvenser utan mellanrum

  2. SQL Server Interns:Problematiska operatörer Pt. I – Skanningar

  3. Det gick inte att ladda sql-moduler till databasklustret under PostgreSQL-installationen

  4. Använder JShell i Java 9 i NetBeans 9.0, del 3