Dépannage de la messagerie de base de données : étapes générales

Le dépannage de la messagerie de base de données implique de vérifier les aspects généraux du système de messagerie de base de données décrits ci-dessous. Ces procédures sont présentées dans un ordre logique, mais elles peuvent être évaluées dans n'importe quel ordre.

Déterminer si la messagerie de base de données est activée

  1. Dans le menu Démarrer, pointez successivement sur Tous les programmes, sur Microsoft SQL Server 2005 et sur Outils de configuration, puis cliquez sur Configuration de la surface d'exposition SQL Server.

  2. Cliquez sur Configuration de la surface d'exposition pour les fonctionnalités.

  3. Sous MSSQLSERVER, développez Moteur de base de données, puis cliquez sur Messagerie de base de données.

  4. Assurez-vous que la case à cocher Activer les procédures stockées de la messagerie de base de données est activée, puis cliquez sur Appliquer.

  5. Quittez l'outil Configuration de la surface d'exposition SQL Server.

Déterminer si les utilisateurs sont correctement configurés pour envoyer des messages à l'aide de la messagerie de base de données

  1. Pour pouvoir envoyer des messages à l'aide de la messagerie de base de données, les utilisateurs doivent être membres du rôle DatabaseMailUserRole. Les membres du rôle serveur fixe sysadmin et du rôle msdbdb_owner sont automatiquement membres du rôle DatabaseMailUserRole. Pour afficher tous les autres membres du rôle DatabaseMailUserRole, exécutez l'instruction suivante :

    EXEC msdb.sys.sp_helprolemember 'DatabaseMailUserRole' ;
    
  2. Pour ajouter des utilisateurs au rôle DatabaseMailUserRole, utilisez l'instruction suivante :

    sp_addrolemember @rolename = 'DatabaseMailUserRole', 
       @membername = '<database user>'
    
  3. Pour pouvoir envoyer des messages à l'aide de la messagerie de base de données, les utilisateurs doivent avoir accès à au moins un profil de messagerie de base de données. Pour afficher les utilisateurs (serveurs principaux) et les profils auxquels ils ont accès, exécutez l'instruction suivante :

    EXEC msdb.dbo.sysmail_help_principalprofile_sp ;
    
  4. Utilisez l'Assistant Configuration de la messagerie de base de données pour créer des profils et pour accorder l'accès des profils aux utilisateurs.

Confirmer que la messagerie de base de données est démarrée

  1. Le programme externe de messagerie de base de données est activé lorsqu'il y a des messages électroniques à traiter. S'il n'y a eu aucun message à envoyer pendant le délai d'attente spécifié, le programme est fermé. Pour confirmer que l'activation de la messagerie de base de données est démarrée, exécutez l'instruction suivante :

    EXEC msdb.dbo.sysmail_help_status_sp ;
    
  2. Si l'activation de la messagerie de base de données n'est pas démarrée, exécutez l'instruction suivante pour la démarrer :

    EXEC msdb.dbo.sysmail_start_sp
    
  3. Si le programme externe de messagerie de base de données est démarré, vérifiez l'état de la file d'attente des messages à l'aide de l'instruction suivante :

    EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail' ;
    

    La file d'attente des messages doit avoir la valeur d'état RECEIVES_OCCURRING. La file d'attente des états peut varier d'un moment à l'autre. Si l'état de la file d'attente des messages n'est pas RECEIVES_OCCURRING, essayez d'arrêter la file d'attente à l'aide de la procédure sysmail_stop_sp, puis de la redémarrer à l'aide de la procédure sysmail_start_sp.

ms187540.note(fr-fr,SQL.90).gifRemarque :
Utilisez la colonne length dans le jeu de résultats de la procédure sysmail_help_queue_sp pour déterminer le nombre de messages électroniques se trouvant dans la file d'attente des messages.

Déterminer si les problèmes de messagerie de base de données affectent tous les comptes d'un profil ou seulement certains comptes

  1. Si vous avez déterminé que certains profils, mais pas tous, peuvent envoyer des messages, il se peut que les problèmes viennent des comptes de messagerie de base de données utilisés par les profils affectés par les problèmes. Pour déterminer quels comptes parviennent à envoyer des messages, exécutez l'instruction suivante :

    SELECT sent_account_id, sent_date FROM msdb.dbo.sysmail_sentitems ;
    
  2. Si un profil défaillant n'utilise aucun des comptes répertoriés, il est possible qu'aucun des comptes disponibles pour ce profil ne fonctionne correctement. Pour tester des comptes individuels, utilisez l'Assistant Configuration de la messagerie de base de données pour créer un nouveau profil associé à un compte unique, puis utilisez la boîte de dialogue Envoyer un message électronique de test pour envoyer un message à l'aide du nouveau compte.

  3. Pour afficher les messages d'erreur renvoyés par la messagerie de base de données, exécutez l'instruction suivante :

    SELECT * FROM msdb.dbo.sysmail_event_log ;
    
ms187540.note(fr-fr,SQL.90).gifRemarque :
La messagerie de base de données considère qu'un message a été envoyé lorsqu'il est remis à un serveur de messagerie SMTP. Les erreurs qui se produisent après, par exemple à cause d'une adresse de destinataire non valide, peuvent empêcher la remise du message, mais elles n'apparaissent pas dans le journal de la messagerie de base de données.

Configurer la messagerie de base de données pour retenter l'envoi des messages

  1. Si vous avez déterminé que la messagerie de base de données échoue parce que le serveur SMTP ne peut pas être contacté de façon fiable, vous pourrez peut-être augmenter le taux de réussite de la remise des messages en augmentant le nombre de tentatives d'envoi de chaque message. Démarrez l'Assistant Configuration de la messagerie de base de données et sélectionnez l'option Afficher ou modifier les paramètres du système. Pour résoudre ce problème, vous pouvez également associer des comptes supplémentaires au profil ; ainsi, en cas de basculement du compte principal, la messagerie de base de données utilisera le compte de remplacement pour envoyer les messages.

  2. Dans la page Configurer les paramètres du système, le nombre de Tentatives de reprises de comptes est de 5 par défaut et le Délai entre reprises de comptes est de 60 secondes par défaut, ce qui signifie que la remise des messages échouera si le serveur SMTP ne peut pas être atteint dans un délai de 5 minutes. Augmentez ces paramètres pour accroître le délai imparti avant l'échec de la remise du courrier.

ms187540.note(fr-fr,SQL.90).gifRemarque :
Lorsqu'un grand nombre de messages est envoyé, l'utilisation de valeurs par défaut élevées peut améliorer la fiabilité, mais elle entraîne également une augmentation considérable de l'utilisation des ressources pour permettre à la messagerie de base de données d'envoyer à plusieurs reprises ces nombreux messages. Attaquez-vous au problème de base en essayant de résoudre le problème de réseau ou de serveur SMTP qui empêche la messagerie de base de données de contacter rapidement le serveur SMTP.

Sécurité

Vous devez être membre du rôle serveur fixe sysadmin pour pouvoir dépanner tous les aspects de la messagerie de base de données. Les utilisateurs qui ne sont pas membres du rôle serveur fixe sysadmin peuvent uniquement obtenir des informations sur les messages électroniques qu'ils ont essayé d'envoyer, mais pas sur les messages envoyés par d'autres utilisateurs.

Voir aussi

Tâches

Dépannage de la messagerie de base de données

Concepts

Messagerie de base de données
Architecture de la messagerie de base de données

Autres ressources

Procédures stockées de messagerie de base de données et SQL Mail (Transact-SQL)
Vues de la messagerie de base de données (Transact-SQL)
Assistant Configuration de la messagerie de base de données

Aide et Informations

Assistance sur SQL Server 2005