使用环境变量作为密码时缺少 "PLAIN" 错误的凭据
Missing credentials for "PLAIN" error when using env variabele for password
我正在尝试设置 nodemail,但是 运行 遇到了一个奇怪的问题,我无法解决这个问题。每当我将凭据作为字符串填写时,一切正常(但我当然不希望这样)。如果我开始使用环境变量,则会收到以下错误消息:
UnhandledPromiseRejectionWarning: Error: Missing credentials for "PLAIN"
它正在使用 gmail 帐户发送电子邮件。该帐户启用了不安全帐户的旁路。当我添加 console.log() 语句时,密码清晰可见。有谁知道为什么会这样以及如何解决这个问题。您将在下面找到发送电子邮件的代码片段。
import nodemailer from 'nodemailer';
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'some-account@gmail.com',
pass: process.env.PWD,
},
});
export const sendUserCreateEmail = (to, firstName) => {
const mailOptions = {
from: 'someone',
to: to,
subject: 'It works',
html: `
<p>It works!</p>
`,
};
return transporter.sendMail(mailOptions);
};
我想通了,尽管它更像是一种解决方法。显然,由 dotenv 文件设置的变量在那里不起作用。我修改了我的 npm 命令以包含变量,然后它按预期工作。
PWD=password node index.js
我可以设置这些而无需在本地提交它们,所以我暂时可以接受这个解决方案。仍然不确定为什么不接受 dotenv 变量。
您需要安装dotenv
npm install dotenv
然后将其导入您的文件
const dotenv = require('dotenv');
dotenv.config();
那么它应该可以工作
我正在尝试设置 nodemail,但是 运行 遇到了一个奇怪的问题,我无法解决这个问题。每当我将凭据作为字符串填写时,一切正常(但我当然不希望这样)。如果我开始使用环境变量,则会收到以下错误消息:
UnhandledPromiseRejectionWarning: Error: Missing credentials for "PLAIN"
它正在使用 gmail 帐户发送电子邮件。该帐户启用了不安全帐户的旁路。当我添加 console.log() 语句时,密码清晰可见。有谁知道为什么会这样以及如何解决这个问题。您将在下面找到发送电子邮件的代码片段。
import nodemailer from 'nodemailer';
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'some-account@gmail.com',
pass: process.env.PWD,
},
});
export const sendUserCreateEmail = (to, firstName) => {
const mailOptions = {
from: 'someone',
to: to,
subject: 'It works',
html: `
<p>It works!</p>
`,
};
return transporter.sendMail(mailOptions);
};
我想通了,尽管它更像是一种解决方法。显然,由 dotenv 文件设置的变量在那里不起作用。我修改了我的 npm 命令以包含变量,然后它按预期工作。
PWD=password node index.js
我可以设置这些而无需在本地提交它们,所以我暂时可以接受这个解决方案。仍然不确定为什么不接受 dotenv 变量。
您需要安装dotenv
npm install dotenv
然后将其导入您的文件
const dotenv = require('dotenv');
dotenv.config();
那么它应该可以工作