Nodemailer Отсутствуют учетные данные для "PLAIN"
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)
});
Это бросает "Недостающие полномочия для" РАДОСТИ "". Я использовал этот конфиг во многих местах в приложении, и теперь он выдает эту ошибку везде. Но работал хорошо, когда я впервые написал код.
"nodemailer": "^ 4.0.1"
1 ответ
Вот настройки конфига. Поле 'host' отсутствует, и оно кажется обязательным в 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
}
});
Возможно, вам не хватает учетных данных. Если вы получаете свои учетные данные из.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.