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).