#javascript #node.js #nodemailer
Вопрос:
У меня возникли проблемы с тем, чтобы заставить мой nodejs nodemailer работать. Я не знаю точно, где я допустил ошибку, потому что я следовал примеру на странице github nodemail. В качестве интерфейса почтового сервера я использую mailcow. Я попробовал порты по умолчанию из Mailcow здесь, также с secureConnection false, но это не имело никакого значения.
Мой Код:
var usermail = "test@mydomain.com"
var transp = mail.createTransport("SMTP",{
host: "mail.mydomain.com",
port: 587,
secureConnection: true,
auth: {
user: process.env.email,
pass: process.env.passwd
}
})
transp.sendMail({
to: usermail,
subject: "test",
text: "test"
},
function(err,response){
if(err){
console.log(err);
}
console.log(response);
});
Мой Код Ошибки:
0|app | TypeError: Cannot create property 'mailer' on string 'SMTP'
0|app | at new Mail (/home/node_modules/nodemailer/lib/mailer/index.js:45:33)
0|app | at Object.module.exports.createTransport (/home/node_modules/nodemailer/lib/nodemailer.js:53:14)
0|app | at /home/routes/system.js:876:35
0|app | at processTicksAndRejections (internal/process/task_queues.js:93:5)
Было бы здорово, если бы кто-нибудь помог мне там понять, что именно я там сделал не так.
Ответ №1:
Ошибка говорит вам, что он не может обрабатывать «SMTP» в качестве параметра. Согласно документации, вам не нужно указывать «SMTP», поскольку он ожидает объект с конфигурацией в качестве первого параметра:
var transp = mail.createTransport({
host: "mail.mydomain.com",
port: 587,
secureConnection: true,
auth: {
user: process.env.email,
pass: process.env.passwd
}
})
Комментарии:
1. Похоже, разработчики, стоящие за nodemailer, вскоре изменили подпись
createTransport
. Возможно, именно по этой причине пример не является современным.