Se você usa o Database Mail no SQL Server, pode usar o
sysmail_sentitems
view para retornar uma lista de todos os emails que o Database Mail enviou. Exemplo
Aqui está um exemplo de retorno de todos os e-mails enviados. Observe que isso precisa ser feito no
msdb
base de dados. SELECT * FROM msdb.dbo.sysmail_sentitems;
Resultado (usando saída vertical):
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
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 duas linhas tenham sido retornadas), para manter as coisas concisas.
Aqui está novamente, exceto que desta vez vou mudar para a saída horizontal e exibir as duas linhas. Além disso, 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 | 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 | +---------------+---------------+-------------------------+-------------------------+
Você pode consultar
sysmail_unsentitems
para retornar uma lista de e-mails não enviados (os que ainda não foram enviados, não necessariamente com falha). Você também pode consultar
sysmail_faileditems
para obter todos os e-mails com falha. Você também pode consultar
sysmail_allitems
para obter todos os e-mails (enviados, não enviados, com falha e tentando novamente).