Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Verifique o status de todas as mensagens do Database Mail no SQL Server (T-SQL)


Se você usa o Database Mail no SQL Server, pode usar o sysmail_allitems view para verificar o status de todos os emails processados ​​pelo Database Mail.

Exemplo


Aqui está um exemplo de verificação do status de todas as mensagens de e-mail. Observe que isso precisa ser feito no msdb base de dados.
SELECT * FROM msdb.dbo.sysmail_allitems;

Resultado (usando saída vertical):
mailitem_id                 | 1
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 02:40:48.093
send_request_user           | sa
sent_account_id             | NULL
sent_status                 | failed
sent_date                   | 2020-08-24 02:41:53.000
last_mod_date               | 2020-08-24 02:41:53.290
last_mod_user               | sa

Eu usei a saída vertical aqui para que você não precise rolar lateralmente para ver todas as colunas.

Também estou exibindo apenas a primeira linha (mesmo que quatro linhas tenham sido retornadas), para manter as coisas concisas.

Aqui está novamente, exceto que desta vez vou exibir todas as quatro linhas. Desta vez, mudarei para a saída horizontal normal e especificarei apenas algumas colunas.
SELECT
    mailitem_id,
    sent_status,
    send_request_date
FROM msdb.dbo.sysmail_allitems;

Resultado (usando saída vertical):
+---------------+---------------+-------------------------+
| mailitem_id   | sent_status   | send_request_date       |
|---------------+---------------+-------------------------|
| 1             | failed        | 2020-08-24 02:40:48.093 |
| 2             | failed        | 2020-08-24 02:47:40.833 |
| 3             | sent          | 2020-08-24 03:58:57.887 |
| 4             | sent          | 2020-08-24 04:11:19.300 |
+---------------+---------------+-------------------------+