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é 🙂
Thanks
TMJ!
Obrigado. Deu certo!!!
Valeu! 🙂
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?
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é
Top, muito top, igualmente todas as postagens do blog.
Josué voce é 10
Valeu Will! Fico feliz que o conteúdo está te ajudando! Abraço, Josué
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?
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é
Excelente post ..