API электронной почты

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

языкБиблиотека
Рубинфарадей
питонЗапросы
ЯваОкHttp
PHPпропивать
JavaScriptSuperAgent (мы сопровождающие)
Node.jsSuperAgent (мы сопровождающие)
Идтинетто / 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 файл электронной таблицы) после завершения.

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

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

GET /v1/logs/download

Параметр QuerystringнеобходимыеТипОписание
domainнетСтрока (полное доменное имя)Фильтрация журналов по полному домену («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 с вашего домена.

Список адресов электронной почты

Обратите внимание, что эта конечная точка не возвращает уже созданный адрес электронной почты. message, headers, accepted, ни rejectedErrors характеристики.

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

Эта конечная точка вернет не более 50 результаты за раз. Если вы хотите запросить несколько страниц, добавьте ?page=NUMBER где NUMBER является целым числом, например ?page=1.

GET /v1/emails

Параметр QuerystringнеобходимыеТипОписание
qнетString (поддерживается RegExp)Поиск писем по метаданным
domainнетString (поддерживается 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нетстрокаАдрес электронной почты для заголовка «Reply-To».
inReplyToнетстрокаMessage-ID, на который отвечает сообщение.
referencesнетСтрока или МассивСписок, разделенный пробелами, или массив идентификаторов сообщений.
attachDataUrlsнетлогическийЕсли true затем преобразует data: изображения в HTML-содержимом сообщения во встроенные вложения.
watchHtmlнетстрокаHTML-версия сообщения для Apple Watch (согласно документам Nodemailer, последние часы не требуют его установки).
ampнетстрокаHTML-версия сообщения для AMP4EMAIL (см. Пример 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нетСтрока или датаНеобязательное значение даты, которое будет использоваться, если заголовок даты отсутствует после синтаксического анализа, в противном случае будет использоваться текущая строка 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

Параметр QuerystringнеобходимыеТипОписание
qнетString (поддерживается RegExp)Поиск доменов по имени
nameнетString (поддерживается 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нетлогическийВключить ли защиту содержимого для взрослых с помощью Spam Scanner в этом домене
has_phishing_protectionнетлогическийВключить ли защиту от фишинга Spam Scanner в этом домене
has_executable_protectionнетлогическийВключить ли защиту исполняемого файла Spam Scanner в этом домене
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нетлогическийВключить ли защиту содержимого для взрослых с помощью Spam Scanner в этом домене
has_phishing_protectionнетлогическийВключить ли защиту от фишинга Spam Scanner в этом домене
has_executable_protectionнетлогическийВключить ли защиту исполняемого файла Spam Scanner в этом домене
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:

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

GET /v1/domains/example.com/aliases

Параметр QuerystringнеобходимыеТипОписание
qнетString (поддерживается RegExp)Поиск псевдонимов в домене по имени, ярлыку или получателю
nameнетString (поддерживается RegExp)Искать алиасы в домене по имени
recipientнетString (поддерживается 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: