@prolina

Получение данных после отправки формы React?

В реакт приложении есть страница с формой обратной связи. После ее заполнения и отправки, хотелось бы получать на емаил данные, которые человек ввел. Как это реализовать?
Всё, что я смогла найти, так это то, что надо использовать nodemailer. Но везде примеры с информацией о пароле и емаиле в открытом доступе.
Подскажите пожалуйста, как можно реализовать то, что я задумала?
Вот пример кода, который я использовала:
const express = require('express');
const bodyParser = require('body-parser');
const nodemailer = require('nodemailer');
const app = express()

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.post('/api/form', (req, res) => {
    nodemailer.createTestAccount((err, account) => {
        const htmlEmail = `
        <h3>Contact details</h3>
        <ul>
        <li>Name: ${req.body.name}</li>
        <li>Email: ${req.body.email}</li>
        </ul>
        <h3>Message</h3>
        <p>${req.body.message}</p>
        `
        let transporter = nodemailer.createTransport({
            service: 'gmail',
            host: 'smtp.gmail.com',
            port: 587,
            // auth: {
            //     user: 'serzhan.helen@gmail.com',
            //     pass: 'password'
               
            // }
        })
        let mailOptions = {
            from: req.body.email,
            to: 'serzhan.helen@gmail.com',
            subject: 'New message',
            text: req.body.message,
            html: htmlEmail
        }
        transporter.sendMail(mailOptions, (err, info) => {
            if(err) {
                return console.log(err)
            }
            console.log('Message sent: %s', info.message)
            console.log('Message URL: %s', nodemailer.getTestMessageUrl(info))
        })
    })
})

const PORT = process.env.PORT || 3001;

app.listen(PORT, () => {
    console.log(`Server listening on port ${PORT}`);

})


При этом, на мою почту мне приходят уведомления, что кто-то хотел зайти в мой аккаунт, т.е., этот код выглядит как будто я хочу войти и отправить письмо. А мне нужно, чтобы письма приходили мне на емаил от разных людей, которые заполняют форму.
  • Вопрос задан
  • 573 просмотра
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Это так и работает. Отправляйте письмо себе на ящик вроде no-reply@mysite.com с темой "Обращение", в теле письма уже указывайте всю необходимую вам информацию о человеке заполнившем форму.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы