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

Verificar e-mail com falha no SQL Server (T-SQL)


Se você está tentando enviar e-mail com o SQL Server, mas não está sendo entregue, tente verificar o sysmail_faileditems visualizar.

Exemplo


Aqui está um exemplo de verificação de e-mail com falha. Observe que ele precisa ser executado no msdb base de dados.
SELECT * FROM msdb.dbo.sysmail_faileditems;

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.

Nesse caso, estou mostrando um e-mail com falha. Na verdade, tive dois e-mails com falha, mas decidi que era mais conciso mostrar apenas um resultado.

No meu caso, usei o servidor de e-mail errado no código que envia o e-mail e os e-mails falharam. Assim que atualizei o código para usar o servidor de e-mail correto, todos os e-mails subsequentes foram enviados com sucesso. No entanto, isso não altera aqueles que já falharam e, portanto, eles permanecem no sysmail_faileditems visualizar.

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_sentitems para obter todos os e-mails enviados.

Você também pode consultar sysmail_allitems para obter todos os e-mails (enviados, não enviados, com falha e tentando novamente).