Email API

На данный момент мы еще не выпустили обертки для API, но планируем сделать это в ближайшем будущем. Отправьте письмо на api@forwardemail.net, если хотите получить уведомление о выпуске обертки API для конкретного языка программирования. Тем временем вы можете использовать эти рекомендуемые библиотеки HTTP-запросов в вашем приложении или просто использовать curl, как в приведенных ниже примерах.

Язык Библиотека
Ruby Faraday
Python requests
Java OkHttp
PHP guzzle
JavaScript superagent (мы являемся мейнтейнерами)
Node.js superagent (мы являемся мейнтейнерами)
Go net/http
.NET RestSharp

Текущий базовый путь HTTP URI: https://fe.tiamati.email.

Все конечные точки требуют аутентификации с использованием Basic Authorization. Мы поддерживаем два метода аутентификации:

Установите ваш API ключ в качестве значения "username" с пустым паролем:

curl https://fe.tiamati.email/v1/account \
  -u API_TOKEN:

Обратите внимание на двоеточие (:) после API токена – это указывает на пустой пароль в формате Basic Auth.

Alias Credentials Authentication (Для исходящей почты)

Конечная точка Create outbound SMTP email также поддерживает аутентификацию с использованием вашего псевдонима электронной почты и сгенерированного пароля псевдонима:

curl -X POST https://fe.tiamati.email/v1/emails \
  -u "alias@yourdomain.com:your_generated_password" \
  -d "to=recipient@example.com" \
  -d "subject=Hello" \
  -d "text=Test email"

Этот метод полезен при отправке писем из приложений, которые уже используют SMTP учетные данные, и обеспечивает бесшовную миграцию с SMTP на наш API.

Alias-Only Endpoints

Конечные точки Alias Contacts, Alias Calendars, Alias Messages и Alias Folders требуют учетных данных псевдонима и не поддерживают аутентификацию с помощью API токена.

Не волнуйтесь – ниже приведены примеры, если вы не уверены, что это такое.

Если возникнут ошибки, тело ответа API будет содержать подробное сообщение об ошибке.

Код Название
200 OK
400 Неверный запрос
401 Неавторизован
403 Запрещено
404 Не найдено
429 Слишком много запросов
500 Внутренняя ошибка сервера
501 Не реализовано
502 Плохой шлюз
503 Сервис недоступен
504 Тайм-аут шлюза

Tip

Если вы получили статус 5xx (что не должно происходить), пожалуйста, свяжитесь с нами по адресу api@forwardemail.net, и мы поможем вам немедленно решить вашу проблему.

Наш сервис переведен более чем на 25 языков. Все сообщения ответа API переводятся на последний обнаруженный язык пользователя, делающего запрос к API. Вы можете переопределить это, передав пользовательский заголовок Accept-Language. Не стесняйтесь попробовать, используя выпадающий список языков внизу этой страницы.

Note

С 1 ноября 2024 года конечные точки API для List domains и List domain aliases по умолчанию будут возвращать максимум 1000 результатов на страницу. Если вы хотите включить это поведение заранее, вы можете добавить ?paginate=true в качестве дополнительного параметра строки запроса к URL конечной точки.

Пагинация поддерживается всеми конечными точками API, которые возвращают списки результатов.

Просто укажите параметры строки запроса page (и опционально limit).

Параметр page должен быть числом, большим или равным 1. Если вы указываете limit (также число), минимальное значение — 10, максимальное — 50 (если не указано иное).

Параметр строки запроса Обязательный Тип Описание
page Нет Number Страница результатов для возврата. Если не указано, значение page будет 1. Должно быть числом, большим или равным 1.
limit Нет Number Количество результатов на страницу. По умолчанию 10, если не указано. Должно быть числом, большим или равным 1 и не превышающим 50.
Для определения наличия дополнительных результатов мы предоставляем следующие HTTP-заголовки ответа (которые вы можете разобрать для программной пагинации):
HTTP Response Header Example Description
X-Page-Count X-Page-Count: 3 Общее количество доступных страниц.
X-Page-Current X-Page-Current: 1 Текущая возвращённая страница результатов (например, основанная на параметре запроса page).
X-Page-Size X-Page-Size: 10 Общее количество результатов на возвращённой странице (например, основанное на параметре запроса limit и фактически возвращённых результатах).
X-Item-Count X-Item-Count: 30 Общее количество элементов, доступных на всех страницах.
Link Link: <https://api.forwardemail.net/v1/emails?page=1>; rel="prev", <https://api.forwardemail.net/v1/emails?page=3>; rel="next", <https://api.forwardemail.net/v1/emails?page=3; rel="last", https://api.forwardemail.net/v1/emails?page=1; rel="first" Мы предоставляем HTTP-заголовок ответа Link, который вы можете разобрать, как показано в примере. Это похоже на GitHub (например, не все значения будут предоставлены, если они не актуальны или недоступны, например, "next" не будет предоставлен, если следующей страницы нет).

Пример запроса:

curl https://fe.tiamati.email/v1/domains/example.com/aliases?page=2&pagination=true \
  -u API_TOKEN:

Получение логов

Наш API программно позволяет вам скачать логи для вашей учетной записи. Отправка запроса на этот эндпоинт обработает все логи вашей учетной записи и отправит их вам по электронной почте в виде вложения (сжатого файла Gzip с CSV таблицей) после завершения.

Это позволяет создавать фоновые задачи с помощью Cron job или используя наше Node.js программное обеспечение для планирования задач Bree, чтобы получать логи когда угодно. Обратите внимание, что этот эндпоинт ограничен 10 запросами в день.

Вложение имеет имя в нижнем регистре email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz, а само письмо содержит краткое резюме полученных логов. Вы также можете скачать логи в любое время из Мой аккаунт → Логи

GET /v1/logs/download

Параметр Querystring Обязательно Тип Описание
domain Нет Строка (FQDN) Фильтровать логи по полностью квалифицированному домену ("FQDN"). Если не указано, будут получены логи по всем доменам.
q Нет Строка Поиск логов по email, домену, имени алиаса, IP-адресу или дате (форматы M/Y, M/D/YY, M-D, M-D-YY или M.D.YY).
bounce_category Нет Строка Поиск логов по конкретной категории отказа (например, blocklist).
response_code Нет Число Поиск логов по конкретному коду ошибки (например, 421 или 550).

Пример запроса:

curl https://fe.tiamati.email/v1/logs/download \
  -u API_TOKEN:

Пример Cron job (каждую ночь в полночь):

0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download -u API_TOKEN: &>/dev/null

Обратите внимание, что вы можете использовать сервисы, такие как Crontab.guru, для проверки синтаксиса выражения cron job.

Пример Cron job (каждую ночь в полночь и с логами за предыдущий день):

Для MacOS:

0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Для Linux и Ubuntu:

0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Создать аккаунт

POST /v1/account

Параметр тела Обязательно Тип Описание
email Да Строка (Email) Адрес электронной почты
password Да Строка Пароль

Пример запроса:

curl -X POST https://fe.tiamati.email/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Получить аккаунт

GET /v1/account

Пример запроса:

curl https://fe.tiamati.email/v1/account \
  -u API_TOKEN:

Обновить аккаунт

PUT /v1/account

Параметр тела Обязательно Тип Описание
email Нет Строка (Email) Адрес электронной почты
given_name Нет Строка Имя
family_name Нет Строка Фамилия
avatar_url Нет Строка (URL) Ссылка на изображение аватара

Пример запроса:

curl -X PUT https://fe.tiamati.email/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Note

В отличие от других API эндпоинтов, для этих требуется Аутентификация с "username", равным имени пользователя алиаса, и "password", равным сгенерированному паролю алиаса, в заголовках Basic Authorization. [!WARNING] Этот раздел конечных точек находится в разработке и, надеемся, будет выпущен в 2024 году. Временно, пожалуйста, используйте IMAP-клиент из выпадающего меню "Apps" в навигации нашего сайта.

Список контактов

GET /v1/contacts

Скоро будет

Создать контакт

POST /v1/contacts

Скоро будет

Получить контакт

GET /v1/contacts/:id

Скоро будет

Обновить контакт

PUT /v1/contacts/:id

Скоро будет

Удалить контакт

DELETE /v1/contacts/:id

Скоро будет

Note

В отличие от других конечных точек API, для этих требуется аутентификация с "username", равным имени пользователя псевдонима, и "password", равным сгенерированному паролю псевдонима, в заголовках Basic Authorization.

Warning

Этот раздел конечных точек находится в разработке и, надеемся, будет выпущен в 2024 году. Временно, пожалуйста, используйте IMAP-клиент из выпадающего меню "Apps" в навигации нашего сайта.

Список календарей

GET /v1/calendars

Скоро будет

Создать календарь

POST /v1/calendars

Скоро будет

Получить календарь

GET /v1/calendars/:id

Скоро будет

Обновить календарь

PUT /v1/calendars/:id

Скоро будет

Удалить календарь

DELETE /v1/calendars/:id

Скоро будет

Note

В отличие от других конечных точек API, для этих требуется аутентификация с "username", равным имени пользователя псевдонима, и "password", равным сгенерированному паролю псевдонима, в заголовках Basic Authorization.

Warning

Этот раздел конечных точек находится в разработке и, надеемся, будет выпущен в 2024 году. Временно, пожалуйста, используйте IMAP-клиент из выпадающего меню "Apps" в навигации нашего сайта.

Пожалуйста, убедитесь, что вы выполнили инструкции по настройке для вашего домена.

Эти инструкции можно найти в разделе FAQ Поддерживаете ли вы получение почты через IMAP?.

Список и поиск сообщений

GET /v1/messages

Скоро будет

Создать сообщение

Note

Это НЕ отправит электронное письмо – оно просто добавит сообщение в папку вашего почтового ящика (например, это похоже на команду IMAP APPEND). Если вы хотите отправить письмо, смотрите Создать исходящее SMTP письмо ниже. После создания исходящего SMTP письма вы можете добавить его копию с помощью этой конечной точки в почтовый ящик вашего псевдонима для хранения.

POST /v1/messages

Скоро будет

Получить сообщение

GET /v1/messages/:id

Скоро будет

Обновить сообщение

PUT /v1/messages/:id

Скоро будет

Удалить сообщение

DELETE /v1/messages:id

Скоро будет

Tip

Конечные точки папок с путем папки /v1/folders/:path взаимозаменяемы с ID папки :id. Это означает, что вы можете ссылаться на папку либо по path, либо по id.

Warning

Этот раздел конечных точек находится в разработке и, надеемся, будет выпущен в 2024 году. Временно, пожалуйста, используйте IMAP-клиент из выпадающего меню "Apps" в навигации нашего сайта.

Список папок

GET /v1/folders

Скоро будет

Создать папку

POST /v1/folders

Скоро будет

Получить папку

GET /v1/folders/:id

Скоро будет

Обновить папку

PUT /v1/folders/:id

Скоро будет

Удалить папку

DELETE /v1/folders/:id

Скоро будет

Копировать папку

POST /v1/folders/:id/copy

Скоро будет

Пожалуйста, убедитесь, что вы выполнили инструкции по настройке для вашего домена.

Эти инструкции можно найти в разделе Мой аккаунт → Домены → Настройки → Конфигурация исходящего SMTP. Вам необходимо настроить DKIM, Return-Path и DMARC для отправки исходящих SMTP писем с вашего домена.

Получить лимит исходящих SMTP писем

Это простой эндпоинт, который возвращает JSON-объект, содержащий count и limit для количества ежедневных исходящих SMTP сообщений на основе каждой учетной записи.

GET /v1/emails/limit

Пример запроса:

curl https://fe.tiamati.email/v1/emails/limit \
  -u API_TOKEN:

Список исходящих SMTP писем

Обратите внимание, что этот эндпоинт не возвращает значения свойств для message, headers и rejectedErrors письма.

Чтобы получить эти свойства и их значения, используйте эндпоинт Получить письмо с ID письма.

GET /v1/emails

Параметр Querystring Обязательно Тип Описание
q Нет Строка (поддерживается RegExp) Поиск писем по метаданным
domain Нет Строка (поддерживается RegExp) Поиск писем по доменному имени
sort Нет Строка Сортировка по определённому полю (префикс с одним дефисом - для обратного порядка сортировки). По умолчанию created_at, если не указано.
page Нет Число Подробнее см. Пагинация
limit Нет Число Подробнее см. Пагинация

Пример запроса:

curl https://fe.tiamati.email/v1/emails?limit=1 \
  -u API_TOKEN:

Создать исходящее SMTP письмо

Наш API для создания письма вдохновлен и использует конфигурацию опций сообщения Nodemailer. Пожалуйста, обратитесь к конфигурации сообщения Nodemailer для всех параметров тела ниже.

Обратите внимание, что за исключением envelope и dkim (так как мы устанавливаем их автоматически для вас), мы поддерживаем все опции Nodemailer. Мы автоматически устанавливаем опции disableFileAccess и disableUrlAccess в true в целях безопасности.

Вы должны либо передать единственную опцию raw с вашим полным сырцовым письмом, включая заголовки, или передать отдельные параметры тела ниже.

Этот API автоматически кодирует эмодзи, если они встречаются в заголовках (например, строка темы Subject: 🤓 Hello автоматически преобразуется в Subject: =?UTF-8?Q?=F0=9F=A4=93?= Hello). Наша цель — сделать API для писем максимально удобным и защищённым для разработчиков.

Аутентификация: Этот эндпоинт поддерживает как аутентификацию по API токену, так и аутентификацию по учетным данным алиаса. Подробнее см. раздел Аутентификация выше.

POST /v1/emails

Параметр тела Обязательно Тип Описание
from Нет Строка (Email) Адрес электронной почты отправителя (должен существовать как алиас домена).
to Нет Строка или Массив Список получателей для заголовка "To", разделённый запятыми, или массив.
cc Нет Строка или Массив Список получателей для заголовка "Cc", разделённый запятыми, или массив.
bcc Нет Строка или Массив Список получателей для заголовка "Bcc", разделённый запятыми, или массив.
subject Нет Строка Тема письма.
text Нет Строка или Буфер Текстовая версия сообщения.
html Нет Строка или Буфер HTML-версия сообщения.
attachments Нет Массив Массив объектов вложений (см. общие поля Nodemailer).
sender Нет Строка Адрес электронной почты для заголовка "Sender" (см. более продвинутые поля Nodemailer).
replyTo Нет Строка Адрес электронной почты для заголовка "Reply-To".
inReplyTo Нет Строка Message-ID, на который данное сообщение является ответом.
references Нет Строка или Массив Список Message-ID, разделённых пробелами, или массив.
attachDataUrls Нет Булево Если true, то преобразует изображения с префиксом data: в HTML-содержимом сообщения в встроенные вложения.
watchHtml Нет Строка Специфичная для Apple Watch HTML-версия сообщения (согласно документации Nodemailer), последние модели часов не требуют установки этого параметра.
amp Нет Строка Специфичная для AMP4EMAIL HTML-версия сообщения (см. пример Nodemailer).
icalEvent Нет Объект Событие iCalendar для использования в качестве альтернативного содержимого сообщения (см. календарные события Nodemailer).
alternatives Нет Массив Массив альтернативного содержимого сообщения (см. альтернативное содержимое Nodemailer).
encoding Нет Строка Кодировка для текстовых и HTML строк (по умолчанию "utf-8", также поддерживаются значения "hex" и "base64").
raw Нет Строка или Буфер Пользовательское сгенерированное сообщение в формате RFC822 для использования (вместо сгенерированного Nodemailer – см. пользовательский источник Nodemailer).
textEncoding Нет Строка Кодировка, которая принудительно используется для текстовых значений (либо "quoted-printable", либо "base64"). Значение по умолчанию — ближайшее обнаруженное (для ASCII используйте "quoted-printable").
priority Нет Строка Уровень приоритета письма (может быть "high", "normal" (по умолчанию) или "low"). Обратите внимание, что значение "normal" не устанавливает заголовок приоритета (это поведение по умолчанию). Если установлено значение "high" или "low", то заголовки X-Priority, X-MSMail-Priority и Importance будут установлены соответствующим образом.
headers Нет Объект или Массив Объект или массив дополнительных заголовков для установки (см. пользовательские заголовки Nodemailer).
messageId Нет Строка Необязательное значение Message-ID для заголовка "Message-ID" (если не установлено, будет создано значение по умолчанию – обратите внимание, что значение должно соответствовать спецификации RFC2822).
date Нет Строка или Дата Необязательное значение даты, которое будет использовано, если заголовок Date отсутствует после парсинга, иначе будет использована текущая строка UTC, если не установлено. Заголовок даты не может быть более чем на 30 дней позже текущего времени.
list Нет Объект Необязательный объект заголовков List-* (см. заголовки списка Nodemailer).

Пример запроса (API токен):

curl -X POST https://fe.tiamati.email/v1/emails \
  -u API_TOKEN: \
  -d "from=alias@example.com" \
  -d "to=user%40gmail.com" \
  -d "subject=test" \
  -d "text=test"

Пример запроса (учётные данные алиаса):

curl -X POST https://fe.tiamati.email/v1/emails \
  -u "alias@example.com:GENERATED_PASSWORD" \
  -d "from=alias@example.com" \
  -d "to=user%40gmail.com" \
  -d "subject=test" \
  -d "text=test"

Пример запроса (сырой email):

curl -X POST https://fe.tiamati.email/v1/emails \
  -u API_TOKEN: \
  -d "raw=`cat file.eml`"

Получить исходящее SMTP письмо

GET /v1/emails/:id

Пример запроса:

curl https://fe.tiamati.email/v1/emails/:id \
  -u API_TOKEN:

Удалить исходящее SMTP письмо

Удаление письма установит статус в "rejected" (и впоследствии не будет обрабатывать его в очереди) только если текущий статус является одним из "pending", "queued" или "deferred". Мы можем автоматически удалять письма спустя 30 дней после их создания и/или отправки – поэтому вам следует хранить копию исходящих SMTP писем в вашем клиенте, базе данных или приложении. Вы можете ссылаться на наш идентификатор письма в вашей базе данных при необходимости – это значение возвращается как из Create email, так и из Retrieve email эндпоинтов.

DELETE /v1/emails/:id

Пример запроса:

curl -X DELETE https://fe.tiamati.email/v1/emails/:id \
  -u API_TOKEN:

Tip

Эндпоинты доменов с именем домена /v1/domains/:domain_name в качестве конечной точки взаимозаменяемы с использованием ID домена :domain_id. Это означает, что вы можете ссылаться на домен либо по его name, либо по id.

Список доменов

Note

Начиная с 1 ноября 2024 года API эндпоинты для Списка доменов и Списка алиасов доменов по умолчанию будут возвращать максимум 1000 результатов на страницу. Если вы хотите включить это поведение заранее, вы можете передать ?paginate=true в качестве дополнительного параметра querystring в URL запроса. Подробнее см. в разделе Пагинация.

GET /v1/domains

Параметр querystring Обязательно Тип Описание
q Нет Строка (поддерживается RegExp) Поиск доменов по имени
name Нет Строка (поддерживается RegExp) Поиск доменов по имени
sort Нет Строка Сортировка по конкретному полю (поставьте один дефис - в начале, чтобы отсортировать в обратном порядке). По умолчанию created_at, если не указано.
page Нет Число Подробнее см. в разделе Пагинация
limit Нет Число Подробнее см. в разделе Пагинация

Пример запроса:

curl https://fe.tiamati.email/v1/domains \
  -u API_TOKEN:

Создать домен

POST /v1/domains

Параметр тела запроса Обязательно Тип Описание
domain Да Строка (FQDN или IP) Полное доменное имя ("FQDN") или IP-адрес
team_domain Нет Строка (ID домена или имя домена; FQDN) Автоматически назначить этот домен той же команде, что и другой домен. Это означает, что все участники этого домена будут назначены членами команды, а plan автоматически установится в team. Вы можете установить значение "none", если необходимо явно отключить это, но обычно это не требуется.
plan Нет Строка (перечислимое) Тип плана (должен быть "free", "enhanced_protection" или "team", по умолчанию "free" или текущий платный план пользователя, если он есть)
catchall Нет Строка (разделённые адреса электронной почты) или Boolean Создать алиас по умолчанию catch-all, по умолчанию true (если true, будет использоваться email пользователя API в качестве получателя, если false — catch-all не создаётся). Если передана строка, это список email-адресов, разделённых переносом строки, пробелом и/или запятой, которые будут получателями.
has_adult_content_protection Нет Boolean Включить защиту от взрослого контента в Спам-сканере для этого домена
has_phishing_protection Нет Boolean Включить защиту от фишинга в Спам-сканере для этого домена
has_executable_protection Нет Boolean Включить защиту от исполняемых файлов в Спам-сканере для этого домена
has_virus_protection Нет Boolean Включить защиту от вирусов в Спам-сканере для этого домена
has_recipient_verification Нет Boolean Глобальное значение по умолчанию для домена, указывающее, требуется ли от получателей алиасов кликать по ссылке подтверждения email, чтобы письма проходили
ignore_mx_check Нет Boolean Игнорировать проверку MX-записи домена для верификации. Это в основном для пользователей с продвинутыми правилами настройки MX и необходимостью сохранить существующую MX-почту и пересылать её на нашу.
retention_days Нет Число Целое число от 0 до 30, соответствующее количеству дней хранения исходящих SMTP писем после успешной доставки или окончательной ошибки. По умолчанию 0, что означает немедленное удаление и редактирование исходящих SMTP писем для вашей безопасности.
bounce_webhook Нет Строка (URL) или Boolean (false) URL вебхука http:// или https:// по вашему выбору для отправки bounce-вебхуков. Мы будем отправлять POST запросы на этот URL с информацией о сбоях исходящей SMTP почты (например, мягкие или жёсткие ошибки – чтобы вы могли управлять подписчиками и программно управлять исходящей почтой).
max_quota_per_alias Нет Строка Максимальная квота хранения для алиасов на этом домене. Введите значение, например "1 GB", которое будет распознано библиотекой bytes.

Пример запроса:

curl -X POST https://fe.tiamati.email/v1/domains \
  -u API_TOKEN: \
  -d domain=example.com \
  -d plan=free

Получить домен

GET /v1/domains/example.com

Пример запроса:

curl https://fe.tiamati.email/v1/domains/example.com \
  -u API_TOKEN:

Проверить записи домена

GET /v1/domains/example.com/verify-records

Пример запроса:

curl https://fe.tiamati.email/v1/domains/example.com/verify-records \
  -u API_TOKEN:

Проверить SMTP-записи домена

GET /v1/domains/example.com/verify-smtp

Пример запроса:

curl https://fe.tiamati.email/v1/domains/example.com/verify-smtp \
  -u API_TOKEN:

Список паролей catch-all для всего домена

GET /v1/domains/example.com/catch-all-passwords

Пример запроса:

curl https://fe.tiamati.email/v1/domains/example.com/catch-all-passwords \
  -u API_TOKEN:

Создать пароль catch-all для всего домена

POST /v1/domains/example.com/catch-all-passwords

Параметр тела Обязательно Тип Описание
new_password Нет String Ваш собственный новый пароль для использования в качестве пароля catch-all для всего домена. Обратите внимание, что вы можете оставить это поле пустым или вовсе не включать его в тело запроса API, если хотите получить случайно сгенерированный и надежный пароль.
description Нет String Описание для целей организации.

Пример запроса:

curl BASE_URL/v1/domains/example.com/catch-all-passwords \
  -u API_TOKEN:

Удалить пароль catch-all для всего домена

DELETE /v1/domains/example.com/catch-all-passwords/:token_id

Пример запроса:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/catch-all-passwords/:token_id \
  -u API_TOKEN:

Обновить домен

PUT /v1/domains/example.com

Параметр тела Обязательно Тип Описание
smtp_port Нет String или Number Пользовательский порт для настройки SMTP-перенаправления (по умолчанию "25")
has_adult_content_protection Нет Boolean Включить ли защиту от взрослого контента в Спам-сканере для этого домена
has_phishing_protection Нет Boolean Включить ли защиту от фишинга в Спам-сканере для этого домена
has_executable_protection Нет Boolean Включить ли защиту от исполняемых файлов в Спам-сканере для этого домена
has_virus_protection Нет Boolean Включить ли антивирусную защиту в Спам-сканере для этого домена
has_recipient_verification Нет Boolean Глобальное значение по умолчанию для домена, указывающее, требуется ли от получателей алиасов кликать по ссылке подтверждения электронной почты для прохождения писем
ignore_mx_check Нет Boolean Игнорировать ли проверку MX-записи домена для верификации. Это в основном для пользователей с продвинутыми правилами настройки MX и необходимостью сохранить существующую MX-конфигурацию и перенаправлять на нашу.
retention_days Нет Number Целое число от 0 до 30, соответствующее количеству дней хранения исходящих SMTP-писем после успешной доставки или окончательной ошибки. По умолчанию 0, что означает немедленное удаление и редактирование исходящих SMTP-писем для вашей безопасности.
bounce_webhook Нет String (URL) или Boolean (false) URL вебхука http:// или https:// по вашему выбору для отправки вебхуков о возвратах. Мы будем отправлять POST запросы на этот URL с информацией о сбоях исходящей SMTP-почты (например, мягкие или жесткие ошибки – чтобы вы могли управлять подписчиками и программно управлять исходящей почтой).
max_quota_per_alias Нет String Максимальная квота хранения для алиасов на этом домене. Введите значение, например "1 GB", которое будет обработано библиотекой bytes.

Пример запроса:

curl -X PUT https://fe.tiamati.email/v1/domains/example.com \
  -u API_TOKEN:

Удалить домен

DELETE /v1/domains/:domain_name

Пример запроса:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name \
  -u API_TOKEN:

Принять приглашение в домен

GET /v1/domains/:domain_name/invites

Пример запроса:

curl https://fe.tiamati.email/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Создать приглашение в домен

POST /v1/domains/example.com/invites

Параметр тела Обязательно Тип Описание
email Да Строка (Email) Адрес электронной почты для приглашения в список участников домена
group Да Строка (перечисление) Группа, в которую будет добавлен пользователь в составе домена (может быть "admin" или "user")

Пример запроса:

curl -X POST https://fe.tiamati.email/v1/domains/example.com/invites \
  -u API_TOKEN: \
  -d "email=user%40gmail.com" \
  -d group=admin

Important

Если пользователь, которого приглашают, уже является принятым участником любого другого домена, в котором состоит администратор, отправляющий приглашение, то приглашение будет автоматически принято и письмо отправлено не будет.

Удалить приглашение в домен

DELETE /v1/domains/:domain_name/invites

Параметр тела Обязательно Тип Описание
email Да Строка (Email) Адрес электронной почты для удаления из списка участников домена

Пример запроса:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Обновить участника домена

PUT /v1/domains/example.com/members/:member_id

Параметр тела Обязательно Тип Описание
group Да Строка (перечисление) Группа, в которую будет обновлен пользователь в составе домена (может быть "admin" или "user")

Пример запроса:

curl -X PUT https://fe.tiamati.email/v1/domains/example.com/members/:member_id \
  -u API_TOKEN:

Удалить участника домена

DELETE /v1/domains/:domain_name/members/:member_id

Пример запроса:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/members/:member_id \
  -u API_TOKEN:

Сгенерировать пароль для псевдонима

Обратите внимание, что если вы не отправите инструкции по электронной почте, то имя пользователя и пароль будут в теле JSON-ответа успешного запроса в формате { username: 'alias@yourdomain.com', password: 'some-generated-password' }.

POST /v1/domains/example.com/aliases/:alias_id/generate-password

Параметр тела Обязательно Тип Описание
new_password Нет Строка Ваш собственный новый пароль для использования с псевдонимом. Обратите внимание, что вы можете оставить это поле пустым или вовсе не включать его в тело запроса, если хотите получить случайно сгенерированный и надежный пароль.
password Нет Строка Существующий пароль для псевдонима, чтобы изменить пароль без удаления существующего хранилища почтового ящика IMAP (см. опцию is_override ниже, если у вас больше нет существующего пароля).
is_override Нет Булево ИСПОЛЬЗУЙТЕ С ОСТОРОЖНОСТЬЮ: Это полностью перезапишет существующий пароль псевдонима и базу данных, а также навсегда удалит существующее хранилище IMAP и полностью сбросит базу данных электронной почты SQLite псевдонима. Пожалуйста, сделайте резервную копию, если возможно, если у вас есть существующий почтовый ящик, связанный с этим псевдонимом.
emailed_instructions Нет Строка Адрес электронной почты, на который будут отправлены пароль псевдонима и инструкции по настройке.

Пример запроса:

curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id/generate-password \
  -u API_TOKEN:

Список псевдонимов домена

Note

Начиная с 1 ноября 2024 года API-эндпоинты для Списка доменов и Списка псевдонимов домена по умолчанию будут возвращать максимум 1000 результатов на страницу. Если вы хотите включить это поведение заранее, вы можете добавить ?paginate=true в качестве дополнительного параметра строки запроса к URL эндпоинта. Подробнее см. в разделе Пагинация.

GET /v1/domains/example.com/aliases

Параметр строки запроса Обязательно Тип Описание
q Нет Строка (поддерживается RegExp) Поиск псевдонимов в домене по имени, метке или получателю
name Нет Строка (поддерживается RegExp) Поиск псевдонимов в домене по имени
recipient Нет Строка (поддерживается RegExp) Поиск псевдонимов в домене по получателю
sort Нет Строка Сортировка по определённому полю (добавьте префикс с одним дефисом - для обратного порядка сортировки). По умолчанию created_at, если не указано.
page Нет Число Подробнее см. в разделе Пагинация
limit Нет Число Подробнее см. в разделе Пагинация

Пример запроса:

curl https://fe.tiamati.email/v1/domains/example.com/aliases?pagination=true \
  -u API_TOKEN:

Создать новый псевдоним домена

POST /v1/domains/example.com/aliases

Параметр тела запроса Обязательно Тип Описание
name Нет Строка Имя псевдонима (если не указано или пустое, будет сгенерирован случайный псевдоним)
recipients Нет Строка или Массив Список получателей (должен быть строкой с разделителями в виде переноса строки/пробела/запятой или массивом валидных email-адресов, полностью квалифицированных доменных имён ("FQDN"), IP-адресов и/или URL вебхуков – если не указан или пустой массив, в качестве получателя будет установлен email пользователя, делающего API-запрос)
description Нет Строка Описание псевдонима
labels Нет Строка или Массив Список меток (должен быть строкой с разделителями в виде переноса строки/пробела/запятой или массивом)
has_recipient_verification Нет Булево Требовать от получателей кликнуть по ссылке подтверждения в письме для прохождения почты (по умолчанию используется настройка домена, если явно не указано в теле запроса)
is_enabled Нет Булево Включить или отключить этот псевдоним (если отключён, письма не будут маршрутизироваться и вернут успешные коды статуса). Если передано значение, оно будет преобразовано в булево с помощью boolean)
error_code_if_disabled Нет Число (одно из 250, 421 или 550) Входящие письма на этот псевдоним будут отклоняться, если is_enabled равен false, с кодом 250 (тихая доставка в никуда, например, чёрная дыра или /dev/null), 421 (временный отказ; повторная попытка в течение ~5 дней) или 550 (постоянная ошибка и отклонение). По умолчанию 250.
has_imap Нет Булево Включить или отключить IMAP-хранилище для этого псевдонима (если отключено, входящие письма не будут сохраняться в IMAP-хранилище. Если передано значение, оно будет преобразовано в булево с помощью boolean)
has_pgp Нет Булево Включить или отключить OpenPGP шифрование для IMAP/POP3/CalDAV/CardDAV зашифрованного хранения почты с использованием public_key псевдонима.
public_key Нет Строка OpenPGP публичный ключ в формате ASCII Armor (нажмите здесь, чтобы посмотреть пример; например, GPG ключ для support@forwardemail.net). Применяется только если has_pgp установлен в true. Подробнее о сквозном шифровании в нашем FAQ.
max_quota Нет Строка Максимальная квота хранения для этого псевдонима. Оставьте пустым, чтобы сбросить до текущей максимальной квоты домена, или введите значение, например "1 GB", которое будет распарсено с помощью bytes. Это значение может изменять только администратор домена.
vacation_responder_is_enabled Нет Булево Включить или отключить автоматический автоответчик "в отпуске".
vacation_responder_start_date Нет Строка Дата начала работы автоответчика (если включён и дата начала не указана, считается, что автоответчик уже активен). Поддерживаются форматы дат, такие как MM/DD/YYYY, YYYY-MM-DD и другие форматы с умным парсингом с помощью dayjs.
vacation_responder_end_date Нет Строка Дата окончания работы автоответчика (если включён и дата окончания не указана, считается, что автоответчик работает бесконечно). Поддерживаются форматы дат, такие как MM/DD/YYYY, YYYY-MM-DD и другие форматы с умным парсингом с помощью dayjs.
vacation_responder_subject Нет Строка Тема письма автоответчика в обычном тексте, например "Вне офиса". Для удаления всего HTML используется striptags.
vacation_responder_message Нет Строка Сообщение автоответчика в обычном тексте, например "Я буду вне офиса до февраля.". Для удаления всего HTML используется striptags.

Example Request:

curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases \
  -u API_TOKEN:

Получить псевдоним домена

Вы можете получить псевдоним домена по его значению id или name.

GET /v1/domains/:domain_name/aliases/:alias_id

Example Request:

curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

GET /v1/domains/:domain_name/aliases/:alias_name

Example Request:

curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_name \
  -u API_TOKEN:

Обновить псевдоним домена

PUT /v1/domains/example.com/aliases/:alias_id

Параметр тела Обязательно Тип Описание
name Нет Строка Имя псевдонима
recipients Нет Строка или Массив Список получателей (должен быть строкой, разделённой переводами строк/пробелами/запятыми, или массивом с действительными адресами электронной почты, полностью квалифицированными доменными именами ("FQDN"), IP-адресами и/или URL вебхуков)
description Нет Строка Описание псевдонима
labels Нет Строка или Массив Список меток (должен быть строкой, разделённой переводами строк/пробелами/запятыми, или массивом)
has_recipient_verification Нет Булево Требовать от получателей кликнуть по ссылке подтверждения электронной почты для прохождения писем (по умолчанию используется настройка домена, если явно не указано в теле запроса)
is_enabled Нет Булево Включить или отключить этот псевдоним (если отключён, письма не будут маршрутизироваться и вернут успешные коды статуса). Если передано значение, оно преобразуется в булево с помощью boolean)
error_code_if_disabled Нет Число (одно из 250, 421 или 550) Входящие письма на этот псевдоним будут отклоняться, если is_enabled равно false, с кодом 250 (тихая доставка в никуда, например, чёрная дыра или /dev/null), 421 (мягкий отказ; повторная попытка в течение ~5 дней) или 550 (постоянная ошибка и отклонение). По умолчанию 250.
has_imap Нет Булево Включить или отключить IMAP-хранилище для этого псевдонима (если отключено, входящие письма не будут сохраняться в IMAP-хранилище. Если передано значение, оно преобразуется в булево с помощью boolean)
has_pgp Нет Булево Включить или отключить OpenPGP шифрование для IMAP/POP3/CalDAV/CardDAV зашифрованного хранения электронной почты с использованием public_key псевдонима.
public_key Нет Строка Публичный ключ OpenPGP в формате ASCII Armor (нажмите здесь, чтобы посмотреть пример; например, GPG ключ для support@forwardemail.net). Применяется только если has_pgp установлен в true. Подробнее о сквозном шифровании в нашем FAQ.
max_quota Нет Строка Максимальная квота хранилища для этого псевдонима. Оставьте пустым, чтобы сбросить до текущей максимальной квоты домена, или введите значение, например "1 GB", которое будет обработано с помощью bytes. Это значение может изменять только администратор домена.
vacation_responder_is_enabled Нет Булево Включить или отключить автоматический автоответчик отсутствия.
vacation_responder_start_date Нет Строка Дата начала работы автоответчика отсутствия (если включён и дата начала не указана, считается, что он уже активен). Поддерживаются форматы дат, такие как MM/DD/YYYY, YYYY-MM-DD и другие форматы с помощью умного парсинга через dayjs.
vacation_responder_end_date Нет Строка Дата окончания работы автоответчика отсутствия (если включён и дата окончания не указана, считается, что он работает бесконечно). Поддерживаются форматы дат, такие как MM/DD/YYYY, YYYY-MM-DD и другие форматы с помощью умного парсинга через dayjs.
vacation_responder_subject Нет Строка Тема в обычном тексте для автоответчика отсутствия, например "Вне офиса". Для удаления всего HTML используется striptags.
vacation_responder_message Нет Строка Сообщение в обычном тексте для автоответчика отсутствия, например "Я буду вне офиса до февраля.". Для удаления всего HTML используется striptags.

Пример запроса:

curl -X PUT https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id \
  -u API_TOKEN:

Удалить псевдоним домена

DELETE /v1/domains/:domain_name/aliases/:alias_id

Пример запроса:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

Мы позволяем вам шифровать записи даже на бесплатном тарифе без дополнительной платы. Конфиденциальность не должна быть функцией, она должна быть неотъемлемой частью всех аспектов продукта. По многочисленным просьбам в обсуждении Privacy Guides и в наших задачах на GitHub мы добавили эту возможность.

Шифрование TXT записи

POST /v1/encrypt

Параметр тела Обязательно Тип Описание
input Да String Любая действительная открытая TXT запись Forward Email

Пример запроса:

curl -X POST https://fe.tiamati.email/v1/encrypt \
  -d "input=user@gmail.com"