Этот API-эндпоинт предназначен для отправки писем через сервер Haskimail. Для пакетной отправки (ссылку нужно будет добавить) предусмотрена отдельная конечная точка, которая позволяет отправлять до 500 сообщений (до 50 МБ, включая вложения) за один вызов.
| Content-Type | обязательный
application/json |
|---|---|
| Accept | обязательный
application/json |
| X-Haskimail-Server-Token | обязательный
Для этого запроса необходимы права на уровне сервера. Этот токен можно найти на вкладке «Токены API» в настройках вашего сервера Haskimail. |
curl "https://api.haskimail.ru/email" \
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Haskimail-Server-Token: server token" \
-d '{
"From": "отправитель@example.com",
"To": "получатель@example.com",
"Subject": "Haskimail тест",
"TextBody": "Привет, дорогой клиент Haskimail.",
"HtmlBody": "<html><body><strong>Привет</strong> дорогой клиент Haskimail. </body></html>"
}' | From | string | обязательный
Адрес электронной почты отправителя. Необходимо наличие зарегистрированной и подтвержденной Подписи отправителя. Чтобы указать имя, используйте формат |
|---|---|---|
| To | string | обязательный
Адрес электронной почты получателя. Несколько адресов разделяются запятой. Не более 50. |
| Cc | string |
Получатель копии (Cc). Несколько адресов разделяются запятой. Не более 50. |
| Bcc | string |
Получатель скрытой копии (Bcc). Несколько адресов разделяются запятой. Не более 50. |
| Subject | string |
Тема письма |
| Tag | string |
Тег, который позволяет категоризировать исходящие письма и получать подробную статистику. Не более 1000 символов. |
| HtmlBody | string | обязательный
Если не указан |
| TextBody | string | обязательный
Если не указан |
| ReplyTo | string |
Адрес для ответа. Позволяет переопределить адрес, указанный по умолчанию в Подписи отправителя. Несколько адресов разделяются запятой. |
| Headers | array |
Список пользовательских заголовков для добавления в письмо. |
| TrackOpens | boolean |
Активировать отслеживание открытий для этого письма. |
| TrackLinks | boolean |
Активировать отслеживание ссылок для этого письма. |
| Metadata | object |
Пользовательские метаданные в формате пар «ключ-значение». |
| Attachments | array |
Список вложений. |
| MessageStream | integer |
Идентификатор (ID) Канала, используемого для отправки. Если не указан, по умолчанию будет использован транзакционный канал "outbound". |
{
"From": "отправитель@example.com",
"To": "получатель@example.com",
"Cc": "copied@example.com",
"Bcc": "blind-copied@example.com",
"Subject": "Test",
"Tag": "Invitation",
"HtmlBody": "<b>Hello</b> <img src=\"cid:image.jpg\"/>",
"TextBody": "Hello",
"ReplyTo": "reply@example.com",
"Headers": [
{
"Name": "CUSTOM-HEADER",
"Value": "value"
}
],
"TrackOpens": true,
"TrackLinks": true,
"Attachments": [
{
"Name": "readme.txt",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "text/plain"
},
{
"Name": "report.pdf",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "application/octet-stream"
},
{
"Name": "image.jpg",
"ContentID": "cid:image.jpg",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "image/jpeg"
}
],
"Metadata": {
"color":"blue",
"client-id":"12345"
},
"MessageStream": "1"
} | To | string |
Email-адрес получателя |
|---|---|---|
| SubmittedAt | string |
Временная метка |
| MessageID | string |
Идентификатор сообщения |
| ErrorCode | integer | |
| Message | string |
Текст ответа |
HTTP/1.1 200 OK
Content-Type: application/json
{
"To": "получатель@example.com",
"SubmittedAt": "2014-02-17T07:25:01.4178645-05:00",
"MessageID": "0a129aee-e1cd-480d-b08d-4f48548ff48d",
"ErrorCode": 0,
"Message": "OK"
} | Content-Type | обязательный
application/json |
|---|---|
| Accept | обязательный
application/json |
| X-Haskimail-Server-Token | обязательный
Для этого запроса необходимы права на уровне сервера. Этот токен можно найти на вкладке «Токены API» в настройках вашего сервера Haskimail. |
curl "https://api.haskimail.ru/email/batch" \
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Haskimail-Server-Token: server token" \
-d '[
{
"From": "отправитель@example.com",
"To": "receiver1@example.com",
"Subject": "Haskimail тест #1",
"TextBody": "Привет, дорогой клиент Haskimail.",
"HtmlBody": "<html><body><strong>Привет</strong> дорогой клиент Haskimail. </body></html>"
},
{
"From": "отправитель@example.com",
"To": "receiver2@example.com",
"Subject": "Haskimail тест #2",
"TextBody": "Привет, дорогой клиент Haskimail.",
"HtmlBody": "<html><body><strong>Привет</strong> дорогой клиент Haskimail. </body></html>"
}
]' | From | string | обязательный
Адрес электронной почты отправителя. Должен иметь зарегистрированную и подтвержденную Подпись отправителя. Чтобы указать имя, используйте формат |
|---|---|---|
| To | string | обязательный
Адрес электронной почты получателя. Несколько адресов указываются через запятую. Максимум 50. |
| Cc | string |
Адрес электронной почты получателя копии (Cc). Несколько адресов указываются через запятую. Максимум 50. |
| Bcc | string |
Адрес электронной почты получателя скрытой копии (Bcc). Несколько адресов указываются через запятую. Максимум 50. |
| Subject | string |
Тема письма. |
| Tag | string |
Тег для категоризации исходящих писем и сбора подробной статистики. Максимальная длина 1000 символов. |
| HtmlBody | string |
HTML-содержимое письма. Используется, если не указан |
| TextBody | string |
Текстовое содержимое письма. Используется, если не указан |
| ReplyTo | string |
Адрес для ответа, переопределяющий стандартный. По умолчанию используется адрес, указанный в подписи отправителя. |
| Headers | array |
Список пользовательских заголовков для добавления в письмо. |
| TrackOpens | boolean |
Активировать отслеживание открытий для этого письма. |
| TrackLinks | boolean |
Активировать отслеживание переходов по ссылкам для этого письма. |
| Metadata | object |
Пользовательские метаданные в формате пар «ключ-значение». |
| Attachments | array |
Список вложений. |
| MessageStream | integer |
ID Канала, который используется для отправки. Если не указан, по умолчанию используется транзакционный канал «outbound». |
[
{
"From": "отправитель@example.com",
"To": "receiver1@example.com",
"Cc": "copied@example.com",
"Bcc": "blank-copied@example.com",
"Subject": "Test",
"Tag": "Invitation",
"HtmlBody": "<b>Hello</b> <img src=\"cid:image.jpg\"/>",
"TextBody": "Hello",
"ReplyTo": "reply@example.com",
"Headers": [
{
"Name": "CUSTOM-HEADER",
"Value": "value"
}
],
"TrackOpens": true,
"TrackLinks": true,
"Attachments": [
{
"Name": "readme.txt",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "text/plain"
},
{
"Name": "report.pdf",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "application/octet-stream"
},
{
"Name": "image.jpg",
"ContentID": "cid:image.jpg",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "image/jpeg"
}
],
"Metadata": {
"color":"green",
"client-id":"12345"
},
"MessageStream": "1"
},
{
"From": "отправитель@example.com",
"To": "receiver2@example.com",
"Cc": "copied@example.com",
"Bcc": "blank-copied@example.com",
"Subject": "Test",
"Tag": "Invitation",
"HtmlBody": "<b>Hello</b> <img src=\"cid:image.jpg\"/>",
"TextBody": "Hello",
"ReplyTo": "reply@example.com",
"Headers": [
{
"Name": "CUSTOM-HEADER",
"Value": "value"
}
],
"TrackOpens": true,
"TrackLinks": true,
"Attachments": [
{
"Name": "readme.txt",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "text/plain"
},
{
"Name": "report.pdf",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "application/octet-stream"
},
{
"Name": "image.jpg",
"ContentID": "cid:image.jpg",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "image/jpeg"
}
],
"Metadata": {
"color":"blue",
"client-id":"54321"
},
"MessageStream": "1"
}
] Обратите внимание, что конечная точка /batch всегда возвращает HTTP-статус 200, даже если при валидации отдельных сообщений возникли ошибки. Пользователям этого эндпоинта следует проверять код успеха и ошибки для каждого сообщения в ответе от нашего API (ответы в массиве расположены в том же порядке, что и отправленные сообщения).
| To | string |
Адрес электронной почты получателя. |
|---|---|---|
| SubmittedAt | string |
Временная метка отправки. |
| MessageID | string |
ID сообщения. |
| ErrorCode | integer | |
| Message | string |
Сообщение ответа |
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"ErrorCode": 0,
"Message": "OK",
"MessageID": "b7bc2f4a-e38e-4336-af7d-e6c392c2f817",
"SubmittedAt": "2010-11-26T12:01:05.1794748-05:00",
"To": "receiver1@example.com"
},
{
"ErrorCode": 406,
"Message": "Вы попытались отправить письмо получателю, который был помечен как неактивный. Найдены неактивные адреса: example@example.com. К неактивным относятся получатели, по которым произошел постоянный возврат (hard bounce), поступила жалоба на спам или которые были заблокированы вручную."
}
]