SQL Serveur
Depuis la version SQL 2005, il n'est plus requis d'utiliser un client Outlook ou Exchange pour permettre à SQL Serveur d'envoyer des emails. Cet outil est le Database Mail.
Il y a, comme toujours avec SQL Serveur, deux méthodes pour mettre en place le Database Mail :
Il y a 4 options disponibles pour la configuration de ces options :
Si vous cliquez sur le bouton Ajouter... vous êtes amené à une nouvelle feuille de saisie d'informations :
Le point parfois compliqué est de trouver un service de messagerie qui accepte vos paramètres de configuration avec Database Mail. Si vous avez de la double authentification pour l'envoi, cela va poser des problèmes. Si vous avez un système requérant un port 465, testez avec le port 587. Si vous utilisez gmail...n'utilisez pas gmail en production...
Vous pouvez forcer la validation du système de messagerie en ouvrant SSMS (SQL Server Management Studio) et en déroulant
l'élément Gestion. Faites un clic-droit sur Database Mail et faites Envoyer un message électronique de test.
Remplissez les champs de la fenêtre suivante avec le profil de messagerie précédemment configuré et le mail de destination.
Vous pouvez préciser un objet et un texte qui sera envoyé.
Une fenêtre d'information vous indique que le mail a normalement été envoyé. Si vous ne recevez rien, c'est là
que les problèmes peuvent survenir. Rechercher une raison pour laquelle un email ne peut pas être envoyé est souvent une galère
avec les journaux de SQL. Rien n'est moins précis qu'un message d'erreur made in Microsoft.
Décider d'envoyer des emails c'est bien mais pouvoir le faire requiert que l'Agent SQL soit autorisé pour cette action.
Faites un clic-droit sur l'élément Agent SQL et prenez ses propriétés. Dans la feuille de configuration
de l'agent SQL, sélectionnez Système d'alerte.
Activez le système de messagerie ainsi que le profil devant être utilisé.
SQL Serveur définit des agents comme étant des personnes physiques (ou presque) étant destinatrices des messages d'information ou d'alerte suite à l'exécution de jobs SQL, par mail, radiomessage, et en fonction d'horaires précisés. Je trouve que pour les horaires, Microsoft pourrait faire des efforts pour améliorer leur définition car seuls les jours du week-end peuvent disposer d'heures spécifiques. Sinon pour les jours de semaine, vou pouvez être embêtés par des mails à toute heure...
Pour créer un opérateur, depuis SSMS, déroulez SQL Agent et faites un clic droit sur l'élément Opérateurs.
Sélectionnez Nouvel opérateur... pour obtenir la fenêtre suivante.
Ces opérateurs seront affectés comme destinataires de notifications durant les jobs SQL Agent. En prenant l'élément
Notifications de la fenêtre de l'opérateur, vous remarquez une liste avec l'ensemble des jobs auxquels est affecté l'opérateur.
Vous pouvez ainsi vérifier si tous les jobs critiques sont soumis à notification.
.
Si vous déroulez la partie Travaux de l'Agent SQL, en prenant les propriétés d'un travail, vous pouvez définir les notifications
.
Il n'y a qu'à choisir l'opérateur destinataire du message d'alerte et sur quel événement la notification est envoyée.
Vous pouvez également préciser si la notification doit être inscrite ou non dans la journal Windows, ce que je vous conseille.