Nodemailer在完全相同的配置下正常工作了几个月。
var smtpTransport = nodemailer.createTransport({
service: "Zoho",
auth: {
user: environment.smtp.email,
password: environment.smtp.password
},
secure: false,
tls: {
rejectUnauthorized: false
}
});
var mailOptions = {
from: environment.smtp.email,
to: 'some@email.com',
subject: 'Subject',
html: "Mail content here."
}
smtpTransport.sendMail(mailOptions, function(error, response){
console.log(error)
});
它抛出“缺少“ PLAIN”的凭据”。我已经在应用程序中的许多地方使用了此配置,现在它到处都会引发此错误。但是当我第一次编写代码时,效果很好。
“ nodemailer”:“ ^ 4.0.1”
答案 0 :(得分:0)
这是配置设置。 “主机”字段丢失,在Nodemailer V3及更高版本中似乎是必填字段。
var smtpTransport = nodemailer.createTransport({
host: "smtp.zoho.com",
service: "Zoho",
port: 25,
secure: false,
auth: {
user: 'some@email.com',
pass: "123456"
},
tls: {
rejectUnauthorized: false
}
});
答案 1 :(得分:0)
您可能缺少凭据。如果要从.env获取凭据,则可能要使用dotenv库来获取它们。
var dotenv = require("dotenv")
dotenv.config()
var smtpTransport = nodemailer.createTransport({
service: "Gmail",
port: 465,
auth: {
user: process.env.GMAIL_USERNAME,
pass: process.env.GMAIL_PASSWORD,
},
})
如果使用远程服务托管服务器,则可能需要查看它们是否对.env变量有要求。诸如Vericel之类的某些服务会在启动服务器之前注入.env变量。