назад
Документация API FormToMail

API FormToMail предназначен для отправки писем с вашего сайта на вашу электронную почту.

Базовый URL

https://api.formtomail.ru

Отправка письма (POST /send)

Параметры

  • apiKey (string, обязательно) — ваш API-ключ. Он является публичным. Им невозможно воспользоваться для отправки на почту, которую вы не указывали.
  • body (string | object, обязательно) — тело письма. Может быть строкой (HTML) или объектом, где ключи — это описания полей, а значения — сами данные.
  • title (string, необязательно) — заголовок письма.
  • to (string | string[], необязательно) — Email-адрес получателя (строка или массив), который вы указали в настройках. Если не указано, используются Email-адреса из настроек API-ключа. На адреса, которые не указаны в настройках, письма приходить не будут.

Если при создании API-ключа был указан URL вашего сайта, он будет автоматически добавлен в CORS (Access-Control-Allow-Origin) и запросы будут приниматься только с этого домена. Если URL не указан, CORS Origin будет установлен в *, что позволяет отправлять запросы с любых источников.

Действует защита от частого отправления — не более 3 раз в минуту

Пример запроса (JS)

let response = await fetch("https://api.formtomail.ru/send", {
    method: "POST",
    mode: "cors",
    headers: {
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        to: "mymail@mail.ru", // Куда приходит (можно не указывать)
        title: "Новая заявка", // Заголовок письма
        body: {   // Содержимое формы (можно прислать HTML)
            "Имя": "значение поля",
            "Телефон": "значение поля"
        },
        apiKey: "ВАШ_API_КЛЮЧ"
    })
});
let body = await response.json();

Ответ API

  • 200 OK — письмо успешно отправлено. Ответ (JSON):
{ "statusCode": 200, "message": "Успешно отправлено" }
  • Ошибка (пример, JSON):
{ "statusCode": 400, "message": "Ошибка отправки письма" }

Отправка письма с вложениями (multipart/form-data)

API поддерживает отправку файлов общим объёмом до 150MB, объём каждого не более 25MB.

Параметры

  • attachments (File[], необязательно) — массив файлов, передаваемых с запросом.

Ограничения

  • Максимальное объём всех файлов: 150MB
  • Максимальный объём одного файла: 25MB

Пример запроса (JS)

let formData = new FormData();

formData.append("to", JSON.stringify(["mymail1@mail.ru", "mymail2@mail.ru"])); // Куда приходит (можно не указывать)
formData.append("title", "Новая заявка"); // Заголовок письма
formData.append("body", JSON.stringify({ // Содержимое формы (можно прислать HTML)
    "Имя": "значение поля",
    "Телефон": "значение поля"
}));
formData.append("apiKey", "ВАШ_API_КЛЮЧ");

// Пример добавления файлов
let filesInput = document.getElementById("files");
let files = Array.from(filesInput.files);
files.forEach((file) => {
    formData.append("attachments", file, encodeURIComponent(file.name));
});

let response = await fetch("https://api.formtomail.ru/send", {
    method: "POST",
    mode: "cors",
    body: formData,
});
let body = await response.json();

Поддержка

Если у вас возникли вопросы, обращайтесь в поддержку: support@formtomail.ru