Nodemailer和GMail具有访问令牌

时间:2013-11-24 18:40:22

标签: node.js express gmail nodemailer

我尝试使用Nodemailer发送一封包含我的GMail帐户的电子邮件,但它不起作用,它可以在本地工作但在我的远程服务器上我收到来自Google的电子邮件“有人正在使用您的帐户....” / p>

我该怎么办?

    exports.contact = function(req, res){
        var name = req.body.name;
        var from = req.body.from;
        var message = req.body.message;
        var to = '******@gmail.com';
        var transport = nodemailer.createTransport("SMTP", {
            service: 'Gmail',
            auth: {
                XOAuth2: {
                    user: "******@gmail.com",
                    clientId: "*****",
                    clientSecret: "******",
                    refreshToken: "******",
                }
            }
        });
        var options = {
            from: from,
            to: to, 
            subject: name,
            text: message
        }
        transport.sendMail(options, function(error, response) {
          if (error) {
            console.log(error);
          } else {
            console.log(response);
          }
          transport.close();
        });
    }

1 个答案:

答案 0 :(得分:1)

查看Unable to send email via google smtp on centos VPS的解决方案:

  

在我的情况下,我的脚本在VPS上,所以我无法用浏览器加载任何URL。我做了什么:改变了我的gmail pw。 Gmail>设置>帐户。然后在Google帐户中他们列出了谷歌阻止的可疑登录(这些是我的脚本尝试登录)。然后我点击了选项“是的,那是我”。之后,我的脚本工作(使用新的pw)。