Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

310
Vistas
Nodemailer no envía correo electrónico, muestra "Mensaje enviado: indefinido"

Estaba funcionando y luego no. Envié algunos correos y después de un tiempo dejó de funcionar. Recibo "Mensaje enviado: Indefinido" (nodo: 9048) Advertencia de rechazo de promesa no controlada: Error: generar ENOENT de sendmail en Process.ChildProcess._handle.onexit (internal/child_process.js:269:19)

No tengo ni idea de porqué.

Frontend: la consola de Axios registra los datos de respuesta, por lo tanto, el servidor y el frontend funcionan. Es solo el problema con el Nodemailer.

Cualquier ayuda es apreciada. ¡Gracias!

 const express = require("express"); const app = express(); const cors = require("cors"); const nodemailer = require("nodemailer"); const path = require("path"); const fs = require("fs"); const readData = path.join(__dirname, "../email_take2/data.json"); const { v4: uuidv4 } = require("uuid"); app.use(express.json()); app.use(cors()); const port = process.env.PORT || 5000; app.listen(5000, () => console.log(`Listening at port ${port}`)); if (process.env.NODE_ENV === "production") { // Set static folder app.use(express.static("../client/build")); app.get("*", (req, res) => { res.sendFile(path.join(__dirname, "../client", "build", "index.html")); }); } function listUserData() { const data = fs.readFileSync(readData); return JSON.parse(data); } app.post("/sendEmail", function (req, res) { console.log(req.body); const emailInfo = { id: uuidv4(), email: req.body.email, cc: req.body.cc, message:req.body.message, }; const dataArray = listUserData(); dataArray.push(emailInfo); fs.writeFileSync(readData, JSON.stringify(dataArray)); res.send(emailInfo); console.log("SentBody", emailInfo); let transporter = nodemailer.createTransport({ sendmail:true, host: "smtp.outlook.com", port: 587, secure: false, // true for 465, false for other ports tls: { ciphers: "SSLv3", }, auth: { user: "memail@outlook.com", // generated ethereal user pass: "mypw", // generated ethereal passwordAccount.pass, }, }); // send mail with defined transport object let info = transporter.sendMail({ from: '"Fred Foo 👻" <foo@example.com>', // sender address to: "garbageacc7878@outlook.com", // list of receivers subject: "Hello ✔", // Subject line text: "Hello world?", // plain text body html: "<b>Hello world?</b>", // html body }); console.log("Message sent: %s", info.messageId); return emailInfo; });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

transporter.sendMail devuelve una promesa, es por eso que el registro de su consola tiene undefined . Entonces adjunte un .then y .catch .

 transporter.sendMail(...) .then((data)=>{console.log('Mail sent', data)}) .catch(err => {console.error('Failure',err)})

O haga que su controlador de solicitudes sea una función asíncrona y use async await await y use tryCatch .

 try{ let data = await transporter.sendMail(...) console.log('Mail sent', data) } catch (err) { console.error('Failure',err) }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda