Метод предназначен для отправки письма через API, когда функционал Кампаний рассылки через UI Сервиса по какой-то причине не подходит. Данные передаются в формате application/json.
HTTP запрос
- URL:
https://sender-solutions.com/api/emails/send-instant-email/ - HTTP Метод: POST
- Content-Type:
application/json
Тело запроса (JSON)
{
"SendEmail": {
"TrackingSettings": {
"TrackLinks": true,
"TrackPlainTextLinks": true,
"TrackOpen": true,
"TrackUnsubscribe": true
},
"EmailSettings": {
"InlineImages": true,
"SendAt": 1769356236,
"UseDkim": true,
"UseDkimSelector": null
},
"Email": {
"To": [
{
"Email": "cat@example.com",
"Name": "Mr Cat"
}
],
"Cc": [],
"Bcc": [],
"ReplyTo": [],
"From": {
"Email": "info@example.org",
"Name": "MyCompany Title"
},
"Headers": [
{
"Name": "X-Request-Id",
"Value": "X-abc-123"
}
],
"Html": "<!doctype html>\r <html lang=\"en\">\r <head>\r <meta charset=\"UTF-8\">\r <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r <title>Test Email<\/title>\r <\/head>\r <body>\r <h1>Hello<\/h1>\r <p>Test email content<\/p>\r <\/body>\r <\/html>",
"PlainText": "Hello\r\nIt's test email content",
"Subject": "Test Email via API",
"Attachments": [
{
"ContentBase64": "VGVzdCBGaWxlIGNvbnRlbnQ=",
"ContentId": "ec91464b58363fac4924587afecf53d0",
"Disposition": "attachment",
"Filename": "Attachment12.txt",
"Type": "text/plain"
}
]
}
}
} Пример запроса с использованием cURL
curl --location 'https://sender-solutions.com/api/emails/send-instant-email/' \
--header 'Content-Type: application/json' \
--header 'Authorization: {{api-token}}' \
--data-raw '{
"SendEmail": {
"TrackingSettings": {
"TrackLinks": true,
"TrackPlainTextLinks": true,
"TrackOpen": true,
"TrackUnsubscribe": true
},
"EmailSettings": {
"InlineImages": true,
"SendAt": 1769356236,
"UseDkim": true,
"UseDkimSelector": null
},
"Email": {
"To": [
{
"Email": "cat@example.com",
"Name": "Mr Cat"
}
],
"Cc": [],
"Bcc": [],
"ReplyTo": [],
"From": {
"Email": "info@example.org",
"Name": "MyCompany Title"
},
"Headers": [
{
"Name": "X-Request-Id",
"Value": "X-abc-123"
}
],
"Html": "<!doctype html>\r <html lang=\"en\">\r <head>\r <meta charset=\"UTF-8\">\r <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r <title>Test Email<\/title>\r <\/head>\r <body>\r <h1>Hello<\/h1>\r <p>Test email content<\/p>\r <\/body>\r <\/html>",
"PlainText": "Hello\r\nIt'\''s test email content",
"Subject": "Test Email via API",
"Attachments": [
{
"ContentBase64": "VGVzdCBGaWxlIGNvbnRlbnQ=",
"ContentId": "ec91464b58363fac4924587afecf53d0",
"Disposition": "attachment",
"Filename": "Attachment12.txt",
"Type": "text/plain"
}
]
}
}
}'
Описание полей
Если в полях SendEmail.TrackingSettings.* или SendEmail.EmailSettings.* отправить значение null (или не отправить поле вообще), то система самостоятельно примет решение, как обрабатывать письмо. Рекомендуется всегда указывать все важные для вас поля настроек, чтобы поведение системы было предсказуемым
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
SendEmail.TrackingSettings.TrackLinks | boolean | null | Настройка отвечает за отслеживание переходов по ссылкам. Если включена, ссылки в html части письма будут изменены, чтобы включить отслеживание переходов. | |
SendEmail.TrackingSettings.TrackPlainTextLinks | boolean | null | Настройка отвечает за отслеживание переходов по ссылкам. Если включена, ссылки в plain/text части письма будут изменены, чтобы включить отслеживание переходов. | |
SendEmail.TrackingSettings.TrackOpen | boolean | null | Настройка отвечает за отслеживание открытия письма | |
SendEmail.TrackingSettings.TrackUnsubscribe | boolean | null | Настройка отвечает за отслеживание отписок от рассылки | |
SendEmail.EmailSettings.InlineImages | boolean | null | При включённой опции html часть письма будет оптимизирована: внешние изображения будут добавлены как inline вложения (их нельзя скачать). Внешне письмо не изменится, но у почтовых клиентов будет больше доверия к такому письму | |
SendEmail.EmailSettings.SendAt | int | null | Минимальная дата отправки письма (unix timestamp). Используется для отложенной отправки | |
SendEmail.EmailSettings.UseDkim | boolean | null | Нужно ли использовать DKIM подпись. Система самостоятельно найдёт подходящий под это письмо DKIM ключ | |
SendEmail.EmailSettings.UseDkimSelector | string | null | Значение селектора (selector) DKIM ключа, который необходимо использовать для подписи. Указание непустого значения для этого свойства приводит к тому, что система считает свойство SendEmail.EmailSettings.UseDkim также включённым, даже если оно передано как false Если подходящего ключа под это письмо с указанным селектором не найдено, то система попробует найти и использовать другой подходящий под это письмо DKIM ключ | |
SendEmail.Email.To | array | Массив объектов с ключами Email и Name. Каждый объект этого массива отвечает за отдельного получателя письма. Как минимум один получатель обязателен. | |
SendEmail.Email.CcSendEmail.Email.BccSendEmail.Email.ReplyTo | array | Массив объектов с ключами Email и Name. Каждый объект этого массива отвечает за отдельный email адрес и добавляет адрес в соответствующий заголовок письма (в Cc, Bcc, ReplyTo) | |
SendEmail.Email.To.*.Email | string | Email адрес получателя. Поле обязательно для каждого конкретного объекта в SendEmail.Email.To.* | |
SendEmail.Email.To.*.Name | string | Имя получателя. Поле желательно указывать, если у вас есть это значение | |
SendEmail.Email.Cc.*.EmailSendEmail.Email.Bcc.*.EmailSendEmail.Email.ReplyTo.*.Email | string | Email адрес. Это обязательное поле для каждого переданного элемента массивов Cc, Bcc, ReplyTo. Но сами эти элементы в массивах не обязательны. То есть вы можете не передавать адрес целиком, но если передаёте, то Email обязательно нужно указать | |
SendEmail.Email.Cc.*.NameSendEmail.Email.Bcc.*.NameSendEmail.Email.ReplyTo.*.Name | string | Имя получателя. Поле желательно указывать, если у вас есть это значение | |
SendEmail.Email.From.Email | string | Email адрес отправителя. На основе него будет определён домен, от имени которого отправка. Данный домен должен быть добавлен в проект в Личном Кабинете, права на него должны быть подтверждены. | |
SendEmail.Email.From.Name | string | Имя отправителя. Рекомендуется указывать это поле, чтобы вашим подписчикам было проще понять от кого пришло письмо | |
SendEmail.Email.Headers | array | Массив объектов, каждый из которых содержит строковые свойства Name и Value. Эти заголовки будут добавлены в письмо. Некоторые заголовки являются защищёнными, и их не получится добавить / переопределить через API запрос. Передавайте только действительно нужные вам нестандартные заголовки | |
SendEmail.Email.Html | string | HTML код письма. Может быть пустым или отсутствовать, если передано поле SendEmail.Email.PlainText передано | |
SendEmail.Email.PlainText | string | Текстовая версия письма. Может быть пустым или отсутствовать, если передано поле SendEmail.Email.Html передано | |
SendEmail.Email.Subject | string | Тема письма | |
SendEmail.Email.Attachments | array | Массив объектов, каждый из которых отвечает за вложение. Вложения не обязательны. Но если переданы, то требуются все поля, кроме ContentId - он требуется только для вложений с Disposition = inline. | |
SendEmail.Email.Attachments.*.ContentBase64 | string | Контент (содержимое) вложения в base64 | |
SendEmail.Email.Attachments.*.ContentId | string | ContentId (идентификатор) вложения, должен быть уникальным в рамках одного письма. Требуется для вложений с Disposition = inline | |
SendEmail.Email.Attachments.*.Disposition | string | Отвечает за тип вложения. Возможные значения: attachment - вложение, которое можно скачать, и inline - вложение для использования внутри письма | |
SendEmail.Email.Attachments.*.Filename | string | Имя вложения | |
SendEmail.Email.Attachments.*.Type | string | Mime тип вложения, например, application/pdf |
Пример успешного ответа
{
"success": true,
"SendEmail": {
"SendMessageRequestId": 49,
"MessageId": "1vb1rzxzem2naah3dxp3t9k6zoj9d4hc@sender-solutions.com"
}
} В теле ответа поле SendEmail.SendMessageRequestId отвечает за уникальный номер задачи на отправку одного письма. А поле SendEmail.MessageId отвечает за уникальное значение для заголовка Message-ID в письме.
Эти данные могут пригодиться для выполнения других запросов к нашему API или для обращений к технической поддержке.