node.js - Nodemailer - 错误 : Missing credentials for "PLAIN" at SMTPConnection. _formatError

标签 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"

我还使用了单引号 ${} 希望这可能有所帮助,但没有。彻底迷惑了。

最佳答案

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

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

关于node.js - Nodemailer - 错误 : Missing credentials for "PLAIN" at SMTPConnection. _formatError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49591711/

相关文章:

javascript - NodeJS 延迟发送电子邮件

node.js - 使用 Mandrill 作为 SMTP 提供程序时的身份验证错误 nodemailer

javascript - 无法使用nodemailer在nodejs中发送电子邮件

javascript - 在类范围之外触发​​事件 javascript

javascript - 如何使用嵌套协程和 Promise 来简化 JS 代码?

node.js - 运行 launch.json 配置时找不到模块 '"/Applications/Visual'

google-api - 使用 OAuth2 和 nodemailer 从我的 gmail 帐户发送电子邮件

node.js - 伪造者page.evaluate()随机失败,出现: Execution context was destroyed,的原因很可能是由于导航

javascript for 循环在更新和记录循环内的数组时表现异常

javascript - Nodemailer 发送带有空正文的电子邮件