Envio de e-mail com TypeScript e Node.js

Dando continuidade a serie de artigos que estou criando sobre TypeScript, nesse irei demonstrar como você pode criar um projeto de envio de e-mail com TypeScript e o Node.js.

Para que esse artigo não fique muito longo, irei iniciar o desenvolvimento a partir de um projeto já criado e configurado com o TS. Caso você tenha interesse em iniciar por ele também, segue o seu link: Ts-Standard.

Esse projeto está bem simples, dentro deles nos temos: index.ts para o código TS, package.json com o pacote do typescript e o tsconfig.json, arquivo de configuração do TypeScript. Para os próximos passos você irá precisar de uma IDE, eu irei utilizar o Visual Studio Code por causa da sua facilidade em trabalhar com projeto Node e TypeScript, mas você pode utilizar um de sua preferência.

Instalação de Pacotes

Como o projeto no GitHub está bem simples, você precisará baixar mais alguns pacotes, junto com os seus @types. Para isso, execute os comandos abaixo no seu terminal.

npm install nodemailer --save
npm install @types/nodemailer --save-dev
npm install express --save
npm install @types/express --save-dev
npm install body-parser --save
npm install @types/body-parser --save-dev
npm install nodemon --save

Caso tenha ficado alguma dúvida referente aos pacotes acima, segue uma breve descrição deles:

  • nodemail: será utilizado para envio de e-mail;
  • express: utilizado para criação de rotas;
  • body-parser: middler para trabalharmos com requests json;
  • nodemon: utilizado para facilitar o nosso desenvolvimento.

Estrutura do projeto

Com os pacotes importados, seu próximo passo será a criação da estrutura do seu projeto. Eu irei utilizar um padrão que eu tenho adotado nos meus projetos TypeScript com Node.js.

Navegando pelos diretórios nós temos:

  • configs/configs.ts: arquivo utilizado para separar algumas informações como as credenciais de SMTP, chave do JTW … etc;
  • services/mail.ts: arquivo criado para o serviço de envio de e-mail;
  • app.ts: arquivo bootstrap do projeto, nele estão todos os pacotes que serão utilizados Ex.: middlers, rotas … etc;
  • server.ts: arquivo de start do projeto, nele nós configuramos a porta que o projeto irá utilizar.

Agora atualize os arquivos a cima com os seguintes trechos de código:

configs/configs.ts

Nesse arquivo você precisará configurar as suas credencias para envio de e-mail com SMTP.

services/mail.ts

Acima nós temos:

  • 06 à 09: construtor recebendo os parâmetros: to informar o destinatário, subject: assunto do e-mail e message: mensagem podendo conter marcações HTML.
  • 12 à 42: método criado para pegar os valores do construtor e do nosso arquivo configs.ts, em seguinda nos estamos passando esses valores para o método createTransport do nodemailer.

app.ts

Navegando pelo código acima nós temos:

  • 01 à 03: Importação dos pacotes;
  • 04: importando o nosso serviço de envio de e-mail;
  • 10 à 14: construtor inicializando os pacotes e chamando as rotas.
  • 15 à 33: criação das rotas. Nesse projeto nós configuramos duas: uma com o verbo GET retornando uma mensagem com a versão da nossa API e uma outra para o Upload.

server.ts

server.ts

Como mencionado acima, esse arquivo é o start do projeto com a rota que iremos utilizar.

Testando o projeto

Para que você possa testar os passos anteriores, será necessário preencher o arquivo config.ts com as suas credenciais de SMTP, em seguida atualize o seu arquivo package.json com o trecho de código abaixo.

"scripts": {
"prestart": "tsc -w",
"start": "nodemon dist/server.js"
}

Agora execute os comandos na sua console: npm rum compile e caso esteja utilizando o Visual Studio Code, abra um outro terminal e execute: npm start ou abra um outro terminal e execute ele.

Caso não tenha aparecido nenhum erro, você irá receber a seguinte mensagem na sua console “server running in 3030”, passando que o seu projeto está sendo executado na porta 3030. Esse retorno pode ser visto na imagem abaixo:

Server rodando

Agora para validar o envio de e-mail, eu irei utilizar o Postman, uma ferramenta do Google Chrome que nos auxilia com os testes HTTP. Preencha ele conforme está na imagem abaixo, em seguida clique em SEND.

Postman teste de envio de e-mail

Abaixo podemos ver o e-mail recebido na minha caixa de entrada, note que ele respeitou as marcações p do HTML.

Com isso nós finalizamos mais esse artigo sobre TS ;). Caso você queira baixar o projeto desenvolvido nesse artigo, segue o seu link no GitHub: TS-Email.

Compartilhe:

Share on facebook
Facebook
Share on twitter
Twitter
Share on pinterest
Pinterest
Share on linkedin
LinkedIn

Table of Contents

Postagens Relacionadas

Maze Runner – Correr ou Morrer

Maze Runner – Correr ou Morrer O filme mostra o jovem Thomas (Dylan O’Brien), que vai parar em um lugar desconhecido, sem memória que o
TheWildsVidasSelvagens

the wilds: vidas selvagens

The Wilds: Vidas Selvagens The Wilds: Vidas Selvagens é uma série dramática de TV americana criada por Sarah Streicher que foi lançada no Prime Video
RockBottomRiser

Rock Bottom Riser

Rock Bottom Riser 01/03/2021(US) – Documentário – 1h 10min –   Nota: 0/10   Sinopse     Elenco Nainoa Thompson Como – master navigator Moses
SaferatHome

Safer at Home

Safer at Home 26/02/2021(US) – Filmes – 0h 0min –   Nota: 0/10   Sinopse     Elenco Mais informações Título Original Safer at Home