API електронної пошти

Зараз ми ще не випустили жодної оболонки API, але плануємо зробити це найближчим часом. Надіслати електронний лист до api@forwardemail.net якщо ви хочете отримувати сповіщення, коли буде випущено оболонку API певної мови програмування. Тим часом ви можете використовувати ці рекомендовані бібліотеки запитів HTTP у своїй програмі або просто використовувати завиток як у наведених нижче прикладах.

МоваБібліотека
РубінФарадей
Пітонзапити
JavaOkHttp
PHPзагадка
JavaScriptсуперагент (ми супроводжувачі)
Node.jsсуперагент (ми супроводжувачі)
Ідиnet / http
.NETRestSharp

Поточний базовий шлях URI HTTP: https://api.forwardemail.net.

Усі кінцеві точки вимагають вашого Ключ API має бути встановлено як значення "ім'я користувача" запиту Основна авторизація заголовок. Не хвилюйтеся – нижче наведено приклади, якщо ви не впевнені, що це таке.

Якщо виникають помилки, тіло відповіді на запит API міститиме детальне повідомлення про помилку.

КодІм'я
200OK
400Поганий запит
401Несанкціоновані
403Заборонено
404Не знайдено
429Занадто багато запитів
500Внутрішня помилка сервера
501Не впроваджений
502Неправильний шлюз
503сервіс не доступний
504Тайм-аут шлюзу
Порада: Якщо ви отримали код статусу 5xx (чого не повинно статися), зв’яжіться з нами за адресою api@forwardemail.net і ми допоможемо вам вирішити вашу проблему негайно.

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

Якщо ви бажаєте отримати сповіщення, коли стане доступною розбивка сторінок, надішліть електронний лист api@forwardemail.net.

Отримати журнали

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

Це дозволяє створювати фонові завдання за допомогою a Робота Cron або за допомогою нашого Програмне забезпечення 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 формат).

Приклад запиту:

curl https://api.forwardemail.net/v1/logs/download \
  -u API_TOKEN:

Приклад завдання Cron (щодня опівночі):

0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download -u API_TOKEN: &>/dev/null

Зверніть увагу, що ви можете скористатися такими послугами, як Crontab.guru щоб перевірити синтаксис виразу завдання cron.

Приклад завдання Cron (кожного дня опівночі і з журналами за попередній день):

Для MacOS:

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

Для Linux і Ubuntu:

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

Створити рахунок

POST /v1/account

Параметр тілавимагаєтьсяТипОпис
emailТакРядок (електронна пошта)Адреса електронної пошти
passwordТакРядокПароль

Приклад запиту:

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

Отримайте рахунок

GET /v1/account

Приклад запиту:

curl https://api.forwardemail.net/v1/account \
  -u API_TOKEN:

Оновити обліковий запис

PUT /v1/account

Параметр тілавимагаєтьсяТипОпис
emailНіРядок (електронна пошта)Адреса електронної пошти
given_nameНіРядокІм'я
family_nameНіРядокПрізвище
avatar_urlНіРядок (URL)Посилання на зображення аватара

Приклад запиту:

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

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

Отримайте ліміт електронної пошти

Це проста кінцева точка, яка повертає об’єкт JSON, що містить count і limit для кількості щоденних вихідних повідомлень SMTP для кожного облікового запису.

GET /v1/emails/limit

Приклад запиту:

curl https://api.forwardemail.net/v1/emails/limit \
  -u API_TOKEN:

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

Зауважте, що ця кінцева точка не повертає вже створені електронні листи message, headers, accepted, ні rejectedErrors властивості.

Щоб повернути ці властивості та їхні значення, використовуйте Отримати електронну пошту кінцева точка з ідентифікатором електронної пошти.

Ця кінцева точка повернеться максимум 50 результати за один раз. Якщо ви хочете зробити запит для кількох сторінок, тоді додайте ?page=NUMBER де NUMBER є цілим числом, напр. ?page=1.

GET /v1/emails

Параметр запитіввимагаєтьсяТипОпис
qНіРядок (підтримується RegExp)Пошук електронних листів за метаданими
domainНіРядок (підтримується RegExp)Пошук електронних листів за доменним іменем
pageНіНомерСторінка для повернення результатів (за замовчуванням 1)
`лімітНіНомерКількість результатів на сторінку для повернення (за замовчуванням: 50 – максимум є 50 а мінімум є 10)

Приклад запиту:

curl https://api.forwardemail.net/v1/emails \
  -u API_TOKEN:

Створити електронну пошту

Наш API для створення електронних листів натхненний конфігурацією параметрів повідомлень Nodemailer і використовує її. Будь ласка, відкладіть до Конфігурація повідомлень Nodemailer для всіх параметрів тіла нижче.

Зверніть увагу, що за винятком envelope і dkim (оскільки ми встановлюємо їх автоматично для вас), ми підтримуємо всі параметри Nodemailer. Ми встановлюємо автоматично disableFileAccess і disableUrlAccess варіанти до true з метою безпеки.

Ви повинні пройти один варіант raw із вашою необробленою повною електронною поштою, включаючи заголовки або передайте окремі параметри тіла нижче.

POST /v1/emails

Параметр тілавимагаєтьсяТипОпис
fromНіРядок (електронна пошта)Адреса електронної пошти відправника (має існувати як псевдонім домену).
toНіРядок або масивСписок, розділений комами, або масив одержувачів для заголовка «Кому».
ccНіРядок або масивРозділений комами список або масив одержувачів для заголовка «Копія».
bccНіРядок або масивРозділений комами список або масив одержувачів для заголовка "Прихована копія".
subjectНіРядокТема електронного листа.
textНіРядок або буферВерсія повідомлення у відкритому вигляді.
htmlНіРядок або буферHTML-версія повідомлення.
attachmentsНіМасивМасив об’єктів вкладення (див Загальні поля Nodemailer).
senderНіРядокАдреса електронної пошти для заголовка «Відправник» (див Розширені поля Nodemailer).
replyToНіРядокАдреса електронної пошти для заголовка «Відповісти».
inReplyToНіРядокІдентифікатор повідомлення, на яке є відповідь.
referencesНіРядок або масивСписок, розділений пробілами, або масив ідентифікаторів повідомлень.
attachDataUrlsНіБулеваЯкщо true потім перетворює data: зображення у вмісті HTML повідомлення до вбудованих вкладень.
watchHtmlНіРядокСпеціальна HTML-версія повідомлення для Apple Watch (відповідно до документів 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, яке використовуватиметься, якщо заголовок Date відсутній після синтаксичного аналізу, інакше використовуватиметься поточний рядок UTC, якщо його не встановлено. Заголовок дати не може випереджати поточний час більш ніж на 30 днів.
listНіОб'єктДодатковий об’єкт List-* заголовки (див Заголовки списків Nodemailer).

Приклад запиту:

curl -X POST https://api.forwardemail.net/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://api.forwardemail.net/v1/emails \
  -u API_TOKEN: \
  -d "raw=`cat file.eml`"

Отримати електронну пошту

GET /v1/emails/:id

Приклад запиту:

curl https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Видалити електронну пошту

Видалення електронної пошти призведе до статусу "rejected" (і згодом не обробляти його в черзі), якщо і тільки якщо поточний статус є одним із "pending", "queued", або "deferred". Ми можемо автоматично видаляти електронні листи через 30 днів після їх створення та/або надсилання, тому ви повинні зберігати копію вихідних електронних листів SMTP у своєму клієнті, базі даних або програмі. За бажанням ви можете посилатися на значення нашого ідентифікатора електронної пошти у своїй базі даних – це значення повертається з обох Створити електронну пошту і Отримати електронну пошту кінцеві точки.

DELETE /v1/emails/:id

Приклад запиту:

curl -X DELETE https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Порада: Кінцеві точки домену з іменем домену /v1/domains/:domain_name оскільки їхні шляхи взаємозамінні з ідентифікатором домену :domain_id. Це означає, що ви можете посилатися на домен будь-яким його name або id значення.

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

GET /v1/domains

Параметр запитіввимагаєтьсяТипОпис
qНіРядок (підтримується RegExp)Шукайте домени за назвою
nameНіРядок (підтримується RegExp)Шукайте домени за назвою

Приклад запиту:

curl https://api.forwardemail.net/v1/domains \
  -u API_TOKEN:

Створіть домен

POST /v1/domains

Параметр тілавимагаєтьсяТипОпис
domainТакРядок (FQDN або IP)Повністю кваліфіковане доменне ім’я ("FQDN") або IP-адреса
planНіРядок (перелічений)Тип плану (обов'язково "free", "enhanced_protection", або "team", за замовчуванням "free" або поточний платний план користувача, якщо на одному)
catchallНіРядок (розділені адреси електронної пошти) або логічнийСтворіть універсальний псевдонім за умовчанням, за замовчуванням true (якщо true він використовуватиме адресу електронної пошти користувача API як одержувача, і якщо false всеохоплюючий не буде створено). Якщо передано рядок, то це розмежований список адрес електронної пошти для використання як одержувачів (розділених розривом рядка, пробілом та/або комою)
has_adult_content_protectionНіБулеваУвімкнути захист вмісту для дорослих у Сканері спаму в цьому домені
has_phishing_protectionНіБулеваУвімкнути захист від фішингу в сканері спаму в цьому домені
has_executable_protectionНіБулеваУвімкнути захист виконуваних файлів сканера спаму в цьому домені
has_virus_protectionНіБулеваУвімкнути захист від вірусів Spam Scanner у цьому домені
has_recipient_verificationНіБулеваГлобальний домен за умовчанням визначає, чи потрібно вимагати, щоб одержувачі псевдоніма натискали посилання для підтвердження електронної пошти для проходження електронних листів
retention_daysНіНомерЦіле число між 0 і 30 що відповідає кількості днів зберігання для зберігання вихідних електронних листів SMTP після успішної доставки або постійної помилки. За замовчуванням 0, що означає, що вихідні електронні листи SMTP очищаються та редагуються негайно для вашої безпеки.

Приклад запиту:

curl -X POST https://api.forwardemail.net/v1/domains \
  -u API_TOKEN: \
  -d domain=example.com \
  -d plan=free

Отримайте домен

GET /v1/domains/example.com

Приклад запиту:

curl https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Перевірка записів домену

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

Приклад запиту:

curl https://api.forwardemail.net/v1/domains/example.com/verify-records \
  -u API_TOKEN:

Оновіть домен

PUT /v1/domains/example.com

Параметр тілавимагаєтьсяТипОпис
smtp_portНіРядок або числоСпеціальний порт для налаштування переадресації SMTP (за замовчуванням: "25")
has_adult_content_protectionНіБулеваУвімкнути захист вмісту для дорослих у Сканері спаму в цьому домені
has_phishing_protectionНіБулеваУвімкнути захист від фішингу в сканері спаму в цьому домені
has_executable_protectionНіБулеваУвімкнути захист виконуваних файлів сканера спаму в цьому домені
has_virus_protectionНіБулеваУвімкнути захист від вірусів Spam Scanner у цьому домені
has_recipient_verificationНіБулеваГлобальний домен за умовчанням визначає, чи потрібно вимагати, щоб одержувачі псевдоніма натискали посилання для підтвердження електронної пошти для проходження електронних листів
retention_daysНіНомерЦіле число між 0 і 30 що відповідає кількості днів зберігання для зберігання вихідних електронних листів SMTP після успішної доставки або постійної помилки. За замовчуванням 0, що означає, що вихідні електронні листи SMTP очищаються та редагуються негайно для вашої безпеки.

Приклад запиту:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Видалити домен

DELETE /v1/domains/:domain_name

Приклад запиту:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name \
  -u API_TOKEN:

Прийняти запрошення домену

GET /v1/domains/:domain_name/invites

Приклад запиту:

curl https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Створіть запрошення до домену

POST /v1/domains/example.com/invites

Параметр тілавимагаєтьсяТипОпис
emailТакРядок (електронна пошта)Електронна адреса для запрошення до списку членів домену
groupТакРядок (перелічений)Група, щоб додати користувача до членства в домені (може бути однією з "admin" або "user")

Приклад запиту:

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

Видалити запрошення домену

DELETE /v1/domains/:domain_name/invites

Параметр тілавимагаєтьсяТипОпис
emailТакРядок (електронна пошта)Електронну адресу, яку потрібно видалити зі списку членів домену

Приклад запиту:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Оновити член домену

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

Параметр тілавимагаєтьсяТипОпис
groupТакРядок (перелічений)Група для оновлення користувача до членства в домені (може бути однією з "admin" або "user")

Приклад запиту:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com/members/:member_id \
  -u API_TOKEN:

Видалити члена домену

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

Приклад запиту:

curl -X DELETE https://api.forwardemail.net/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НіРядокВаш новий пароль для псевдоніма. Зауважте, що ви можете залишити це поле порожнім або взагалі пропустити в тілі запиту API, якщо хочете отримати випадково згенерований надійний пароль.
passwordНіРядокІснуючий пароль для псевдоніма, щоб змінити пароль без видалення наявного сховища поштової скриньки IMAP (див is_override варіант нижче, якщо у вас більше немає поточного пароля).
is_overrideНіБулеваUSE WITH CAUTION: це повністю замінить існуючий пароль псевдоніма та базу даних, назавжди видалить наявне сховище IMAP і повністю скине псевдонім бази даних електронної пошти SQLite. Будь ласка, зробіть резервну копію, якщо це можливо, якщо у вас є існуюча поштова скринька, прикріплена до цього псевдоніма.
emailed_instructionsНіРядокАдреса електронної пошти, на яку потрібно надіслати пароль псевдоніма та інструкції з налаштування.

Приклад запиту:

curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id/generate-password \
  -u API_TOKEN:

Перелік псевдонімів доменів

GET /v1/domains/example.com/aliases

Параметр запитіввимагаєтьсяТипОпис
qНіРядок (підтримується RegExp)Шукайте псевдоніми в домені за назвою, міткою або одержувачем
nameНіРядок (підтримується RegExp)Шукайте псевдоніми в домені за іменем
recipientНіРядок (підтримується RegExp)Пошук псевдонімів у домені за одержувачем

Приклад запиту:

curl https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Створіть новий псевдонім домену

POST /v1/domains/example.com/aliases

Параметр тілавимагаєтьсяТипОпис
nameНіРядокПсевдонім (якщо не вказано або порожній, генерується випадковий псевдонім)
recipientsНіРядок або масивСписок одержувачів (повинен бути розділений розривом рядка/пробілом/комою. Рядок або масив дійсних адрес електронної пошти, повних доменних імен ("FQDN"), IP-адрес і/або URL-адрес вебхуку – і якщо не надано або є порожнім Масив, тоді електронна адреса користувача, який надсилає запит API, буде встановлена як одержувач)
descriptionНіРядокОпис псевдоніма
labelsНіРядок або масивСписок міток (повинен бути розділеним рядком / пробілом / комою: String або Array)
has_recipient_verificationНіБулеваВимагати, щоб одержувачі натиснули посилання для підтвердження електронної пошти, щоб електронні листи проходили через нього (за замовчуванням відповідає налаштуванню домену, якщо не встановлено явно в тілі запиту)
is_enabledНіБулеваУвімкнути чи вимкнути цей псевдонім (якщо вимкнено, електронні листи нікуди не спрямовуватимуться, але повертатимуть успішні коди статусу). Якщо передано значення, воно перетворюється на логічне за допомогою логічний)
has_imapНіБулеваУвімкнути чи вимкнути зберігання IMAP для цього псевдоніма (якщо вимкнено, отримані вхідні електронні листи не зберігатимуться в Сховище IMAP. Якщо передано значення, воно перетворюється на логічне за допомогою логічний)
has_pgpНіБулеваУвімкнути чи вимкнути Шифрування OpenPGP для Зашифроване сховище електронної пошти IMAP/POP3 використовуючи псевдонім public_key.
public_keyНіРядокВідкритий ключ OpenPGP у форматі ASCII Armor (натисніть тут, щоб переглянути приклад; напр. GPG ключ для support@forwardemail.net). Це стосується, лише якщо у вас є has_pgp встановлений в true. Дізнайтеся більше про наскрізне шифрування в наших поширених запитаннях.

Приклад запиту:

curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Отримати псевдонім домену

Псевдонім домену можна отримати за допомогою його id або його name значення.

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

Приклад запиту:

curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

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

Приклад запиту:

curl https://api.forwardemail.net/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НіРядок або масивСписок міток (повинен бути розділеним рядком / пробілом / комою: String або Array)
has_recipient_verificationНіБулеваВимагати, щоб одержувачі натиснули посилання для підтвердження електронної пошти, щоб електронні листи проходили через нього (за замовчуванням відповідає налаштуванню домену, якщо не встановлено явно в тілі запиту)
is_enabledНіБулеваУвімкнути чи вимкнути цей псевдонім (якщо вимкнено, електронні листи нікуди не спрямовуватимуться, але повертатимуть успішні коди статусу)
has_imapНіБулеваУвімкнути чи вимкнути зберігання IMAP для цього псевдоніма (якщо вимкнено, отримані вхідні електронні листи не зберігатимуться в Сховище IMAP. Якщо передано значення, воно перетворюється на логічне за допомогою логічний)
has_pgpНіБулеваУвімкнути чи вимкнути Шифрування OpenPGP для Зашифроване сховище електронної пошти IMAP/POP3 використовуючи псевдонім public_key.
public_keyНіРядокВідкритий ключ OpenPGP у форматі ASCII Armor (натисніть тут, щоб переглянути приклад; напр. GPG ключ для support@forwardemail.net). Це стосується, лише якщо у вас є has_pgp встановлений в true. Дізнайтеся більше про наскрізне шифрування в наших поширених запитаннях.

Приклад запиту:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id \
  -u API_TOKEN:

Видалити псевдонім домену

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

Приклад запиту:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN: