Profils de messagerie de base de données

Un profil de messagerie de base de données est une collection triée de comptes de messagerie de base de données apparentés. Pour envoyer du courrier, vous devez être membre du rôle DatabaseMailUserRole de la base de données msdb et disposer d'au moins un accès à un profil de messagerie de base de données. Les profils permettent aux administrateurs de base de données de reconfigurer, sans modifier le code des applications, les procédures stockées et les applications de base de données qui utilisent la messagerie électronique. Par exemple, un profil peut être configuré avec un ensemble de comptes de messagerie pendant le développement et le test d'une application, puis être mis à jour avec un autre ensemble de comptes lorsque l'application passe en production. L'application utilise le même nom de profil mais envoie le courrier électronique à l'aide d'une liste différente de serveurs de messagerie.

Notes

Comme la messagerie de base de données n'utilise pas l'interface MAPI (Messaging Application Programming Interface), ses profils ne sont pas des profils de messagerie MAPI. La messagerie de base de données n'utilise pas les profils SQL Mail.

Les profils améliorent la fiabilité dans les situations où un serveur de messagerie n'est plus accessible ou en mesure de traiter les messages. Chaque compte du profil possède un numéro de séquence. Celui-ci détermine l'ordre dans lequel la messagerie de base de données utilise les comptes du profil. Pour un nouveau message électronique, la messagerie de base de données utilise le dernier compte qui a envoyé un message correctement ou, si aucun message n'a été envoyé, le compte qui possède le plus petit numéro de séquence. Si ce compte échoue, la messagerie de base de données utilise le compte qui possède le numéro de séquence plus élevé suivant, et ainsi de suite jusqu'à ce qu'elle envoie le message correctement ou que le compte qui possède le numéro de séquence le plus élevé échoue. Si le compte qui possède le numéro de séquence le plus élevé échoue, la messagerie de base de données interrompt les tentatives d'envoi du courrier électronique pour la durée configurée dans le paramètre AccountRetryDelay de sysmail_configure_sp, puis relance le processus de tentative d'envoi du courrier électronique en commençant à partir du numéro de séquence le moins élevé. Utilisez le paramètre AccountRetryAttempts de sysmail_configure_sp pour configurer le nombre de fois que le processus de messagerie externe tente d'envoyer le message électronique à l'aide de chaque compte du profil spécifié.

Si plusieurs comptes possèdent le même numéro de séquence, la messagerie de base de données utilise uniquement l'un d'eux pour un message électronique donné. Dans ce cas, la messagerie de base de données ne garantit pas quel est le compte utilisé pour ce numéro de séquence ni que le même compte est utilisé d'un message à l'autre.

En outre, les profils permettent aux administrateurs de base de données de contrôler l'accès à la messagerie électronique. L'adhésion à DatabaseMailUserRole est obligatoire pour envoyer des messages à l'aide de la messagerie de base de données. Les profils offrent une souplesse supplémentaire aux administrateurs en leur permettant de contrôler les expéditeurs de messages et les comptes utilisés. Pour chaque profil privé, la messagerie de base de données gère une liste d'utilisateurs autorisés à envoyer du courrier électronique à l'aide de ce profil. Les profils publics sont disponibles pour les utilisateurs ou les rôles répertoriés dans la base de données msdb qui sont également membres de DatabaseMailUserRole.

Par défaut, un profil est privé et son accès n'est accordé à aucun utilisateur. Pour rendre le profil public, accordez l'accès à l'utilisateur « public » ou à l'ID d'utilisateur 0. Pour plus d'informations sur l'octroi de l'accès aux profils, consultez sysmail_add_principalprofile_sp (Transact-SQL).

Un profil peut être un profil par défaut. Dans ce cas, les utilisateurs peuvent envoyer du courrier électronique à l'aide du profil sans spécifier celui-ci explicitement. Si l'utilisateur expéditeur du message électronique a un profil privé par défaut, la messagerie de base de données utilise ce profil. S'il ne dispose pas d'un tel profil, sp_send_dbmail utilise le profil public par défaut de la base de données. Si aucun de ces deux profils n'existe, la procédure stockée sp_send_dbmail renvoie une erreur. Dans tous les cas, les utilisateurs doivent être membres du rôle DatabaseMailUserRole pour pouvoir envoyer des messages à l'aide de la messagerie de base de données.