Condividi tramite


Avvisi di Posta elettronica database ed email con SQL Server Agent in Linux

Si applica a: SQL Server - Linux

Questo articolo illustra come configurare Posta elettronica database e come utilizzarlo con SQL Server Agent (mssql-server-agent) in Linux.

1. Abilitare Posta elettronica database

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. Creare un nuovo account

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

Attenzione

La password deve seguire i criteri password predefiniti di SQL Server. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.

3. Creare un profilo predefinito

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

4. Aggiungere l’account di Posta elettronica database a un profilo di Posta elettronica database

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

5. Aggiungere l'account al profilo

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

6. Inviare un messaggio email di prova

Potrebbe essere necessario passare al client di posta elettronica e abilitare allow less secure clients to send mail (Consenti ai client meno sicuri di inviare posta elettronica). Non tutti i client riconoscono Posta elettronica database come daemon di posta elettronica.

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. Impostare il profilo di Posta elettronica database usando mssql-conf o una variabile di ambiente

Per registrare il profilo di Posta elettronica database, è possibile usare l'utilità mssql-conf o variabili di ambiente. In questo caso, il profilo verrà chiamato default.

  • Impostare tramite mssql-conf:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile default
    
  • Impostare tramite le variabili di ambiente:

    MSSQL_AGENT_EMAIL_PROFILE=default
    

8. Configurare un operatore per le notifiche dei processi 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. Inviare un messaggio di posta elettronica quando il processo “Agent Test Job” ha esito positivo

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