Posta elettronica database e gli avvisi di posta elettronica con SQL Agent in LinuxDB Mail and Email Alerts with SQL Agent on Linux

QUESTO ARGOMENTO SI APPLICA A: noSQL Server su WindowssìSQL Server su LinuxnoDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

La procedura seguente mostra come impostare posta elettronica database e usarlo con SQL Server Agent (mssql-server agent) in Linux.The following steps show you how to set up DB Mail and use it with SQL Server Agent (mssql-server-agent) on Linux.

Nota

Per utilizzare posta elettronica database con SQL Server in Linux, è necessario utilizzare SQL Server 2017 RC1 o versioni successive.To use DB Mail with SQL Server on Linux, you need to use SQL Server 2017 RC1 or later.

PrerequisitiPrerequisites

  • SQL Server 2017 RC1 e versioni successiveSQL Server 2017 RC1 and above
  • SQL Server Agent v14.0.800.90-2 e versioni successive (se si prevede di utilizzare la posta elettronica per gli avvisi)SQL Server Agent v14.0.800.90-2 and above (if you plan to use email for alerts)

1. Abilitare posta elettronica database1. Enable DB Mail

USE master 
GO 
sp_configure 'show advanced options',1 
GO 
RECONFIGURE WITH OVERRIDE 
GO 
sp_configure 'Database Mail XPs', 1 
GO 
RECONFIGURE  
GO  

2. Crea nuovo account2. Create a new account

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

3. Creare un profilo predefinito3. Create a default profile

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 Database4. Add the Database Mail account to a Database Mail profile

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

5. Aggiungere account al profilo5. Add account to profile

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

6. Invio di posta elettronica di test6. Send test email

Nota

Potrebbe essere necessario passare al client di posta elettronica e abilitare "Consenti client meno sicuri inviare posta elettronica."You might have to go to your email client and enable the "allow less secure clients to send mail." Non tutti i client riconoscono posta elettronica database come un daemon di posta elettronica.Not all clients recognize DB Mail as an email daemon.

EXECUTE msdb.dbo.sp_send_dbmail 
@profile_name = 'default', 
@recipients = 'recipient-email@gmail.com', 
@Subject = 'Testing DBMail', 
@Body = 'This message is a test for DBMail' 
GO

7. Impostare il profilo di posta elettronica database utilizzando mssql conf o variabile di ambiente7. Set DB Mail Profile using mssql-conf or environment variable

È possibile utilizzare l'utilità mssql conf o variabili di ambiente per registrare il profilo di posta elettronica database.You can use the mssql-conf utility or environment variables to register your DB Mail profile. In questo caso, si parlerà predefinito il profilo.In this case, let's call our profile default.

# via mssql-conf
sudo /opt/mssq/bin/mssql-conf set sqlagent.databasemailprofile default
# via environment variable
MSSQL_AGENT_EMAIL_PROFILE=default

8. Impostare un operatore per le notifiche di processo SQLAgent8. Set up an operator for SQLAgent job notifications

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

9. Invia messaggio di posta elettronica al completamento 'Agente di Test del processo'9. Send email when 'Agent Test Job’ succeeds

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

Passaggi successiviNext steps

Per ulteriori informazioni sull'utilizzo di SQL Server Agent per creare, pianificare ed eseguire processi, vedere eseguire un processo di agente SQL Server in Linux.For more information on how to use SQL Server Agent to create, schedule, and run jobs, see Run a SQL Server Agent job on Linux.