1
resposta

Problemas ao enviar e-mail com o nodemailer

Boa noite,

Durante a execução dos testes do envio do link de e-mail na criação do usuário com o pacote nodemailer tive uma exceção apresentada abaixo:

Error: self-signed certificate in certificate chain
    at TLSSocket.onConnectSecure (node:_tls_wrap:1532:34)
    at TLSSocket.emit (node:events:527:28)
    at TLSSocket._finishInit (node:_tls_wrap:946:8)
    at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:727:12) {
  code: 'ESOCKET',
  command: 'CONN'

Pesquisando no StackOverFlow informa que o certificado autoassinado do npm não existe mais: fonte(https://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more)

Para dar andamento na aula utilizei a informação vindas desses links do StackOverFlow.

https://pt.stackoverflow.com/questions/487784/nodemailer-error-self-signed-certificate-in-certificate-chain https://stackoverflow.com/questions/45088006/nodejs-error-self-signed-certificate-in-certificate-chain

Acrescentei a propriedade tls: {rejectUnauthorized: false,}

A configuração ficou desta forma:


async function enviaEmail(usuario){
    const contaTeste = await nodemailer.createTestAccount();
    const transportador = nodemailer.createTransport({
        host:'smtp.ethereal.email',
        auth:contaTeste,tls: {
            rejectUnauthorized: false
          }
    });

.....

A partir desse informação a exceção não ocorreu mais.

Forte abraço!

1 resposta

Eu também tive um problema, só que no meu caso eu não obtive nenhum retorno.

O console não imprimiu a URL esperada, aí mudei para await a chamada da função e nisso o sistema ficou rodando a request infinitamente.

Talvez seja um problema similar, se for, segue o que eu fiz:

Eu pesquisei e vi que o servidor Ethereal está fora do ar há um tempo, aí no lugar utilizei o Mailtrap.

Para configurar foi bem simples: primeiro eu criei uma conta no Mailtrap e após logar criei um inbox, que é onde você vai poder acessar os e-mails recebidos e acessar as configurações.

Ao clicar na engrenagem do inbox para acessar as configurações, você entrará na página e pode selecionar Nodemailer no select Integration, então você vai conseguir os dados necessários para inserir no transportador, como no print abaixo:

Print da página de configurações do inbox no Mailtrap