Oi! Seja bem-vindo!

Hoje vou te mostrar COMO ENVIAR E-MAIL pelo SQL SERVER usando qualquer conta do GMAIL como servidor SMTP! Uma tática incrível para você que quer monitorar ou auditar seu SQL de forma efetiva! 🙂

 

ENVIANDO E-MAILS PELOS SQL:

Use o script abaixo para configurar o seu SQL, apenas lembre-se de altera-lo para configurar a conta do GMAIL de sua preferência. Depois me avise como você vai usar o envio de e-mails para facilitar sua vida!

 

 

---------------------------------------------------------------------------------
-- SQL Database Mail: Enviar e-mail por t-sql usando o Gmail
---------------------------------------------------------------------------------
-- Passo 1) Pré-requisito para usar GMAIL
-- Acessar: https://myaccount.google.com/security e configurar "Allow less secure apps: ON"

-- Passo 2) Pré-requisito para enviar e-mails do SQL - Habilitar "Database Mail XPs"
execute sp_configure 'Show Advanced Options', 1
reconfigure
execute sp_configure 'Database Mail XPs', 1
reconfigure

-- Passo 3) -- CONFIGURAR A CONTA DO GMAIL NO SQL
-- Adicionar conta de e-mail
execute msdb.dbo.sysmail_add_account_sp
	-- Dados fíxos
	@mailserver_name = 'smtp.gmail.com', -- endereço do servidor de envio de e-mails
	@port = 587, -- porta de comunicação
	@enable_ssl = 1, -- habilitar SSL (criptografia durante o envio de dados)
	-- Dados da sua conta
	@account_name = 'Gmail_Conta', -- nome da conta dentro do SQL
	@display_name = 'Banco SQL',   -- Nome que aparecerá como remetente do e-mail
	@email_address = '[email protected]',
	@username = '[email protected]',
	@password = '*** Sua senha do gmail ***'

-- Passo 4) Adicionar perfil e associar a conta
-- Adicionar perfil para envio de e-mail
execute msdb.dbo.sysmail_add_profile_sp
	@profile_name = 'Gmail_Perfil',
	@description = 'Perfil para envio de notificações do SQL.'
-- Associar o perfil a conta
execute msdb.dbo.sysmail_add_profileaccount_sp
	@profile_name = 'Gmail_Perfil',
	@account_name = 'Gmail_Conta',
	@sequence_number = 1


-- Feito! :-)


-- ENVIAR UM E-MAIL DE TESTES PELO SQL! (help: https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql)
execute msdb.dbo.sp_send_dbmail 
	@profile_name = 'Gmail_Perfil',
	@recipients = '[email protected]',
	@subject = 'Assunto - Teste Database Mail',
	@body = 'Corpo da mensagem de teste.'



-- CONSULTAS / TROUBLESHOOTING
-- Contas cadastradas no SQL
select * from msdb.dbo.sysmail_account

-- Perfis existentes
select * from msdb.dbo.sysmail_profile

-- Associações Perfil & Conta
select * from msdb.dbo.sysmail_profileaccount

-- Emails enviados
select * from msdb.dbo.sysmail_mailitems

-- Consultar logs do gerenciador de e-mails
select * from msdb.dbo.sysmail_log



-- EXCLUIR AS CONFIGURAÇÕES:
/* 
-- Remover logs:
declare @hoje datetime = getdate()
execute msdb.dbo.sysmail_delete_mailitems_sp @sent_before = @hoje
execute msdb.dbo.sysmail_delete_log_sp 

-- Excluir profile:
execute msdb.dbo.sysmail_delete_profile_sp @profile_name = 'Gmail_Perfil'

-- Excluir conta:
execute msdb.dbo.sysmail_delete_account_sp @account_name = 'Gmail_Conta'

*/


 

CONCLUSÃO

Eeeeeeeeee! Fácil né? Esse script eu uso direto para monitorar bancos de dados e para receber e-mails de alerta sobre o que está acontecendo no dia a dia. Eu acho d++! Você pode usar isso para mandar relatórios automaticamente a qualquer horário enquanto você desfruta de sua atividade, comida, bebida, esporte ou companhia favorita! 🙂 Senhora automação sempre fazendo a nossa alegria!! kkkkk Espero que você tenha gostado e que continue firme e forte nos seus estudos – e na automação de tarefas!

Abraço do seu amigo Josué 🙂

11 respostas

  1. Ola, Josue.

    Me tira uma duvida, por gentileza? Possuo um sistema q envia notas fiscais eletronicas (arquivo XML) para clientes. Cada cliente tem uma base de dados dentro de uma Instancia do SQL Server Express. Ficaria muito pesado para o SQL fazer o envio dessas notas e outros envios de emails pontuais? Já vi pessoas dizendo que nao vale a pena fazer email marketing, por ex, pelo SQL, porque ficaria muito pesado. O envio de Notas é sempre poucos destinatários por email, mas são muitos emails. O que vc acha?

    1. Olá Reinaldo, bom dia! Eu faria um teste de capacity do hw que você tem vs vazão de msgs que planeja ter. Sem isso, a analises fica empírica e pode ser bastante imprecisa… Abraço, Josué

  2. Doutor, tudo bem? Eu fiz as configurações normalmente, mas esta dando a seguinte mensagem de erro:
    ==========================================
    The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2020-02-03T12:07:05). Exception Message: Cannot send mails to mail server. (Failure sending mail.). )
    ==========================================
    Sabe o que pode ser?

    1. Olá, é provável que não tenha executado o pré-requisito de autorizar o envio de e-mail por fontes não seguras no gmail, ou então existe algum firewall impedindo a conexão entre sua máquina e o servidor SMTP do gmail. Abs Josué

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *