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.

[nodemailer][nodejs] no puede enviar un correo electrónico desde el servidor

Obtengo el siguiente error al usar nodemailer en mi servidor, funciona localmente (clásico)

Error: Tiempo de espera de conexión
en SMTPConnection._formatError (/var/www/notion-to-self/node_modules/nodemailer/lib/smtp-connection/index.js:784:19)
en SMTPConnection._onError (/var/www/notion-to-self/node_modules/nodemailer/lib/smtp-connection/index.js:770:20)
en Tiempo de espera anónimo (/var/www/notion-to-self/node_modules/nodemailer/lib/smtp-connection/index.js:229:22)
en listOnTimeout (node:internal/timers:557:17)
en processTimers (node:internal/timers:500:7) {
código: ‘ETIMEDOUT’,
comando: ‘CONEXIÓN’} no gestionado

Realizo nc -v -u smtp.ethereal.email 587 y la conexión funciona ¡Conexión a smtp.ethereal.email en el puerto 587 [udp/*] correcta! y si me conecto al servidor desde mi terminal nc -v -u ip.del.servidor 587 también obtengo un correcto

Aquí está mi transportador


const transporter = isProduction ? nodemailer.createTransport({ service: 'Mailjet', auth: { user: 'xxx', pass: 'xxx' } }) : nodemailer.createTransport({ host: 'smtp.ethereal.email', port: 587, secure: false, // true for 465, false for other ports auth: { user: 'some.user@ethereal.email', // usuario etéreo generado pass: 'contraseña' // contraseña etérea generada } })

Lo ejecuto con NODE_ENV=development node nombre_del_script.mjs

Funciona localmente. Estoy conectado como root, todo se ejecuta correctamente hasta que llego al transportador. La misma versión de node que en el entorno local v17.2.0. ¿Cómo puedo depurar una conexión SMTP… parece que está abierta?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el error es un tiempo de espera de conexión al intentar usar nodemailer en el servidor, pero funciona localmente sin problemas. La conexión al servidor SMTP también funciona cuando se prueba desde la terminal.

    Para depurar la conexión SMTP, existen algunos pasos posibles a seguir:

    1. Verificar la configuración del firewall: Asegurarse de que las reglas del firewall no estén bloqueando la conexión al servidor SMTP. Verificar las reglas de salida en el servidor para ver si están bloqueando alguna conexión saliente en el puerto 587.
    2. Usar telnet para probar la conexión: Intentar usar telnet para conectarse al servidor SMTP desde el servidor donde se ejecuta el código de nodemailer. Esto puede proporcionar más información sobre si el servicio SMTP está en ejecución y si la conexión está siendo bloqueada.

    3. Habilitar la depuración en nodemailer: Habilitar la depuración en nodemailer para obtener más información sobre la conexión SMTP. Para habilitar la depuración, agregar la siguiente línea a las opciones del transportador:

    debug: true,
    

    Esto imprimirá más información sobre la conexión SMTP cuando nodemailer se esté ejecutando.

    1. Usar un servidor SMTP diferente: Si los pasos anteriores no resuelven el problema, intentar usar un servidor SMTP diferente para ver si el problema está en el servidor actual. Probar la conexión con el nuevo servidor utilizando telnet y actualizar las opciones del transportador con los detalles del nuevo servidor SMTP.

    Con estos pasos, debería ser posible depurar el problema de conexión SMTP y resolverlo.

Comments are closed.