我正试图弄脏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"
我也使用$ {}的单引号,希望这可能会有所帮助,但不是。完全不知所措。
答案 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
。