Estoy en SQL Server 2016 y me estoy divirtiendo ... mi DB Mail no se envía y me estoy quedando sin lugares para buscar. Verifiqué dos veces los permisos de la cuenta SQL para el ejecutable de DBmail: ha leído y ejecutado. Ingresé una regla para el puerto de salida del firewall 587. Probé otra cuenta de correo y perfil con los mismos problemas no enviados. Las únicas entradas en los registros (registros de correo db) son el inicio y el final del servicio. No hay errores en ninguna parte que pueda encontrar. Parece que los correos electrónicos simplemente ingresan a la cola de envío y nunca la abandonan. Las cuentas pueden enviar y recibir correo electrónico por su cuenta y desde una instancia de SQL Server 2014 en otra máquina.
Tengo una cola de elementos con el estado enviado "no enviado" y verifiqué todos los lugares normales con resultados esperados en todos ellos, aparte de una larga cola de correo no enviado:
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
He intentado apagarlo y volverlo a encender ... ¿me perdí un DMV, etc. que podría arrojar luz sobre esta situación? ¿Es este un problema conocido con SQL Server 2016 que no tengo en mis búsquedas? ¿Algún otro paso posible para enviar este correo?
Respuestas:
Por capricho, cuando comprobé los permisos dos veces, hice doble clic en el ejecutable real del correo DB. El resultado en la máquina SQL Server 2014 fue una ventana de comando vacía. En SQL Server 2016, al hacer clic en el ejecutable de DB Mail, se presentó este mensaje:
No puedo encontrar este requisito en ninguna parte de la documentación de SQL Server 2016, sin embargo, es claramente un requisito. DB Mail funciona perfectamente sin más cambios que la instalación de .NET 3.5.
fuente
Según el soporte de Microsoft, hay un error en la instalación de SQL Server 2016 que hace que el correo de la base de datos no funcione sin .net 3.5
Hay una solución al crear un archivo DatabaseMail.exe.config en la misma carpeta donde existe el DatabaseMail.exe (carpeta Binn) escriba lo siguiente en el archivo y guárdelo con la codificación utf-8
Fuente: REVISIÓN: SQL Server 2016 Database Mail no funciona en una computadora que no tiene instalado .NET Framework 3.5
fuente
Echa un vistazo a esto en su lugar. De esta manera, solo necesita copiar un archivo en lugar de instalar .net 3.5. Necesita instalar CU1 primero. Consulta aquí para más detalles.
fuente
Además de las causas ya mencionadas, también es importante activar el perfil de correo electrónico en el nivel del Agente SQL Server como se indica aquí :
fuente