Невозможно отправить письмо через узел js, пробовал несколько способов - PullRequest
0 голосов
/ 30 октября 2018
var nodemailer = require('nodemailer');

var transporter = nodemailer.createTransport({
    host: "smtp.gmail.com",
    secureConnection: false,
    port: 587,
    tls: {
        ciphers: 'SSLv3'
    },
    requireTLS: true,
    auth: {
        user: 'mygmail',
        pass: 'mypass'
    }
});

var mailOptions = {
    from: 'mygmail',
    to: 'receiver gmail',
    subject: 'Sending Email using Nodemailer',
    text: 'That was easy!'
};

transporter.sendMail(mailOptions, (error, info) => {
    if (error)
        return console.log(error);

    console.log('Email sent: ' + info.response);
});

Выше приведен мой код для отправки электронной почты через узел js, но я продолжаю сталкиваться с ошибкой тайм-аута, как показано ниже

{Ошибка: подключите ETIMEDOUT 74.125.24.109:587
в TCPConnectWrap.afterConnect [как oncomplete] (net.js: 1191: 14)
errno: 'ETIMEDOUT',
код: «СОЕДИНЕНИЕ»,
системный вызов: 'connect',
адрес: '74 .125.24.109 ',
порт: 587,
команда: 'CONN'}

Я также попробовал другой базовый способ для следующей ссылки: https://www.w3schools.com/nodejs/nodejs_email.asp, но она также не работает.
Я уже включил разрешение на менее безопасное приложение в моей учетной записи Google.

Кроме того, я также попробовал метод, подобный приведенному ниже по ссылке: https://jsfiddle.net/burawi/1u9m2mou/, и он все еще не может работать, я сгенерировал все client_id, client_secret, access_token и refresh_token.

Есть ли у кого-нибудь последнее руководство или решение для отправки электронной почты через узел js?

Спасибо

1 Ответ

0 голосов
/ 31 октября 2018

Убедитесь, что вы включили на Менее безопасный доступ к приложению , иначе ваши письма не будут проходить.

Тогда вы можете попробовать этот пример:

{
    let transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            user: 'mymail',
            pass: 'mypass'
        }
    });

    let mailOptions = {
        from: 'mygmail',
        to: 'receiver gmail',
        subject: 'Sending Email using Nodemailer',
        text: 'That was easy!'
    };

        transporter.sendMail(mailOptions, (error, info)=>{
            if (error) {
                console.log(error);
            } else {
                console.log('Email sent ' + info.response');
            }
        }); 
    res.json({success: 'whatever message you plan on writing'});
}
...