简体   繁体   English

使用 nodemailer 发送 gmail 但连接超时错误

[英]Sending gmail using nodemailer but Connection Timeout Error

I'm trying to send gmail using nodemailer.我正在尝试使用 nodemailer 发送 gmail 。 Here is my code.这是我的代码。

var transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            user: '<sender@gmail.com>',
            pass: '<password>'
        }
    });

    var mailOptions = {
        from: '<sender@gmail.com>',
        to: '<receiver@gmail.com>',
        subject: 'Sending Email using Node.js',
        text: 'That was easy!'
    };

    transporter.sendMail(mailOptions, function(error, info){
        if (error) {
            console.log(error);
        } else {
            console.log('Email sent: ' + info.response);
        }
    });

But I always got this error.但我总是得到这个错误。

{ Error: Connection timeout
    at SMTPConnection._formatError (E:\Work\Web\GatherSense\gather-sense-backend\node_modules\nodemailer\lib\smtp-connection\index.js:771:19)
    at SMTPConnection._onError (E:\Work\Web\GatherSense\gather-sense-backend\node_modules\nodemailer\lib\smtp-connection\index.js:757:20)
    at Timeout._connectionTimeout.setTimeout (E:\Work\Web\GatherSense\gather-sense-backend\node_modules\nodemailer\lib\smtp-connection\index.js:229:22)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10) code: 'ETIMEDOUT', command: 'CONN' }

I've spent much time and tried in many ways such as allowing secure less apps and turning off firewalls.我花了很多时间并尝试了多种方式,例如允许安全性较低的应用程序和关闭防火墙。 But always get the same error.但总是得到同样的错误。 Please help me and thank you.请帮助我,谢谢。

const nodemailer = require('nodemailer');
const smtpTransport = require('nodemailer-smtp-transport');
import config from '../config/environment';


const transporter = nodemailer.createTransport(smtpTransport({
    host: config.email_config.SMTP_HOST,
    port: config.email_config.SMTP_PORT,
    tls: {
        rejectUnauthorized: false
    },
    auth: {
        user: config.email_config.SMTP_AUTH_USER,
        pass: config.email_config.SMTP_AUTH_PASS
    }
}));

export function mail(emailObj) {
    return new Promise((resolve, reject) => {
        transporter.sendMail(emailObj)
            .then(success => {
                if (success) {
                    console.log("Email success:::", success);
                    resolve();
                } else {
                    resolve(null);
                }
            }).catch(err => {
                console.log("Email Error:::", err);
                reject(err)
            })
    })
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM