Partage via


Database Mail et alertes de messagerie avec SQL Server Agent sur Linux

S’applique à :SQL Server sur Linux

L’article décrit comment configurer Database Mail et comment l’utiliser avec SQL Server Agent (mssql-server-agent) sur Linux.

1. Activer Database Mail

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO

EXECUTE sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE;
GO

2. Créer un nouveau compte

EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'SQLAlerts',
    @description = 'Account for Automated DBA Notifications',
    @email_address = 'sqlagenttest@example.com',
    @replyto_address = 'sqlagenttest@example.com',
    @display_name = 'SQL Agent',
    @mailserver_name = 'smtp.example.com',
    @port = 587,
    @enable_ssl = 1,
    @username = 'sqlagenttest@example.com',
    @password = '<password>';
GO

Attention

Votre mot de passe doit respecter la stratégie de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.

3. Créer un profil par défaut

EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'default',
    @description = 'Profile for sending Automated DBA Notifications';
GO

4. Ajouter le compte Database Mail à un profil Database Mail

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'default',
    @principal_name = 'public',
    @is_default = 1;
GO

5. Ajouter un compte au profil

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'default',
    @account_name = 'SQLAlerts',
    @sequence_number = 1;
GO

6. Envoyer un e-mail de test

Vous devrez peut-être accéder à votre client de messagerie et activer Autoriser les clients moins sécurisés à envoyer des courriers. Tous les clients ne reconnaissent pas Database Mail comme un démon de messagerie.

EXECUTE msdb.dbo.sp_send_dbmail
    @profile_name = 'default',
    @recipients = 'recipient-email@example.com',
    @subject = 'Testing DBMail',
    @body = 'This message is a test for DBMail';
GO

7. Définir le profil Database Mail à l’aide de la variable d’environnement mssql-conf

Vous pouvez utiliser l’utilitaire mssql-conf ou les variables d’environnement pour inscrire votre profil Database Mail. Dans ce cas, appelons notre profil default par défaut.

  • Définition via mssql-conf :

    sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile default
    
  • Définition via une variable d’environnement :

    MSSQL_AGENT_EMAIL_PROFILE=default
    

8. Configurer un opérateur pour les notifications de travaux SQL Server Agent

EXECUTE msdb.dbo.sp_add_operator
    @name = N'JobAdmins',
    @enabled = 1,
    @email_address = N'recipient-email@example.com',
    @category_name = N'[Uncategorized]';
GO

9. Envoyer un e-mail lorsque le « travail de test de l’agent » a été correctement effectué

EXECUTE msdb.dbo.sp_update_job
    @job_name = 'Agent Test Job',
    @notify_level_email = 1,
    @notify_email_operator_name = N'JobAdmins';
GO