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>