我正在尝试使用 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/