6. Відправка Email через API

Метод призначений для надсилання листа через 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 Значення селектора DKIM-ключа, який необхідно використовувати для підпису. Передача непорожнього значення цього поля призводить до того, що система вважає властивість SendEmail.EmailSettings.UseDkim увімкненою, навіть якщо вона передана як false. Якщо відповідного ключа з указаним селектором не знайдено, система спробує знайти та використати інший відповідний DKIM-ключ.
SendEmail.Email.To array Масив об’єктів із ключами Email та Name. Кожен об’єкт відповідає за окремого отримувача листа. Потрібен щонайменше один отримувач.
SendEmail.Email.Cc
SendEmail.Email.Bcc
SendEmail.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.*.Email
SendEmail.Email.Bcc.*.Email
SendEmail.Email.ReplyTo.*.Email
string Email-адреса. Обов’язкове поле для кожного переданого елемента масивів Cc, Bcc, ReplyTo. Самі масиви не є обов’язковими.
SendEmail.Email.Cc.*.Name
SendEmail.Email.Bcc.*.Name
SendEmail.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, є обов’язковими. 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 або для звернення до служби технічної підтримки.