簡體   English   中英

使用 nodemailer 發送 gmail 但連接超時錯誤

[英]Sending gmail using nodemailer but Connection Timeout Error

我正在嘗試使用 nodemailer 發送 gmail 。 這是我的代碼。

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);
        }
    });

但我總是得到這個錯誤。

{ 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' }

我花了很多時間並嘗試了多種方式,例如允許安全性較低的應用程序和關閉防火牆。 但總是得到同樣的錯誤。 請幫助我,謝謝。

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