Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – Como enviar e-mails pelo banco de dados utilizando CLR (C#)

Visualizações: 818 views
Tempo de Leitura: 5 minutos

OlĂ¡ pessoal,
Boa tarde!
Tudo bem com vocĂªs ?

Neste post vou demonstrar como enviar e-mails pelo banco de dados utilizando o CLR (C#). No post SQL Server – Como ativar e configurar o Database mail para enviar e monitorar e-mails pelo banco de dados (sp_send_dbmail) eu jĂ¡ havia demonstrado como enviar os e-mails pelo Database Mail do SQL Server, e desta vez vou mostrar como fazer isso diretamente pelo C#, sem precisar nem configurar nada no SQL Server para fazer o envio do e-mail.

Envio de e-mail simples

Neste primeiro exemplo, vou demonstrar a forma mais simples de se enviar um e-mail no formato HTML, com anexos, pelo CLR utilizando a linguagem de programaĂ§Ă£o C#. Vejam como Ă© fĂ¡cil:

Envio de e-mail mais completo

JĂ¡ neste segundo cĂ³digo-fonte, vou demonstrar uma forma mais completa e organizada de se criar uma Stored Procedure de envio de e-mail no CLR. Para isso, vou separar as informações de autenticaĂ§Ă£o em classes separadas e adicionar os seguintes recursos adicionais:

  • ValidaĂ§Ă£o de parĂ¢metros de entrada (input)
  • GravaĂ§Ă£o de log de envio de e-mail para auditoria
  • Rotina de RETRY, para tentar enviar o e-mail atĂ© 10x em caso de falha
  • Try..Catch para tratamento de erros e exceções

Pré-Requisitos

Antes de demonstrar o cĂ³digo-fonte da Stored Procedure de envio de e-mail, vocĂª irĂ¡ precisar criar as classes dependentes abaixo, alĂ©m da classe Retorno, que utilizo para enviar mensagens de erro para o banco de dados. O cĂ³digo dessa classe vocĂª entra no post SQL Server – Como enviar avisos e mensagens de erro para o banco pelo CLR (C#).

Servidor.cs

Utils.cs

CĂ³digo-fonte da Stored Procedure stpEnvia_Email:

Exemplos de uso

Veja abaixo, alguns exemplos de como utilizar essa Stored Procedure no seu dia a dia.

Envio de e-mail simples:

Envio de e-mail para mĂºltiplos destinatĂ¡rios:

Envio de e-mail com anexo:

Envio de e-mail com mĂºltiplos anexos:

Espero que tenham gostado do post e atĂ© a prĂ³xima.
Abraço!