Nodemailer подключает ETIMEDOUT к личному домену

Я делаю бэкэнд-маршрут для забытого пароля в Node.js и пытаюсь использовать nodemailer для отправки электронной почты из личного домена, который я приобрел на namecheap.com, вместе с доменом электронной почты. Я не уверен, что это проблема с хостом, портом / безопасностью или аутентификацией. Однако, когда я меняю хост, вместо этого выдается ошибка ECONREFUSED, поэтому я считаю, что эта часть работает. Мой брандмауэр (насколько я могу судить) отключен, и я перезапустил его, однако это сложнее сказать, поскольку его контролирует антивирус Norton.

Это мой код, взятый из маршрута 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" <[email protected]>',
        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")
    }

person abagel21    schedule 25.04.2020    source источник
comment
Можете ли вы подключиться по телнету к порту 587 на axotl.com?   -  person mikemaccana    schedule 26.04.2020
comment
Telnet не может открыть соединение, даже если я отключил брандмауэр через norton. Настройки немного сбивают с толку, потому что Windows сообщает, что Norton контролирует мой брандмауэр, но когда я отключаю брандмауэр Norton, он, похоже, не полностью отключает брандмауэр защитника Windows.   -  person abagel21    schedule 28.04.2020


Ответы (1)


Оказалось, что я использовал неправильный домен хоста - служба не размещает домен электронной почты напрямую на веб-сайте. Я недостаточно знаю об этом конкретном разделе. Я изменил его на адрес электронной почты, и он сработал.

person abagel21    schedule 28.04.2020