Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

266
Visualizações
nodemailer: Connection closed unexpectedly

I deployed a function to firebase and when I test the function to send an email I get the following error:

Error: Connection closed unexpectedly
    at SMTPConnection._onClose (/workspace/node_modules/nodemailer/lib/smtp-connection/index.js:824:34)
    at TLSSocket.SMTPConnection._onSocketClose (/workspace/node_modules/nodemailer/lib/smtp-connection/index.js:191:42)
    at Object.onceWrapper (events.js:520:26)
    at TLSSocket.emit (events.js:412:35)
    at TLSSocket.emit (domain.js:537:15)
    at net.js:686:12
    at TCP.done (_tls_wrap.js:564:7)
    at TCP.callbackTrampoline (internal/async_hooks.js:130:17) 

This is the function I use to send the email:

const transporter = nodemailer.createTransport({
  host: "host",
  port: 465,
  secure: true,
  auth: {
    user: "email",
    pass: "pass",
  },
});

exports.sendMailUser =
  functions.firestore.document("collection/Users").onUpdate(async (snapshot, context) => {
    const data = snapshot.after.data();
    const dataReceived = data.users;
    const name = dataReceived[dataReceived.length - 1].name;
    const email = dataReceived[dataReceived.length - 1].email;
    const password = dataReceived[dataReceived.length - 1].password;
    const body = "As dori crearea unui cont pe portalul e-Radauti cu urmatoarele date: <br>" + name + "<br>" + email + "<br>" + "password" + password;
    const mailOptions = {
      from: "Adaugare User pe portal-ul e-Radauti",
      to: "mail",
      subject: "Adaugare user pe portalul e-Radauti",
      bcc: "bcc",
      html: body,
    };
    console.log(mailOptions);
    await transporter.sendMail(mailOptions);
    return null;
  });

Edit: I've updated the code with @Dharmaraj suggestion and also I have the Blaze(Pay as you go) plan

enter image description here

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

I've solved this by creating a new transporter and I've added it inside the function:

exports.sendMailUser =
  functions.firestore.document("collection/Users").onUpdate(async (snapshot, context) => {
    const transporter2 = nodemailer.createTransport({
      host: host,
      port: 465,
      debug: true,
      secure: true, 
      auth: {
        user: user,
        pass: pass,
      },
    });
    var data = snapshot.after.data();
    var dataReceived = data.users;
    var body = "As dori crearea unui cont pe portalul e-Radauti cu urmatoarele date: <br>" + dataReceived[dataReceived.length - 1].name + "<br>" + dataReceived[dataReceived.length - 1].email + "<br>" + "password:" + dataReceived[dataReceived.length - 1].password;
    var mailOptions = {
      from: "Adaugare User pe portal-ul e-Radauti",
      to: to,
      subject: "Adaugare user pe portalul e-Radauti",
      bcc: bcc,
      html: body,
    };
    //console.log(mailOptions);
    await transporter2.sendMail(mailOptions);
    return null;
  });

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda