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.

При отправке письма, необходимо указать следующие параметры:

  • from: адрес отправителя
  • to: адрес получателя
  • subject: тема письма
  • body: текст письма

Вы также можете указать дополнительные параметры, такие как имя отправителя, адрес сервера 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>