Enviando e-mails com C#

Marcio Nizzola
3 min readJun 8, 2021

--

Muitas vezes nós precisamos enviar e-mails com C#, é uma tarefa simples e básica, as vezes precisamos até enviar anexos neste e-mail.

Então para deixar um exemplo prático e simples de se utilizar, vou criar este projeto abaixo que foi usado numa aula do Curso de Desenvolvimento de Software na Etec de Itu.

Para envio de e-mails, o C# dispõe de uma classe SmtpClient que vem da biblioteca nativa System.Net.Mail (mais informações em: SmtpClient Classe (System.Net.Mail) | Microsoft Docs).

Então vamos criar um projeto .Net do tipo Console apenas para fins didáticos onde iremos montar a estrutura para testar o envio de e-mails.

Para podermos realizar a leitura de arquivo de configurações em JSON e mapear suas propriedades para uma classe, tivemos que importar todos estes pacotes.

Para ajudar no futuro à reutilizar o código, fizemos um arquivo “appsettings.json” contendo as configurações de envio de e-mails, onde ao preenchê-lo você seta as configurações necessárias.

Faremos uso de uma classe para carregar estas configurações e enviá-las ao nosso método de envio de e-mails.

Como nossa aplicação é do tipo console, iremos obter as configurações no nosso “program.cs”

Para os anexos, temos que preparar algo diferente:

  1. Crie a pasta “Files”
  2. Copie arquivos para ela com as imagens que quer anexar no e-mail
  3. Configure para que a aplicação ao compilar e montar o diretório de testes, envie uma cópia dos arquivos para lá.

Assim poderemos utilizar um método que obtém na pasta todos os arquivos que estão ali para nós anexarmos no e-mail.

Observação: Numa aplicação normal, basta você fornecer a lista de arquivos, isto foi feito apenas para que possamos carregar automaticamente no nosso teste.

Já aqui como é uma aplicação de Teste, optei por buscar todos arquivos na pasta “Files” e enviá-los como anexos.

Abaixo temos o código do “program.cs” da aplicação.

E finalmente vamos para o método de envio de e-mails, procurei fazer da forma mais amigável possível para entendimento das funcionalidades.

Para isto criei uma classe “Util.cs” que contém os métodos necessários para o envio, sendo o método “EnviaMensagem” responsável por realizar todo o processo de envio.

Além disso, métodos auxiliares foram criados para adicionar destinatários no objeto de e-mail, simplificando assim as tarefas.

Foi criado um método “AddAttachment” que faz o trabalho de inserção na mensagem dos anexos.

E assim pudemos enviar e-mails de forma simples e prática.

Lembrando-se que se for utilizar uma conta do Google ou outro provedor será necessário liberar as políticas de acesso externo / segurança conforme cada provedor, nas suas configurações.

Fonte: https://github.com/NIZZOLA/DotNetSendEmail

--

--

Marcio Nizzola
Marcio Nizzola

Written by Marcio Nizzola

Microsoft MVP | Software Architect na CI&T | Prof. da Etec Itu | Membro Fundador da Comunidade Itu Developers.

No responses yet