Configurar Database-mail no SQL Server utilizando uma conta do Gmail.

Olá, espero que você esteja bem! 😉

Bora pra mais um assunto do meu dia a dia, apesar de “simples” para alguns, porém ainda dá trabalho e dor de cabeça para muitos, rsrs.

Vamos lá! Neste post você vai aprender na prática a configurar o Database mail no SQL Server e também a configurar uma senha específica para este propósito. Neste Lab vamos usar uma conta do Gmail.

Nosso primeiro passo será configurar o Database mail no Microsoft SQL Server Management Studio.

Basta ir na Instância a qual vai configurar, depois em Management / Database Mail e com o botão direito do mouse em Configure Database mail.

Aparecerá uma tela de boas-vindas.

Como não temos nenhuma conta criada, vamos então criar uma nova conta e também um profile.

Por default, o SQL Server vem com o Database mail desabilitado, portanto basta aperta o YES para habilitar, caso este seja seu caso também.

Próxima tela vamos criar nosso Profile e abaixo adicionar uma conta clicando em Add.

Vamos cadastrar um Profile com o nome de MSSQLServer.

Temos agora algumas informações para preencher:

  • Conta;
  • SMTP / Porta;
  • Requer conexão segura (SSL);
  • E-mail;
  • Senha;

Nesse momento vamos precisar usar um e-mail existente ou criar um específico para usar como envio.

E conforme dito, vamos usar um e-mail do Gmail.

Após preencher as informações referentes ao e-mail usado, basta dar OK e depois NEXT.

Vamos selecionar o perfil como público (caso necessário podemos limitar o acesso dos usuários na procedure sp_send_dbmail) e deixar o Profile como Default.

Em seguida basta conferir se as informações estão corretas e finalizar.

Cadastro efetuado com sucesso.

Vamos agora validar algumas informações cadastradas.

Caso esteja com Status STOPPED, será necessário fazer o START.

Podemos usar os seguintes scripts:

O próxima validação é conferir nosso profile cadastrado.

Aqui temos um resumo.

Com base nas informações acima, iremos fazer nosso teste de envio.

Temos duas opções para realizar este teste, por T-SQL e/ou por tela (SSMS):

1) T-SQL

Pelo resultado não sabemos se foi enviado com sucesso ou não.

Para validar, vamos usar uma query com um CASE que mostrará o status do “envio“.

Chiii e agora, e-mail falhou. Alguma sugestão?

Vamos verificar o motivo?

Copiando a description temos:

The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 2 (2022-09-04T23:15:45). Exception Message: Cannot send mails to mail server. (O servidor SMTP requer uma conexão segura ou o cliente não foi autenticado. A resposta do servidor foi: 5.7.0 Authentication Required. Learn more at). )”

Ou seja, problema na autenticação.

Mas como, se eu coloquei exatamente minha senha do e-mail do Gmail e é a mesma que uso para ver meus e-mail todo dia!!! Tenho certeza que está correta.

Alguma sugestão?

Teremos que clicar no esqueci a senha no Gmail e configurar outra (apesar que tenho certeza que está correta)?

Não!

Agora vai a principal dica, anota aí…!

O Gmail por questão de segurança mudou algumas regras, dentre elas a verificação em duas etapas e a geração de senhas de app.

Segue uma postagem a respeito:

O que é a autenticação em dois fatores

A autenticação de dois fatores, segurança multifator ou verificação em duas etapas, é um método de segurança adotado atualmente por quase todas as empresas criadores de apps e programas web. Na verdade, significa logar-se, com dois procedimentos, sempre confirmando a identidade não somente com uma senha, mas verifica-la em outro dispositivo, por exemplo, ou um código (chave). Assim, para abrir a caixa de entrada de um serviço de e-mail, você deverá digitar a senha habitual e confirmar que você é você, acessando a caixa de entrada, para confirmar em outro aparelho – tablet, PC, celular.

Qual é o objetivo?
Google explica que a iniciativa pretende colocar todas as contas em um nível de proteção e segurança padrão, minimizando intercorrências com brechas na segurança.

Referêncial: Contas Google com autenticação em dois fatores: obrigatório para todos

Portanto vamos precisar fazer login em nossa conta do Gmail e fazer os ajustes necessários.

OBS: neste caso vamos usar nossa senha “padrão” que já sabemos.

Link: Fazer login na conta do Google

Após logar, vamos em Segurança para depois ativar a verificação em duas etapas.

Irá solicitar um telefone para cadastrar, o qual será feito uma validação inicial.

Em seguida Avançar.

O Google vai enviar um código, você precisará dele para continuar.

Feito isso, basta ATIVAR.

Pronto ativada, vamos voltar para tela inicial de segurança.

Nosso próximo passo é gerar uma senha específica de app, ou seja, lembra quando o SSMS deu um erro com a senha padrão que usamos? Agora ele vai ter uma senha só pra ele (egoísta, rsrs)!

Caso não ache a opção “Senhas de app”, na listagem. 

Basta pesquisar “Senhas” que vai aparecer, e então clicar.

Precisamos fazer login na conta novamente usando nossa senha “padrão”.

Nesta tela vamos selecionar a opção outro (nome personalizado).

Iremos colocar um nome sugestivo para ajudar em uma futura manutenção. Ficando fácil lembrar quais as senhas estou ainda usando e quais posso deletar.

Ao clicar em gerar, aparecerá uma senha. Copie em algum bloco de anotações, pois vamos precisar dela para configurar no SSMS.

Pronto, senha criada.

Vamos voltar no SSMS.

Agora já temos uma conta criada, e também um profile, pois criamos ambos anteriormente. Portanto basta selecionar a opção Manage Database Mail accounts and profiles.

Vamos colocar nossa nova senha recém criada.

Em seguida Next / Finishi / Close.

Faremos novo teste de envio de e-mail.

Vamos conferir se deu certo.

Agora sim, enviado com sucesso.

Vamos conferir se realmente recebemos o e-mail?

Oba, aqui deu certo, e aí com você? Me diga se mesmo após todos os passos realizados ainda deu algum erro pra você!

2) Via tela (SSMS)

Agora vamos testar via tela? Alguns preferem esse método.

Basta ir no Database mail, botão direito e clicar em Send Teste E-mail

Preencher o e-mail que vai receber o teste e clicar em Send Test E-Mail.

Depois em OK.

Vamos conferir?

Pronto, enviado também com sucesso!

Com o e-mail configurado, temos uma ampla possibilidade de usar a nosso favor.

Que tal um bônus agora?

Uma das grandes vantagens é usar o e-mail em caso de falha na execução de um Job, como por exemplo um Job de Backup, que falha por um motivo. Talvez por espaço em disco insuficiente, e com isso se nós DBA recebermos um e-mail informando que o backup falhou, poderemos resolver muito mais rápido o problema do que se descobrirmos só mesmo no dia em que precisar do tal backup e descobrirmos que não temos.

Sendo assim segue como exemplo um post meu, onde foi feito a criação de um Job de Backup.

Antes de alterar as configurações no Job, teremos que configurar um Operador.

No meu caso já tenho meus Operadores configurados, mas caso você não tenha, basta adicionar um New Operador.

Preencher o e-mail que irá receber as mensagens e Habilitar, depois OK.

Agora vamos alterar as Propriedades do Job para configurar a notificação.

Selecione Notifications, marque a caixinha do E-mail. Escolha o Operador a qual configuramos o e-mail e selecione “alertar” em caso de falhas.

Bora testar?

Vamos iniciar o job manualmente.

Veja que maravilha, recebemos o alerta da falha em nosso e-mail cadastrado e com isso podemos validar qual o motivo da falha no Job de Backup.

Portanto aprendemos a configurar o Database mail no SSMS, usando uma conta do Gmail e também alguns passos extras.

A utilização do SMTP pode ser não só do Gmail, mas também de outros provedores.  Porém cada um tem suas regras de segurança e podem exigir alguns parâmetros diferentes para ajustarem. Não sendo suficiente apenas inserir uma “simples senha” no Database mail e acharmos que vai dar tudo certo.

Por exemplo, para quem usa o SMTP do Office, pode estar passando alguma raiva com o envio do e-mail. Acontece que a Microsoft também por motivo de segurança passou a exigir algumas mudanças. E neste caso, é necessário validar várias configurações tanto no Servidor SQL Server, mas também no portal da conta Microsoft. Tenho atuado em bastante clientes assim, sendo necessário a realização de vários ajustes e com isso logo em seguida o e-mail volta a funcionar como um “passe de mágica”, rsrs. Mas este será assunto para uma outra postagem.

Concluímos que com o e-mail funcionando no Servidor, podemos ajustar os Jobs para notificar de falhas. Porém a funcionalidade não fica restrito apenas nesse exemplo que usamos. Podemos usar além das notificações, também o envio de promoções, newsletter dentro outros.

Outro ponto que deve ser ressaltado é com base nas possíveis validações e checagens de erros. Resolvi escrever este post pois passei por várias referências muito boas, porém sempre precisei pegar algo a mais, ou a menos. Portanto caso não tenha resolvido o seu problema não desanime, o seu problema pode estar relacionado a algum ponto a qual não precisei para fazer este post, e por isso não foi citado. Mas com certeza vai ter um solução em outro material.

Com base nesta questão, segue como referência uma postagem bem completa do meu amigo Dirceu Resende.

SQL Server – Como ativar e configurar o Database mail para enviar e monitorar e-mails pelo banco de dados (sp_send_dbmail)

É isso pessoal, obrigado e espero que tenha contribuído alguma coisa para o seu aprendizado.

Quaisquer dúvidas, sugestões, podem mandar mensagens, escrever nos comentários…

Até breve! #gogogo

ederlelis Administrator
DBA Consultor SQL Server

Deixe um comentário

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