Je suis sur SQL Server 2016 et je m'éclate ... mon DB Mail n'envoie pas et je manque d'endroits où chercher. J'ai revérifié les autorisations du compte SQL pour l'exécutable DBmail - il a lu et exécuté. J'ai entré une règle pour le port sortant du pare-feu 587. J'ai essayé un autre compte de messagerie et un autre profil avec les mêmes problèmes non envoyés. Les seules entrées dans les journaux (journaux de messagerie db) sont le début et la fin du service. Je ne trouve aucune erreur nulle part. Les e-mails semblent simplement entrer dans la file d'attente d'envoi et ne jamais la quitter. Les comptes peuvent envoyer et recevoir des e-mails de leur propre chef et à partir d'une instance SQL Server 2014 sur une autre machine.
J'ai une file d'attente d'articles avec le statut envoyé "non envoyé" et j'ai vérifié tous les endroits normaux avec les résultats attendus dans chacun d'eux, à part une longue file d'attente de courrier non envoyé:
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
J'ai essayé de l'éteindre et de le rallumer ... alors ai-je raté un DMV etc. qui pourrait faire la lumière sur cette situation? Est-ce un problème connu avec SQL Server 2016 que je n'ai pas dans mes recherches? Y a-t-il d'autres étapes possibles pour envoyer ce courrier?
Réponses:
Sur un coup de tête, lors de la double vérification des autorisations, j'ai double-cliqué sur l'exécutable de messagerie DB réel. Le résultat sur la machine SQL Server 2014 était une fenêtre de commande vide. Sur SQL Server 2016, cliquer sur l'exécutable DB Mail a présenté ce message:
Je ne trouve cette exigence nulle part dans la documentation de SQL Server 2016, mais c'est clairement une exigence. DB Mail fonctionne parfaitement sans autre changement que l'installation de .NET 3.5.
la source
Selon le support Microsoft, il existe un bogue dans le programme d'installation de SQL Server 2016 qui empêche le courrier de la base de données de fonctionner sans .net 3.5
Il y a un travail à faire en créant un fichier DatabaseMail.exe.config dans le même dossier où existe DatabaseMail.exe (dossier Binn), écrivez ce qui suit dans le fichier et enregistrez avec le codage utf-8
Source: CORRECTIF: SQL Server 2016 Database Mail ne fonctionne pas sur un ordinateur sur lequel le .NET Framework 3.5 n'est pas installé
la source
Prenez garde à cela à la place. De cette façon, il vous suffit de copier un fichier au lieu d'installer .net 3.5. Vous devez d'abord installer CU1. Vérifiez ici pour plus de détails.
la source
Outre les causes déjà mentionnées, il est également important d'activer le profil de messagerie au niveau de l'Agent SQL Server comme indiqué ici :
la source