Nodemailer не работает с Heroku Deployment

Короче говоря, я хотел добавить систему электронной почты в свое приложение, поэтому я выбрал Nodemailer. На localhost все работает нормально, но как только я пытаюсь отправить электронное письмо с развернутого сайта heroku, происходит сбой с 500 внутренняя ошибка.

Я уже сделал все с моей учетной записью Gmail, чтобы позволить ей принимать незащищенные приложения и прочее.

Вот моя настройка nodemailer:

app.post('/sendMail', (req, res) => {
  const { name, email, total } = req.body
  const nameCheck = name
    .split(' ')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ')

  const output = `
    <p>Thanks for shopping with us, ${nameCheck}.</p>
    <p>Your Total is $${total}</p>
    <hr />
    <p>Gabriel Pozo - React Cart Developer / Owner</p>
    <a href="https://reactshoppingcart1.herokuapp.com/">Shop</a>
  `

  const transporter = nodemailer.createTransport({
    service: 'gmail',
    port: 25,
    secure: false,
    auth: {
      user: 'beyondutraining@gmail.com', 
      pass
    },
    tls: { rejectUnauthorized: false }
  })

  const mailOptions = {
    from: '"Gabriel" <beyondutraining@gmail.com>',
    to: email,
    subject: 'Your Order',
    html: output
  }

  transporter.sendMail(mailOptions, (error, info) => {
    error ? res.sendStatus(500) : res.sendStatus(200)
  })
})

Вот как я обслуживаю статические файлы из React:

if (process.env.NODE_ENV === 'production') {
  app.use(express.static('client/build'))

  app.get('*', (req, res) => {
    res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
  })
}

Вот как я назначаю env переменные:

module.exports = {
  PASS: process.env.PASS
}

Если вам нужен какой-то другой код, дайте мне знать!

1 ответ

Вы не упомянули, установили ли вы переменные среды в своем проекте Heroku. Должен быть доступен по ссылке https://dashboard.heroku.com/apps/<your-project-id>/settings, Config Vars раздел имеет Reveal Config Vars кнопка - при нажатии вы можете добавить ключ PASS и дать ему соответствующее значение.

Другие вопросы по тегам