Nodemailer с Gmail - PullRequest
       20

Nodemailer с Gmail

0 голосов
/ 06 марта 2019

Я пытаюсь реализовать контактную форму для моего сайта, используя Nodemailer и Gmail, но, к сожалению, что-то не так.Я не могу найти проблему.Ниже мой почтовый маршрут:

app.post('/form', cors(), (req, res, next) => {

    let transporter = nodemailer.createTransport({
        host: 'smtp.gmail.com',
        port: 465,
        secure: true,
        auth: {
            user: 'some.mail@gmail.com',
            pass: 'password'
        },
        tls: {
            rejectUnauthorized: false
        }
    });

    const htmlEmail = `
        <h3>Contact Details</h3>
        <ul>
            <li>Name: ${req.body.author}</li>
        </ul>
        <h3>Message:</h3>
        <p>${req.body.body}</p>
    `

    let mailOptions = {
        from: req.body.author,
        to: 'some@mail.com',
        replyTo: req.body.author,
        subject: "Portfolio Website - Contact",
        text: req.body.body,
        html: htmlEmail
    };

    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            console.log(error);
            return res.json({err: error});
        }
        console.log('Message sent: %s', info.messageId);
        res.redirect('form');
    });
});

А вот моя HTML-форма:

<form method="POST" action="form" accept-charset=utf-8>
    <div class="form-group">
      <textarea name="body" placeholder="Write an e-mail here..." class="form-control"></textarea>
    </div>
    <div class="form-group">
      <input type="text" name="author" placeholder="Author" class="form-control author" />
    </div>
    <div class="form-group">    
      <input class="btn btn-lg btn-secondary btn-block" type="submit" value="Send" />
    </div>
  </form>

Буду благодарен за любую помощь!

Приветствия, Шимон

PS.Вот ссылка на репо на GitHub: https://github.com/alojzz/alojzz.github.io/blob/master/server.js

1 Ответ

0 голосов
/ 06 марта 2019

У меня была та же проблема, я изменил «Менее безопасный доступ к приложениям» в безопасности моего аккаунта Google, чтобы он был «включен». И это решило мою проблему.

...