Ошибка при отправке электронной почты с использованием nodemailer / smtp.gmail.com - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь настроить nodemailer для приложения.Когда я пытаюсь это сделать, я получаю сообщение об ошибке.

Это мои настройки:

        email = setting.email;
        password = setting.password;

        var transporter = nodemailer.createTransport({
            host: 'smtp.gmail.com',
            port: 587,
            secure: false, // true for 465, false for other ports
            auth: {
                user: '***********@gmail.com', // real email
                pass: '*********' // real password
            }});

        // var transporter = nodemailer.createTransport({
        //     service: 'gmail',
        //     auth: {
        //         user: email, // Your email id
        //         pass: password // Your password
        //     }
        // });

        var mailOptions = {// sender address
            from: email,
            to: to, // list of receivers
            subject: sub, // Subject line
            text: text, //, /// plaintext body
            html: html

        }

        //console.log(JSON.stringify(mailOptions));

        transporter.sendMail(mailOptions, function (error, info) {
            if (error) {
                console.error(error);
            } else {

                console.log(info.response);
            }
            ;
        });
    });

} catch (error) {
    console.error(error);

}

Я впервые пытаюсь использовать nodemailer.Я использую реальную электронную почту и пароль.Ошибка:

(узел: 18974) [DEP0025] DeprecationWarning: sys устарела.Вместо этого используйте util.Волшебство случается на порте 5000 ОШИБКА!ОШИБКА!ОШИБКА!ОШИБКА!provider_analytic_daily сохранено.{Ошибка: время ожидания соединения в SMTPConnection._formatError (/root/faszz/node_modules/smtp-connection/lib/smtp-connection.js:528:15) в SMTPConnection._onError (/ root / faszz / node_modules / smtp-connection / lib/smtp-connection.js:514:16) в SMTPConnection.(/root/faszz/node_modules/smtp-connection/lib/smtp-connection.js:236:14) в ontimeout (timers.js: 498: 11) в tryOnTimeout (timers.js: 323: 5) в Timer.listOnTimeout(timers.js: 290: 5) код: 'ETIMEDOUT', команда: 'CONN'}

1 Ответ

0 голосов
/ 26 сентября 2018
functionObj = {};

    functionsObj.getSmtpTransport = function() {
        var smtpTransport = nodemailer.createTransport({
            service: "Gmail",
            auth: {
                user: "<your email address>",
                pass: "<your pass>"
            }
        });

        return smtpTransport;
    }

    functionsObj.sendMailForPasswordReset = function(to, token) {

        var smtpTransport = functionsObj.getSmtpTransport();

        var mailOptions = {
            to: to,
            subject: "Blabla.com Reset Password",
            html: "Hi,<br> Click to link for resetting password.<br><a href='https://<blabla.com>/reset/" + urlencode(token) + "'>Click Me !!!</a>"
        }

        smtpTransport.sendMail(mailOptions, function(error, response) {
            if (error) {
                return error;

            }
            else {
                return true;
            }
        });

    };

Привет,

Приведенный выше код работал в моем проекте без каких-либо ошибок.Но вы должны разрешить сторонним программным продуктам использовать вашу учетную запись Google от Google.

Здесь страница поддержки Google для этого случая:

https://support.google.com/accounts/answer/6010255?hl=en

Я рекомендую всемвход должен быть проверен :) Например, если вы берете параметр "to" от пользователя.Вам нужно проверить, чтобы параметр "to" был действительным адресом электронной почты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...