December 18, 2023
Отправка формы
Вот пример кода, который отправляет письмо через SMTP-сервер сообщение, которое приходит со страницы формы:
const express = require("express"); const app = express(); const smtp = require("smtp"); app.post("/send-email", (req, res) => { // Получаем данные из формы const from = req.body.from; const to = req.body.to; const subject = req.body.subject; const body = req.body.body; // Проверяем данные из формы if (!from || from.trim() === "") { res.sendStatus(400); return; } if (!to || to.trim() === "") { res.sendStatus(400); return; } if (!subject || subject.trim() === "") { res.sendStatus(400); return; } // Создаем экземпляр клиента SMTP const client = smtp.createConnection({ host: "smtp.example.com", port: 25, auth: { user: "user@example.com", pass: "password" } }); // Соединяемся с сервером SMTP client.connect(); // Отправляем письмо client.sendMail({ from: from, to: to, subject: subject, body: body }); // Закрываем соединение с сервером SMTP client.end(); // Отправляем ответ res.sendStatus(200); }); app.listen(3000);
Сначала проверяем данные из формы на наличие пустых значений. Если какое-либо из значений пустое, мы отправляем ответ с кодом ошибки 400.
При отправке письма, необходимо указать следующие параметры:
Вы также можете указать дополнительные параметры, такие как имя отправителя, адрес сервера SMTP и т. д.
<form action="/send-email" method="post"> <input type="text" name="from" placeholder="Отправитель"> <input type="text" name="to" placeholder="Получатель"> <input type="text" name="subject" placeholder="Тема"> <textarea name="body" placeholder="Текст письма"></textarea> <input type="submit" value="Отправить"> </form>