Messagerie de base de données

S’applique à :SQL ServerAzure SQL Managed Instance

Database Mail est une solution d’entreprise permettant d’envoyer des messages électroniques à partir du moteur de base de données SQL Server ou d’Azure SQL Managed Instance. Vos applications peuvent envoyer des messages électroniques aux utilisateurs à l’aide de la messagerie de base de données via un serveur SMTP externe. Ces messages peuvent contenir les résultats d'une requête, voire des fichiers de n'importe quelle ressource de votre réseau.

Note

La messagerie de base de données est disponible dans le moteur de base de données SQL Server et Azure SQL Managed Instance, mais pas dans les pools élastiques et singleton de base de données Azure SQL. Pour plus d’informations sur l’utilisation de Database Mail dans Azure SQL Managed Instance, consultez Automatiser les tâches de gestion à l’aide de travaux SQL Agent dans Azure SQL Managed Instance.

Avantages liés à l'utilisation de la messagerie de base de données

La messagerie de base de données est fiable, évolutive, sûre et facilement prise en charge.

Fiabilité

  • Elle utilise le protocole SMTP (Simple Mail Transfer Protocol) standard pour l'envoi de messages. Vous pouvez utiliser la messagerie de base de données sans installer un client MAPI étendu sur l’ordinateur qui exécute SQL Server.

  • Isolement du processus. Pour réduire l’impact sur SQL Server, le composant qui fournit des exécutions de messagerie en dehors de SQL Server, dans un processus distinct. SQL Server continuera à mettre en file d’attente les messages électroniques même si le processus externe s’arrête ou échoue. Ces messages seront envoyés une fois que le processus extérieur est rétabli ou que le serveur SMTP est en ligne.

  • Comptes de basculement. Un profil de messagerie de base de données vous permet de spécifier plusieurs serveurs SMTP. Si l'un deux est indisponible, le courrier est envoyé vers un autre serveur.

  • Prise en charge de cluster. La messagerie de base de données peut être installée sur un cluster.

Extensibilité

  • Remise à l'arrière-plan : la messagerie de base de données assure la remise à l'arrière-plan ou asynchrone du courrier électronique. Lorsque vous appelez sp_send_dbmail pour envoyer un message, Database Mail ajoute une requête à une file d’attente Service Broker. La procédure stockée est immédiatement retournée. Le composant de messagerie externe reçoit la demande et transmet le courrier électronique.

  • Plusieurs profils : La messagerie de base de données vous permet de créer plusieurs profils au sein d’une instance SQL Server. Vous pouvez également choisir le profil que la messagerie de base de données utilise lorsque vous envoyez un message.

  • Plusieurs comptes : chaque profil peut contenir plusieurs comptes de basculement. Vous pouvez configurer différents profils avec différents comptes afin de distribuer le courrier électronique vers plusieurs serveurs de messagerie.

  • Compatibilité 64 bits : La messagerie de base de données est entièrement prise en charge sur les installations 64 bits de SQL Server.

Sécurité

  • Désactivé par défaut : pour réduire la surface d’exposition de SQL Server, les procédures stockées de la messagerie de base de données sont désactivées par défaut.

  • Sécurité de la messagerie :pour envoyer la messagerie de base de données, vous devez être membre du rôle de base de données DatabaseMailUserRole dans la msdb base de données.

  • Sécurité du profil : la messagerie de base de données garantit la sécurité des profils de messagerie. Vous choisissez les msdb utilisateurs ou groupes de base de données qui ont accès à un profil de messagerie de base de données. Vous pouvez accorder l’accès à des utilisateurs spécifiques ou à tous les utilisateurs dans msdb. Un profil privé limite l'accès à une liste d'utilisateurs. Un profil public autorise l'accès à tous les utilisateurs d'une base de données.

  • Administrateur de taille des pièces jointes : la messagerie de base de données limite la taille des fichiers joints (limite configurable). Vous pouvez modifier cette limite en utilisant la procédure stockée sysmail_configure_sp .

  • Extensions de fichiers interdites : la messagerie de base de données maintient une liste d'extensions de fichiers interdites. Les utilisateurs ne peuvent pas joindre de fichiers dont l'extension figure dans la liste. Vous pouvez modifier cette liste en utilisant sysmail_configure_sp.

  • La messagerie de base de données s’exécute sous le compte de service du moteur SQL Server. Pour joindre un fichier d’un dossier à un e-mail, le compte du moteur SQL Server doit disposer des autorisations nécessaires pour accéder au dossier avec le fichier.

Prise en charge

  • Configuration intégrée : La messagerie de base de données conserve les informations relatives aux comptes de messagerie au sein du moteur de base de données SQL Server. Il n'est pas nécessaire de gérer un profil de messagerie dans une application cliente externe. L'Assistant Configuration de la messagerie de base de données offre une interface pratique pour la configuration de la messagerie de base de données. Vous pouvez également créer et gérer des configurations de messagerie de base de données à l’aide de Transact-SQL.

  • Journalisation. La messagerie de base de données enregistre l’activité de messagerie vers SQL Server, le journal des événements de l’application Microsoft Windows et les tables de la msdb base de données.

  • Audit : La messagerie de base de données conserve les copies des messages et pièces jointes envoyés dans la msdb base de données. Vous pouvez facilement contrôler l'utilisation de la messagerie et consulter les messages conservés.

  • Prise en charge du HTML : la messagerie de base de données vous permet d'envoyer des messages au format HTML.

Architecture de la messagerie de base de données

La messagerie de base de données est conçue selon une architecture de file d'attente qui fait appel aux technologies Service Broker. Lorsque les utilisateurs s’exécutent sp_send_dbmail, la procédure stockée insère un élément dans la file d’attente de messagerie et crée un enregistrement qui contient le message électronique. L'insertion de la nouvelle entrée dans la file d'attente de messagerie active le processus de messagerie de base de données externe (DatabaseMail.exe). Le processus externe lit les informations du message et envoie celui-ci aux serveurs de messagerie appropriés. Le processus externe insère un élément dans la file d'attente État pour obtenir le résultat de l'opération d'envoi. L'insertion de cette nouvelle entrée dans la file d'attente d'état active une procédure stockée interne qui met à jour l'état du message électronique. Outre qu'elle stocke le message électronique envoyé (ou non envoyé), la messagerie de base de données enregistre également toutes les pièces jointes dans des tables système. Les vues de la messagerie de base de données fournissent l'état des messages pour la résolution de problèmes, et les procédures stockées permettent d'administrer la file d'attente de la messagerie de base de données.

msdb sends messages to an SMTP mail server

Présentation des composants de messagerie de base de données

La messagerie de base de données est composée des composants principaux suivants :

  • Composants de configuration et de sécurité

    La messagerie de base de données stocke les informations de configuration et de sécurité dans la msdb base de données. Les objets de configuration et de sécurité créent les profils et les comptes utilisés par la messagerie de base de données.

  • Composants de messagerie

    La msdb base de données joue le rôle de base de données hôte de messagerie qui contient les objets de messagerie que la messagerie de base de données utilise pour envoyer des messages électroniques. Ces objets incluent la sp_send_dbmail procédure stockée et les structures de données qui contiennent des informations sur les messages.

  • Exécutable de la messagerie de base de données

    L’exécutable de la messagerie de base de données est un programme externe qui lit à partir d’une file d’attente dans la msdb base de données et envoie des messages aux serveurs de messagerie.

  • Composants de journalisation et d'audit

    La messagerie de base de données enregistre les informations de journalisation dans la msdb base de données et le journal des événements de l’application Microsoft Windows.

Configuration de SQL Agent pour utiliser la messagerie de base de données

Vous pouvez configurer l'Agent SQL Server de manière à ce qu'il utilise la messagerie de base de données. Cette opération est requise pour les notifications d'alertes et la notification automatique à l'achèvement d'un travail.

Avertissement

Les étapes individuelles d’un travail peuvent également envoyer des messages électroniques sans configurer SQL Server Agent pour utiliser la messagerie de base de données. Par exemple, une étape de travail Transact-SQL peut utiliser la messagerie de base de données pour envoyer les résultats d’une requête à une liste de destinataires.

Vous pouvez configurer SQL Server Agent pour envoyer des messages électroniques à des opérateurs prédéfinis quand :

  • Une alerte est déclenchée. Les alertes peuvent être configurées pour l'envoi de notifications par courrier électronique d'événements spécifiques qui se produisent. Par exemple, des alertes peuvent être configurées pour notifier à un opérateur une situation du système d'exploitation ou un événement de base de données particuliers, qui peuvent nécessiter une action immédiate. Pour plus d’informations sur la configuration des alertes, consultez Alertes.

  • Une tâche planifiée, telle qu'une sauvegarde de base de données ou un événement de réplication, réussit ou échoue. Par exemple, vous pouvez utiliser sql Server Agent Mail pour notifier les opérateurs si une erreur se produit pendant le traitement à la fin d’un mois.

Voir aussi

Étapes suivantes