Estou no SQL Server 2016 e estou me divertindo muito ... meu DB Mail não está sendo enviado e estou ficando sem lugares para procurar. Eu verifiquei as permissões da conta SQL para o executável do DBmail - ele foi lido e executado. Digitei uma regra para a porta de saída do firewall 587. Tentei outra conta de correio e perfil com os mesmos problemas não enviados. As únicas entradas nos logs (logs de correio do banco de dados) estão iniciando e finalizando o serviço. Não há erros em nenhum lugar que eu possa encontrar. Os e-mails parecem simplesmente entrar na fila de envio e nunca sair dela. As contas podem enviar e receber email por conta própria e de uma instância do SQL Server 2014 em outra máquina.
Eu tenho uma fila de itens com status enviado "não enviados" e verifiquei todos os locais normais com resultados esperados em todos eles, além de uma longa fila de emails não enviados:
SELECT * FROM msdb..sysmail_event_log order by log_id DESC
SELECT * FROM dbo.sysmail_mailitems
SELECT * FROM dbo.sysmail_sentitems
USE msdb
SELECT sent_status, *
FROM sysmail_allitems
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb';
EXECUTE msdb.dbo.sysmail_help_status_sp
Eu tentei desligá-lo e ligá-lo novamente ... então eu perdi um DMV etc. que poderia lançar luz sobre esta situação? Esse é um problema conhecido no SQL Server 2016 que não encontrei em minhas pesquisas? Quaisquer outras etapas possíveis para receber este e-mail?
Respostas:
Por um capricho, ao verificar as permissões, cliquei duas vezes no executável de email do DB real. O resultado na máquina do SQL Server 2014 foi uma janela de comando vazia. No SQL Server 2016, clicar no executável DB Mail apresentou esta mensagem:
Não consigo encontrar esse requisito em nenhum lugar da documentação do SQL Server 2016, mas é claramente um requisito. O DB Mail está funcionando perfeitamente sem outras alterações além da instalação do .NET 3.5.
fonte
De acordo com o Suporte da Microsoft, há um erro na Instalação do SQL Server 2016 que faz com que o email do banco de dados não funcione sem o .net 3.5
Existe uma solução alternativa ao criar um arquivo DatabaseMail.exe.config na mesma pasta em que o DatabaseMail.exe existe (pasta Binn), grave o seguinte no arquivo e salve com a codificação utf-8
Origem: CORRECÇÃO: O SQL Server 2016 Database Mail não funciona em um computador que não possui o .NET Framework 3.5 instalado
fonte
Dê uma olhada nisso em seu lugar. Dessa forma, você só precisa copiar um arquivo em vez de instalar o .net 3.5. Precisa instalar o CU1 primeiro. Verifique aqui para mais detalhes.
fonte
Além das causas já mencionadas, também é importante ativar o perfil de email no nível do SQL Server Agent, conforme indicado aqui :
fonte