es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error TLSSocket.onConnectSecure intentando enviar correo electrónico desde Hotmail con Nodemailer.

Estoy intentando usar nodemailer con hotmail para enviar correo electrónico. Al probar desde Postman, obtengo el siguiente error:

Microsoft Windows [Versión 10.0.19041.1348]
(c) Microsoft Corporation. Todos los derechos reservados.

D:\node_apps\subscription-api>node subApp.js
Aplicación en ejecución en el puerto: 8080
D:\node_apps\subscription-api\subApp.js:139
if(error) throw error;
^

Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1514:34)
at TLSSocket.emit (events.js:400:28)
at TLSSocket._finishInit (_tls_wrap.js:936:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:708:12) {
code: ‘ESOCKET’,
command: ‘CONN’
}

D:\node_apps\subscription-api>

Mi código se ve así:

app.get(‘/api/v1/sendsubexpnotice/:email’,function(req,res){
let email = req.params.email;
if(!email){
return res.status(400).send({error: true, message: ‘Por favor proporcione un correo electrónico’});
}
const transporter = nodemailer.createTransport({
service:’hotmail’,
auth:{
user: ‘xxxxxxxxxx@hotmail.com’,
pass: ‘xxxxxxxxxxx’
}
});
const mailOptions = {
from :’xxxxxxxxxxxxxx@hotmail.com’,
to: email,
subject: ‘¡Su suscripción está a punto de caducar!’,
text : ‘¡Su suscripción está a punto de caducar!’
};
transporter.sendMail(mailOptions,function(error,info){
if(error) throw error;
return res.send({error:false, data: results, message: ‘OK’});
})
})

¿Qué hago para solucionar este error?
¿Cómo logro enviar el correo electrónico? Agradeceré su consejo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que tiene un problema con un certificado autofirmado. Puede intentar establecer la opción rejectUnauthorized en false al crear el transportador:

    const transporter = nodemailer.createTransport({
        service: 'hotmail',
        auth: {
            user: 'xxxxxxxxxx@hotmail.com',
            pass: 'xxxxxxxxxxx'
        },
        rejectUnauthorized: false
    });
    

    Esto debería permitir establecer la conexión, pero no se recomienda para entornos de producción.

Comments are closed.