Nodemailer - 错误:在SMTPConnection._formatError上缺少“PLAIN”的凭据

时间:2018-03-31 19:42:33

标签: node.js nodemailer

我正试图弄脏Nodemailer,我收到上述错误消息。如果我将我的电子邮件地址和密码设置为纯文本,那么该应用程序工作正常,显然我宁愿不这样做因为我将推送到Github,所以我将它们设置为如下的环境变量,不幸的是这导致了以上错误信息。

我已将Gmail帐户设置为允许安全性较低的应用。

我还尝试创建一个包含数据的secret.js文件,将其导入app.js并将其添加到我的.gitignore,当我尝试部署到Heroku时出现问题,我想Heroku必须有权访问该文件以运行脚本,因此崩溃。

let transporter = nodemailer.createTransport({
    service: 'gmail',
    secure: false,
    port: 25, // true for 465, false for other ports
    auth: {
        user: process.env.EMAIL, // generated ethereal user
        pass: process.env.PASSWORD // generated ethereal password
    },
    tls: {
        rejectUnauthorized: false
    }
});

我已经设置了我的环境变量,但没有一个起作用: -

set EMAIL=email@email.com
set EMAIL='email@email.com'
set EMAIL="email@email.com"

我也使用$ {}的单引号,希望这可能会有所帮助,但不是。完全不知所措。

3 个答案:

答案 0 :(得分:1)

您需要将此require添加到电子邮件验证文件中

require("dotenv").config();
var transport = nodemailer.createTransport({
              service: "hotmail",
              auth: {
                      user: process.env.EMAIL_ID,
                       pass: process.env.PASS
                    });

答案 1 :(得分:0)

它无法识别您的env变量。你的server.js文件在哪里与env文件有关?将它们放在同一目录中。

答案 2 :(得分:0)

假设您要使用Firebase文件夹中的Cloud Functions for Firebase将捆绑包上传到function。然后,您的.env文件必须位于functions的根目录中,以返回undefined