Обзор

Интеграции

Руководство пользователя

Справочник API

Вебхуки

API Шаблонов

Позволяет управлять шаблонами для конкретного сервера.

Пожалуйста, обратите внимание, что на одном сервере может быть до 100 шаблонов. Запросы, превышающие этот лимит, не будут обработаны. Свяжитесь со службой поддержки, если вам требуется больше шаблонов на одном сервере.

Отправка письма с шаблоном #

post

/email/withTemplate/

Заголовки запроса

Accept обязательный

application/json

Content-Type обязательный

application/json

X-Haskimail-Server-Token обязательный

Для этого запроса требуются права доступа на уровне сервера. Этот токен можно найти в настройках вашего сервера Haskimail на вкладке «Токены API».

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

curl "https://api.haskimail.ru/email/withTemplate" \
  -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Server-Token: server token" \
  -d '{
          "From": "sender@example.com",
          "To": "receiver@example.com",
          "TemplateId": 1234,
          "TemplateModel": {
              "user_name": "Иван Дурак"
          }
      }'

Формат тела запроса

TemplateId integer обязательный

ID шаблона для использования при отправке этого письма. Обязательно, если не указан TemplateAlias.

TemplateAlias string обязательный

Псевдоним шаблона для использования при отправке этого письма. Обязательно, если не указан TemplateId.

TemplateModel object обязательный

Модель данных, которая будет применена к указанному шаблону для генерации HtmlBody, TextBody, и Subject.

From string обязательный

Email-адрес отправителя. Должен иметь зарегистрированную и подтвержденную подпись отправителя. Чтобы указать имя, используйте формат "Имя Фамилия <sender@domain.com>". Знаки препинания в имени необходимо экранировать.

To string обязательный

Email-адрес получателя. Несколько адресов разделяются запятой. Максимум 50.

Cc string

Email-адрес получателя для копии (Cc). Несколько адресов разделяются запятой. Максимум 50.

Bcc string

Email-адрес получателя для скрытой копии (Bcc). Несколько адресов разделяются запятой. Максимум 50.

Tag string

Тег, позволяющий категоризировать исходящие письма для получения детальной статистики. Максимум 1000 символов.

ReplyTo string

Email-адрес для ответа, переопределяющий стандартный. По умолчанию используется адрес, указанный в подписи отправителя.

Headers array

Список пользовательских заголовков для включения.

TrackOpens boolean

Активировать отслеживание открытий для этого письма.

TrackLinks string

Активировать отслеживание кликов по ссылкам в HTML или текстовой версии письма. Возможные значения: None HtmlAndText HtmlOnly TextOnly

Attachments array

Список вложений.

Metadata object

Пользовательские метаданные в формате ключ/значение.

MessageStream string

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

Пример формата тела запроса

{
  "TemplateId": 1234,
  "TemplateModel": {
    "user_name": "John Smith",
    "company": {
      "name": "ACME"
    }
  },
  
  "From": "sender@example.com",
  "To": "receiver@example.com",
  "Cc": "copied@example.com",
  "Bcc": "blank-copied@example.com",
  "Tag": "Invitation",
  "ReplyTo": "reply@example.com",
  "Headers": [
    {
      "Name": "CUSTOM-HEADER",
      "Value": "value"
    }
  ],
  "TrackOpens": true,
  "TrackLinks": "None",
  "Attachments": [
    {
      "Name": "readme.txt",
      "Content": "dGVzdCBjb250ZW50",
      "ContentType": "text/plain"
    },
    {
      "Name": "report.pdf",
      "Content": "dGVzdCBjb250ZW50",
      "ContentType": "application/octet-stream"
    }
  ],
  "Metadata": {
      "color":"blue",
      "client-id":"12345"
   },
   "MessageStream": "outbound"
}

Ответ

To string

Email-адрес получателя.

SubmittedAt string

Временная метка отправки.

MessageID string

ID сообщения.

ErrorCode integer

Коды ошибок API.

Message string

Сообщение ответа.

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json

{
  "To": "receiver@example.com",
  "SubmittedAt": "2014-02-17T07:25:01.4178645-05:00",
  "MessageID": "0a129aee-e1cd-480d-b08d-4f48548ff48d",
  "ErrorCode": 0,
  "Message": "OK"
}

Перенос шаблонов на другой сервер #

put

/templates/push

Переносит все шаблоны с изменениями на другой сервер. Если шаблон уже существует на целевом сервере, он будет обновлен. Если шаблон не существует на целевом сервере, он будет создан, и ему будет присвоен псевдоним шаблона с исходного сервера.

Заголовки запроса

Accept обязательный

application/json

Content-Type обязательный

application/json

X-Haskimail-Account-Token обязательный

Для этого запроса требуются права доступа на уровне аккаунта. Этот токен, доступный только владельцу аккаунта, можно найти на вкладке «Токены API» вашего аккаунта Haskimail.

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

curl "https://api.haskimail.ru/templates/push" \
  -X PUT \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Account-Token: account token" \
  -d '{
          "SourceServerID": 997287,
          "DestinationServerID": 997285,
          "PerformChanges": true
      }'

Формат тела запроса

SourceServerID string обязательный

ID исходного сервера, содержащего шаблоны, которые будут перенесены.

DestinationServerID string обязательный

ID целевого сервера, на который будут перенесены шаблоны.

PerformChanges boolean обязательный

Указывает, следует ли переносить шаблоны на целевой сервер. Этот параметр можно установить в false, чтобы выполнить «тестовый запуск» операции и увидеть, какие шаблоны будут созданы или обновлены в результате.

Пример формата тела запроса

{
  "SourceServerID": 997287 ,
  "DestinationServerID":997285 ,
  "PerformChanges": true
}

Ответ

TotalCount integer

Указывает общее количество изменений в шаблонах.

Templates object

Список затронутых шаблонов на целевом сервере.

Name string

Название шаблона.

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json

{
    "TotalCount": 1,
    "Templates": [
        {
            
            "TemplateId": 7270,
            "Name": "Comment notification"
        }
    ]
}

Получение шаблона #

get

/templates/{templateIdOrAlias}

Заголовки запроса

Accept обязательный

application/json

X-Haskimail-Server-Token обязательный

Для этого запроса требуются права доступа на уровне сервера. Этот токен можно найти в настройках вашего сервера Haskimail на вкладке «Токены API».

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

curl "https://api.haskimail.ru/templates/{templateIdOrAlias}" \
  -X GET \
  -H "Accept: application/json" \
  -H "X-Haskimail-Server-Token: server token"

Ответ

TemplateId integer

ID шаблона.

Name string

Название шаблона.

Subject string

Содержимое для поля Subject при отправке письма с этим шаблоном.

HtmlBody string

Содержимое для поля HtmlBody при отправке письма с этим шаблоном.

TextBody string

Содержимое для поля TextBody при отправке письма с этим шаблоном.

AssociatedServerId integer

ID сервера, с которым связан этот шаблон.

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json

{
  "Name": "Onboarding Email",
  "TemplateId": 1234,
  "Subject": "Hi there, {{Name}}",
  "HtmlBody": "Hello dear Haskimail user. {{Name}}",
  "TextBody": "{{Name}} is a {{Occupation}}",
  "AssociatedServerId": 1,
},
{
  "Name": "Receipt Email",
  "TemplateId": 1235,
  "Subject": "Receipt for {{ product_name }}",
  "HtmlBody": "<body><span class="preheader">This is a receipt for {{ product_name }}...",
  "TextBody": "This is a receipt for {{ product_name }}",
  "AssociatedServerId": 1
}

Создание шаблона #

post

/templates

Заголовки запроса

Accept обязательный

application/json

Content-Type обязательный

application/json

X-Haskimail-Server-Token обязательный

Для этого запроса требуются права доступа на уровне сервера. Этот токен можно найти в настройках вашего сервера Haskimail на вкладке «Токены API».

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

curl "https://api.haskimail.ru/templates" \
  -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Server-Token: server token" \
  -d '{
          "Name": "Welcome Email",
          "HtmlBody": "<html><body>Hello{{name}}<body><html>",
          "TextBody": "Hello, {{name}}",
          "Subject": "Hello, from {{company.name}}",
          "AssociatedServerId": "1"
      }'

Формат тела запроса

Name string обязательный

Название шаблона.

HtmlBody string обязательный

HTML-содержимое, которое будет использоваться, когда этот шаблон применяется для отправки письма. Обязательно, если не указан TextBody. Подробнее о синтаксисе этого поля см. в нашей документации по языку шаблонов.

Для шаблона-макета (Layout) обязательно наличие заполнителя контента ({{{@content}}}), который может быть размещен в HtmlBody только один раз.

TextBody string обязательный

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

Для шаблона-макета (Layout) обязательно наличие заполнителя контента ({{{@content}}}), который может быть размещен в TextBody только один раз.

Subject string обязательный

Содержимое для поля Subject при отправке письма с этим шаблоном.Поле Subject обязательно только для стандартных шаблонов. Подробнее о синтаксисе этого поля см. в нашей документации по языку шаблонов.

Указывать тему для шаблонов-макетов запрещено, это приведет к ошибке API.

AssociatedServerId integer обязательный

ID сервера, к которому будет привязан шаблон.

Пример формата тела запроса

{
  "Name": "Onboarding Email",
  "Subject": "Hello from {{company.name}}!",
  "TextBody": "Hello, {{name}}!",
  "HtmlBody": "<html><body>Hello, {{name}}!</body></html>"
}

Ответ

TemplateId integer

ID шаблона.

Name string

Название шаблона.

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json

{
  "TemplateId": 1234,
  "Name": "Onboarding Email"
}

Редактирование шаблона #

put

/templates/{templateIdOrAlias}

Заголовки запроса

Accept обязательный

application/json

Content-Type обязательный

application/json

X-Haskimail-Server-Token обязательный

Для этого запроса требуются права доступа на уровне сервера. Этот токен можно найти в настройках вашего сервера Haskimail на вкладке «Токены API».

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

curl "https://api.haskimail.ru/templates/{templateIdOrAlias}" \
  -X PUT \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Server-Token: server token" \
  -d '{
          "Name": "Onboarding Email",
          "Subject": "Hello from {{company.name}}!",
          "TextBody": "Hello, {{name}}!",
          "HtmlBody": "<html><body>Hello, {{name}}!</body></html>"
      }'

Формат тела запроса

Name string обязательный

Название шаблона.

Subject string обязательный

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

HtmlBody string обязательный

Содержимое для поля HtmlBody при отправке письма с этим шаблоном. Обязательно, если не указан TextBody. Подробнее о синтаксисе этого поля см. в нашей документации по языку шаблонов.

TextBody string обязательный

Содержимое для поля TextBody при отправке письма с этим шаблоном. Обязательно, если не указан HtmlBody. Подробнее о синтаксисе этого поля см. в нашей документации по языку шаблонов.

Пример формата тела запроса

{
  "Name": "Onboarding Email",
  "Subject": "Hello from {{company.name}}!",
  "TextBody": "Hello, {{name}}!",
  "HtmlBody": "<html><body>Hello, {{name}}!</body></html>"
}

Ответ

TemplateId integer

ID шаблона.

Name string

Название шаблона.

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json

{
  "TemplateId": 1234,
  "Name": "Onboarding Email"
}

Список шаблонов #

get

/templates

Заголовки запроса

Accept обязательный

application/json

X-Haskimail-Server-Token обязательный

Для этого запроса требуются права доступа на уровне сервера. Этот токен можно найти в настройках вашего сервера Haskimail на вкладке «Токены API».

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

curl "https://api.haskimail.ru/templates?count=100&offset=0&LayoutTemplate=my-layout" \
  -X GET \
  -H "Accept: application/json" \
  -H "X-Haskimail-Server-Token: server token"

Querystring parameters

Count обязательный

Количество возвращаемых шаблонов.

Offset обязательный

Количество шаблонов, которое нужно «пропустить» перед возвратом результатов.

Ответ

TotalCount integer

Общее количество шаблонов, связанных с текущим сервером.

Templates array

Список шаблонов, связанных с этим сервером.

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json

{
  "TotalCount": 2,
  "Templates": [
    {
      "TemplateId": 1234,
      "Name": "Password Recovery Email"
    },
    {
      "Active": true,
      "TemplateId": 5678,
      "Name": "Default Layout"
    }]
}

Удаление шаблона #

delete

/templates/{templateIdOrAlias}

Заголовки запроса

Accept обязательный

application/json

X-Haskimail-Server-Token обязательный

Для этого запроса требуются права доступа на уровне сервера. Этот токен можно найти в настройках вашего сервера Haskimail на вкладке «Токены API».

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

curl "https://api.haskimail.ru/templates/{templateIdOrAlias}" \
  -X DELETE \
  -H "Accept: application/json" \
  -H "X-Haskimail-Server-Token: server token"

Ответ

ErrorCode integer

Коды ошибок API.

Message string

Связанное сообщение об успехе или ошибке.

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json

{
  "ErrorCode": 0,
  "Message": "Template 1234 removed."
}