Partilhar via


Database Mail e alertas de email com o SQL Server Agent no Linux

Aplica-se a:SQL Server em Linux

Este artigo mostra como configurar o Database Mail e usá-lo com o SQL Server Agent (mssql-server-agent) no Linux.

Ativar o 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. Crie uma nova conta

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

Atenção

A sua palavra-passe deve seguir a política de palavra-passe padrão do SQL Server . Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.

3. Crie um perfil padrão

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

4. Adicionar a conta do Database Mail a um perfil do Database Mail

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

5. Adicionar conta ao perfil

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

6. Enviar e-mail de teste

Talvez seja necessário acessar seu cliente de e-mail e ativar a opção permitir que clientes menos seguros enviem e-mails . Nem todos os clientes reconhecem o Database Mail como um daemon de e-mail.

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. Definir o perfil do Database Mail usando mssql-conf ou variável de ambiente

Você pode usar o utilitário mssql-conf ou variáveis de ambiente para registrar seu perfil do Database Mail. Neste caso, vamos chamar nosso perfil default.

  • Definir via mssql-conf:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile default
    
  • Definir através da variável de ambiente:

    MSSQL_AGENT_EMAIL_PROFILE=default
    

8. Configurar um operador para notificações de trabalho do 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. Envie um e-mail quando o 'Trabalho de teste do agente' for bem-sucedido

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