Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Instância Gerenciada de SQL do Azure
Este artigo descreve como solucionar um problema em que as mensagens de email do Database Mail são enfileiradas com êxito, mas as mensagens não são entregues.
Diagnosticar o problema
O programa externo do Database Mail registra a atividade de email no msdb banco de dados.
Primeiro, para confirmar se o Database Mail está habilitado, use os XPs do Database Mail (opção de configuração do servidor) do procedimento armazenado do sistema
sp_configure, como no exemplo a seguir:EXEC sp_configure 'show advanced', 1; RECONFIGURE; EXEC sp_configure; GOEm seguida, execute a seguinte instrução no
msdbbanco de dados para verificar o status da fila de email:EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'Mail';Para obter uma explicação detalhada das colunas, veja sysmail_help_queue_sp (Transact-SQL).
Verifique a seção
sysmail_event_logpara atividade. A exibição deve conter uma entrada declarando que o programa externo do Database Mail foi iniciado. Se não houver nenhuma entrada nosysmail_event_logmodo de exibição, consulte o sintoma Mensagens Enfileiradas, Sem Entradas emsysmail_event_log.Se houver erros na exibição
sysmail_event_log, solucione o erro específico. Verifique a exibiçãosysmail_allitemsdo status das mensagens.
Status de mensagem não enviada
Um status de não enviado indica que o Programa Externo de Email do Banco de Dados ainda não processou a mensagem de e-mail.
O programa externo database mail pode ter ficado para trás no processamento de mensagens; a taxa na qual o programa externo processa mensagens depende das condições de rede, do tempo limite de repetição, do volume de mensagens e da capacidade do servidor SMTP. Se o problema persistir, considere usar mais de um perfil para distribuir mensagens entre mais de um servidor SMTP. Examine a carga de email enviada do SQL Server para verificar se os emails enviados são válidos e pretendidos.
Verifique a data de modificação mais recente das mensagens entregues com êxito. Se a última entrega bem-sucedida ocorreu há algum tempo, verifique a sysmail_event_log exibição para verificar se o programa externo foi iniciado com êxito pelo Service Broker. Se a última tentativa não tiver iniciado o programa externo, verifique se o Programa Externo do Database Mail está localizado no diretório correto e se a conta de serviço do SQL Server tem permissão para executar o executável. Verifique se há erros relacionados ao Database Mail no log de eventos do Aplicativo Windows.
Observação
Para excluir mensagens não enviadas antigas, aguarde até que as mensagens não entregues sejam as mensagens mais antigas na fila e use o procedimento armazenado do sistema msdb.dbo.sysmail_delete_mailitems_sp para excluí-las.
Status da mensagem tentando novamente
Um status de tentativa novamente indica que o Database Mail tentou entregar a mensagem ao servidor SMTP, mas não conseguiu. Normalmente, isso é causado por uma interrupção da rede, uma falha do servidor SMTP ou uma conta incorretamente configurada do Database Mail. A mensagem deve eventualmente ter êxito ou falhar e postar uma mensagem no log de eventos do Aplicativo do Windows.
Status de mensagem enviada
O status de enviada indica que o programa externo do Database Mail teve êxito na entrega da mensagem de email ao servidor SMTP.
Se a mensagem não chegar ao seu destino, é porque o servidor SMTP a aceitou do Database Mail, mas não a entregou ao destinatário final. Verifique os logs do servidor SMTP ou contate o administrador do mesmo. Você também pode testar o servidor de email SMTP usando outro cliente, como o Outlook Express.
Status de mensagem de falha
O status de falha indica que o programa externo do Database Mail não pôde entregar a mensagem ao servidor SMTP.
Nesse caso, a visão do sistema msdb.dbo.sysmail_event_log contém informações detalhadas do programa externo. Para obter uma consulta de exemplo que une sysmail_faileditems e sysmail_event_log para recuperar mensagens de erro detalhadas, consulte Verificar o status das mensagens de email enviadas com o Database Mail. As causas mais comuns de falha são endereço de destino incorreto ou problemas de rede que impedem o programa externo de acessar uma ou mais contas de failover. Problemas no servidor SMTP também podem fazê-lo rejeitar emails. Usando o Assistente para Configuração do Database Mail, altere o Nível de Registros em Log para Detalhado e envie um email de teste para investigar o ponto de falha.