Я создаю маршрут для забытого пароля в Node.js и пытаюсь использовать nodemailer для отправки электронной почты из пользовательского домена, купленного на namecheap.com, вместе с почтовым доменом. Я не уверен, если это проблема с хостом, портом / безопасностью или аутентификацией. Однако, когда я меняю хост, вместо этого выдается ошибка ECONREFUSED, поэтому я считаю, что эта часть работает. Мой брандмауэр (насколько я могу судить) отключен, и я перезапустил его, однако это сложнее сказать, поскольку Norton Antivirus контролирует его.
Это мой код, взятый из маршрута router.get в моем бэк-энде.
Полная ошибка: «подключить ETIMEDOUT», затем IP-адрес с: 587 в конце.
const transporter = createTransport({
host: 'axotl.com',
port: 587,
secure: false,
auth: {
user: config.get('emailUser'),
pass: config.get('emailPass')
}
});
let resetLink = '';
let authToken = '';
await jwt.sign({ email: req.params.email }, config.get('JWTSecret'), { expiresIn: 10800000 }, (err, token) => {
if (err) throw err;
authToken += token;
})
resetLink = await `${config.get('productionLink')}/recipients/resetpassword/${authToken}`
console.log(`resetlink : ${resetLink}`)
const mailOptions = {
from: '"Axotl Support" <support@axotl.com>',
to: req.params.email,
subject: "Forgot Password",
text: `Hello ${req.name},\n\nHere is the password reset link you requested (expires in 3 hours): ${resetLink}\nIf you did not request this, please notify us at http://axotl.com/support\n\nThanks!\n-Axotl Support`
}
try {
console.log('trycatch entered')
// const verified = await transporter.verify()
// console.log(`verified : ${verified}`)
const res = await transporter.sendMail(mailOptions)
console.log('email completed')
console.log(res)
res.json({ msg: "email sent" })
} catch (err) {
console.error(err.message);
res.status(500).send("Server Error")
}