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 |
Base URI
Поточний базовий шлях HTTP URI: https://fe.tiamati.email.
Authentication
Всі кінцеві точки вимагають автентифікації за допомогою Basic Authorization. Ми підтримуємо два методи автентифікації:
API Token Authentication (Рекомендується для більшості кінцевих точок)
Встановіть свій 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 токена.
Не хвилюйтеся – нижче наведені приклади, якщо ви не впевнені, що це таке.
Errors
Якщо виникають помилки, тіло відповіді API міститиме детальне повідомлення про помилку.
| Код | Назва |
|---|---|
| 200 | OK |
| 400 | Некоректний запит |
| 401 | Неавторизовано |
| 403 | Заборонено |
| 404 | Не знайдено |
| 429 | Занадто багато запитів |
| 500 | Внутрішня помилка сервера |
| 501 | Не реалізовано |
| 502 | Поганий шлюз |
| 503 | Сервіс недоступний |
| 504 | Тайм-аут шлюзу |
Tip
Якщо ви отримали статус-код 5xx (що не повинно траплятися), будь ласка, зв’яжіться з нами за адресою api@forwardemail.net, і ми допоможемо вам негайно вирішити вашу проблему.
Localization
Наш сервіс перекладено більш ніж на 25 різних мов. Всі повідомлення відповіді API перекладаються на останню локаль, виявлену у користувача, який робить API-запит. Ви можете перевизначити це, передавши власний заголовок Accept-Language. Не соромтеся спробувати це, використовуючи випадаюче меню мов у нижній частині цієї сторінки.
Pagination
Note
Починаючи з 1 листопада 2024 року кінцеві точки API для List domains та List domain aliases за замовчуванням будуть повертати максимум 1000 результатів на сторінку. Якщо ви хочете раніше скористатися цією поведінкою, ви можете додати ?paginate=true як додатковий параметр рядка запиту до URL кінцевої точки.
Пагінація підтримується всіма кінцевими точками API, які повертають списки результатів.
Просто вкажіть параметри рядка запиту page (і за бажанням limit).
Параметр page повинен бути числом, більшим або рівним 1. Якщо ви вказуєте limit (також число), мінімальне значення – 10, а максимальне – 50 (якщо не зазначено інше).
| Параметр рядка запиту | Обов’язковий | Тип | Опис |
|---|---|---|---|
page |
Ні | Число | Сторінка результатів для повернення. Якщо не вказано, значення page буде 1. Має бути числом, більшим або рівним 1. |
limit |
Ні | Число | Кількість результатів на сторінку. За замовчуванням 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" не буде надано, якщо немає наступної сторінки). |
Example Request:
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
| Параметр рядка запиту | Обов’язковий | Тип | Опис |
|---|---|---|---|
domain |
Ні | Рядок (FQDN) | Фільтрувати логи за повністю кваліфікованим доменом ("FQDN"). Якщо не вказано, будуть отримані логи по всіх доменах. |
q |
Ні | Рядок | Пошук логів за електронною поштою, доменом, іменем псевдоніма, IP-адресою або датою (формати M/Y, M/D/YY, M-D, M-D-YY, або M.D.YY). |
bounce_category |
Ні | Рядок | Пошук логів за конкретною категорією відмови (наприклад, blocklist). |
response_code |
Ні | Число | Пошук логів за конкретним кодом помилки відповіді (наприклад, 421 або 550). |
Example Request:
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 |
Так | Рядок | Пароль |
Example Request:
curl -X POST https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
Отримати обліковий запис
GET /v1/account
Example Request:
curl https://fe.tiamati.email/v1/account \
-u API_TOKEN:
Оновити обліковий запис
PUT /v1/account
| Параметр тіла | Обов’язковий | Тип | Опис |
|---|---|---|---|
email |
Ні | Рядок (Email) | Адреса електронної пошти |
given_name |
Ні | Рядок | Ім’я |
family_name |
Ні | Рядок | Прізвище |
avatar_url |
Ні | Рядок (URL) | Посилання на зображення аватара |
Example Request:
curl -X PUT https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
Контакти псевдонімів (CardDAV)
Note
На відміну від інших кінцевих точок API, для цих потрібна Аутентифікація з "ім’ям користувача", що дорівнює імені користувача псевдоніма, та "паролем", що дорівнює згенерованому паролю псевдоніма, у заголовках Basic Authorization. [!WARNING] Цей розділ кінцевих точок знаходиться у стадії розробки і, сподіваємось, буде випущений у 2024 році. Тимчасово, будь ласка, використовуйте IMAP-клієнт із випадаючого меню "Apps" у навігації нашого вебсайту.
Список контактів
GET /v1/contacts
Скоро буде
Створити контакт
POST /v1/contacts
Скоро буде
Отримати контакт
GET /v1/contacts/:id
Скоро буде
Оновити контакт
PUT /v1/contacts/:id
Скоро буде
Видалити контакт
DELETE /v1/contacts/:id
Скоро буде
Псевдонім Календарів (CalDAV)
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
Скоро буде
Псевдонім Повідомлень (IMAP/POP3)
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
Скоро буде
Псевдонім Папок (IMAP/POP3)
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
| Параметр рядка запиту | Обов’язковий | Тип | Опис |
|---|---|---|---|
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 з вашим сирим повним листом, включно з заголовками, або передати окремі параметри тіла нижче.
Цей кінцевий пункт автоматично кодує емодзі, якщо вони знайдені в заголовках (наприклад, рядок теми 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, розділений пробілами, або масив 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 листів у вашому клієнті, базі даних або додатку. Ви можете посилатися на наше значення ID листа у вашій базі даних, якщо бажаєте – це значення повертається як з Створити лист, так і з Отримати лист кінцевих точок.
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 як додатковий параметр рядка запиту до URL кінцевої точки. Детальніше дивіться у розділі Пагінація.
GET /v1/domains
| Параметр рядка запиту | Обов’язковий | Тип | Опис |
|---|---|---|---|
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 не створюється). Якщо передано рядок, це список адрес електронної пошти, розділених переносом рядка, пробілом і/або комою, які будуть отримувачами. |
has_adult_content_protection |
Ні | Boolean | Чи увімкнути захист від дорослого контенту у Spam Scanner для цього домену |
has_phishing_protection |
Ні | Boolean | Чи увімкнути захист від фішингу у Spam Scanner для цього домену |
has_executable_protection |
Ні | Boolean | Чи увімкнути захист від виконуваних файлів у Spam Scanner для цього домену |
has_virus_protection |
Ні | Boolean | Чи увімкнути захист від вірусів у Spam Scanner для цього домену |
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:// на ваш вибір для надсилання вебхуків про відмови доставки. Ми надішлемо 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 для домену. Зверніть увагу, що ви можете залишити це поле порожнім або зовсім не включати його у тіло запиту, якщо хочете отримати випадково згенерований надійний пароль. |
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 | Чи увімкнути захист від дорослого контенту у Spam Scanner для цього домену |
has_phishing_protection |
Ні | Boolean | Чи увімкнути захист від фішингу у Spam Scanner для цього домену |
has_executable_protection |
Ні | Boolean | Чи увімкнути захист від виконуваних файлів у Spam Scanner для цього домену |
has_virus_protection |
Ні | Boolean | Чи увімкнути захист від вірусів у Spam Scanner для цього домену |
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. |
Example Request:
curl -X PUT https://fe.tiamati.email/v1/domains/example.com \
-u API_TOKEN:
Видалити домен
DELETE /v1/domains/:domain_name
Example Request:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name \
-u API_TOKEN:
Запрошення
Прийняти запрошення до домену
GET /v1/domains/:domain_name/invites
Example Request:
curl https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
Створити запрошення до домену
POST /v1/domains/example.com/invites
| Body Parameter | Required | Type | Description |
|---|---|---|---|
email |
Так | String (Email) | Адреса електронної пошти для запрошення до списку учасників домену |
group |
Так | String (enumerable) | Група, до якої додати користувача в членство домену (може бути "admin" або "user") |
Example Request:
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
| Body Parameter | Required | Type | Description |
|---|---|---|---|
email |
Так | String (Email) | Адреса електронної пошти для видалення зі списку учасників домену |
Example Request:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
Учасники
Оновити учасника домену
PUT /v1/domains/example.com/members/:member_id
| Body Parameter | Required | Type | Description |
|---|---|---|---|
group |
Так | String (enumerable) | Група, до якої оновити користувача в членстві домену (може бути "admin" або "user") |
Example Request:
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
Example Request:
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
| Body Parameter | Required | Type | Description |
|---|---|---|---|
new_password |
Ні | String | Ваш власний новий пароль для псевдоніма. Зверніть увагу, що ви можете залишити це поле порожнім або зовсім не включати його у тіло API-запиту, якщо хочете отримати випадково згенерований надійний пароль. |
password |
Ні | String | Існуючий пароль для псевдоніма, щоб змінити пароль без видалення існуючого сховища IMAP (див. опцію is_override нижче, якщо ви більше не маєте існуючого пароля). |
is_override |
Ні | Boolean | ВИКОРИСТОВУВАТИ З ОБЕРЕЖНІСТЮ: Це повністю перезапише існуючий пароль псевдоніма та базу даних, і назавжди видалить існуюче сховище IMAP та повністю скине SQLite базу даних електронної пошти псевдоніма. Будь ласка, зробіть резервну копію, якщо можливо, якщо у вас є існуюча поштова скринька, прив’язана до цього псевдоніма. |
emailed_instructions |
Ні | String | Адреса електронної пошти, на яку надіслати пароль псевдоніма та інструкції з налаштування. |
Example Request:
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 |
Ні | Число | Детальніше дивіться у розділі Пагінація |
Example Request:
curl https://fe.tiamati.email/v1/domains/example.com/aliases?pagination=true \
-u API_TOKEN:
Створити новий псевдонім домену
POST /v1/domains/example.com/aliases
| Параметр тіла запиту | Обов’язковий | Тип | Опис |
|---|---|---|---|
name |
Ні | Рядок | Ім’я псевдоніма (якщо не вказано або порожнє, буде згенеровано випадковий псевдонім) |
recipients |
Ні | Рядок або Масив | Список отримувачів (має бути рядок, розділений переносами рядків/пробілами/комами, або масив дійсних електронних адрес, повністю кваліфікованих доменних імен ("FQDN"), IP-адрес та/або URL вебхуків – якщо не вказано або масив порожній, отримувачем буде встановлено email користувача, який робить API-запит) |
description |
Ні | Рядок | Опис псевдоніма |
labels |
Ні | Рядок або Масив | Список міток (має бути рядок, розділений переносами рядків/пробілами/комами, або масив) |
has_recipient_verification |
Ні | Булевий | Вимагати від отримувачів натиснути посилання для підтвердження email, щоб листи проходили (за замовчуванням використовується налаштування домену, якщо явно не вказано у тілі запиту) |
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 |
Ні | Рядок | Тема у простому тексті для автоматичної відповіді у відпустці, наприклад "Відсутній в офісі". Ми використовуємо striptags для видалення всього HTML тут. |
vacation_responder_message |
Ні | Рядок | Повідомлення у простому тексті для автоматичної відповіді у відпустці, наприклад "Я буду відсутній в офісі до лютого.". Ми використовуємо striptags для видалення всього HTML тут. |
Example Request:
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
Example Request:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
Шифрування
Ми дозволяємо шифрувати записи навіть на безкоштовному плані безкоштовно. Конфіденційність не повинна бути функцією, вона має бути вбудована у всі аспекти продукту за замовчуванням. Як часто запитували в обговоренні Privacy Guides discussion та у наших GitHub issues, ми додали цю можливість.
Шифрувати TXT запис
POST /v1/encrypt
| Body Parameter | Required | Type | Description |
|---|---|---|---|
input |
Так | String | Будь-який дійсний відкритий TXT запис Forward Email |
Example Request:
curl -X POST https://fe.tiamati.email/v1/encrypt \
-d "input=user@gmail.com"