sql >> Database >  >> RDS >> Sqlserver

Een lijst met e-mails retourneren die zijn verzonden vanuit SQL Server Database Mail (T-SQL)

Als u Database Mail in SQL Server gebruikt, kunt u de sysmail_sentitems . gebruiken om een ​​lijst terug te sturen van alle e-mails die Database Mail heeft verzonden.

Voorbeeld

Hier is een voorbeeld van het retourneren van alle verzonden e-mails. Merk op dat dit moet worden gedaan op de msdb database.

SELECT * FROM msdb.dbo.sysmail_sentitems;

Resultaat (met verticale uitvoer):

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

Ik heb hier verticale uitvoer gebruikt, zodat je niet zijwaarts hoeft te scrollen om alle kolommen te zien.

Ik geef ook alleen de eerste rij weer (ook al zijn er twee rijen geretourneerd), om het beknopt te houden.

Hier is het weer, maar deze keer zal ik overschakelen naar horizontale uitvoer en beide rijen weergeven. Ik zal ook slechts een paar kolommen specificeren.

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

Resultaat (met verticale uitvoer):

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

U kunt sysmail_unsentitems . opvragen om een ​​lijst met niet-verzonden e-mails terug te sturen (die nog moeten worden verzonden, zijn niet noodzakelijk mislukt).

U kunt ook sysmail_faileditems . opvragen om alle mislukte e-mails te krijgen.

U kunt ook sysmail_allitems . opvragen om alle e-mails te ontvangen (verzonden, niet-verzonden, mislukt en opnieuw geprobeerd).


  1. Hoe te updaten met inner join in Oracle

  2. 10 tips en trucs om een ​​efficiënte database te beheren

  3. MySQL relationele databases gebruiken op Ubuntu 10.04 LTS (Lucid)

  4. N rijen selecteren in SQL Server