отправка электронной почты с помощью nodemailer - PullRequest
1 голос
/ 02 мая 2019

Я пытаюсь создать простой сервер узлов, который будет отправлять электронные письма с помощью nodemailer

let app = require('express')();
app.use(require('body-parser').urlencoded());

const CONTACT_ADDRESS = 'email@email.com';

var mailer = require('nodemailer').createTransport({
  service: 'mail.ee',
  auth: {
    user: 'test@test.com',
    pass: 'password',
  }
});

app.post('/contact', function(req, res) {
  mailer.sendMail({
    from: req.body.from,
    to: '[CONTACT_ADDRESS]',
    subject: req.body.subject || '[No subject]',
    html: req.body.message || '[No message]',
  }, function(err, info) {
    if (err) return res.status(500).send(err);
    res.json({success: true});
  })
});

//Service is listening to port 3000
app.listen(3000, function(){
    console.log("Service is running on port 3000...");
});

, а контактная форма выглядит следующим образом:

<form method="post" action="http://localhost:3000/contact">
    <label>Your e-mail</label>
    <input type="text" name="from">

    <label>Subject</label>
    <input type="text" name="subject">

    <label>Message</label>
    <textarea name="body"></textarea>
    <input type="submit" value="Submit">
  </form>

Когда я нажимаю на submitЯ получаю кнопку:

JSON.stringify (значение);Ошибка типа: преобразование круговой структуры в JSON

Что это значит?Как я могу преодолеть это?

1 Ответ

1 голос
/ 02 мая 2019

res.send метод пытается привести в строковое значение ваш объект err, но ваш объект err не может быть преобразован в строку, потому что это не стандартный объект ошибки.Попробуйте вывести этот err объект, чтобы увидеть и решить, как его обработать.

Например, вы можете использовать

if (err) return res.status(500).send(err.reason);

istead

if (err) return res.status(500).send(err);
...