#node.js #nodemailer
#node.js #nodemailer
Вопрос:
У меня Nodemailer настроен как таковой:
let transporter = nodemailer.createTransport({
host: 'mail.notreforce.org',
port: 587,
secure: false, //true for 465, false for other ports
auth: {
name: env.email,
pass: env.pasword,
},
tls:{
rejectUnauthorized: false
}
});
let mailOptions = {
from: '"Nguvu yetu" <test@notreforce.org>', //sender address
to: user.email, //list of receivers
subject: "Email verification",
html: output,
};
//send mail with defined transport object
transporter.sendMail(mailOptions,error=>{
if (error){
return console.log(error);
}
res.status(200).json({msg:"Email has been sent"})
})
Но я получаю сообщение об ошибке ниже
Error: Missing credentials for "PLAIN"
at SMTPConnection._formatError (C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-connectionindex.js:784:19)
at SMTPConnection.login (C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-connectionindex.js:448:38)
at C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-transportindex.js:271:32
at SMTPConnection.<anonymous> (C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-connectionindex.js:215:17)
at Object.onceWrapper (events.js:420:28)
at SMTPConnection.emit (events.js:314:20)
at SMTPConnection._actionEHLO (C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-connectionindex.js:1313:14)
at SMTPConnection._processResponse (C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-connectionindex.js:942:20)
at SMTPConnection._onData (C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-connectionindex.js:749:14)
at TLSSocket.SMTPConnection._onSocketData (C:web-projectsAngular appsTosEcommercebackendnode_modulesnodemailerlibsmtp-connectionindex.js:195:44) {
code: 'EAUTH',
command: 'API'
}
Пытались заменить ключевого пользователя и передать фактическое значение, но ошибка все равно возникает. Любая помощь приветствуется, большое вам спасибо.
Комментарии:
1. Я знаю, что вы также тестировали его, используя жестко заданные значения для user и pass. Но вы проверили значения для user и pass, которые поступают из
.env
file. Если они верны или нет, регистрируя их?2. Использование
process.env.email
иprocess.env.pasword
Ответ №1:
Аналогичный код будет работать для меня в моей среде разработки, но не на производстве. Я предположил, что значения из моего .env не были приняты во внимание. Итак, я жестко запрограммировал значения для user
и pass
, и это сработало. Я читал, что вы уже проверили это, поэтому вы можете попробовать другие значения для port
и secure
? Эти работали для меня :
const transporterOVH = nodemailer.createTransport({
host: "ssl0.ovh.net",
port: 465,
secure: true,
auth: {
user: "contact@mycompany.com",
pass: "HARDCODED_PASSWORD"
},
tls:{
ciphers:'SSLv3'
}
});
Извините за неточность, мне просто захотелось поделиться тем, что сработало в моем случае. Хорошего дня!