6. Wysyłanie Email przez API

Metoda przeznaczona jest do wysyłania wiadomości przez API w przypadkach, gdy funkcjonalność Kampanii wysyłek przez UI Serwisu z pewnych powodów nie jest odpowiednia. Dane przekazywane są w formacie application/json.

Żądanie HTTP
  • URL: https://sender-solutions.com/api/emails/send-instant-email/
  • Metoda HTTP: POST
  • Content-Type: application/json
Treść żądania (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"
                }
            ]
        }
    }
}
Przykład żądania z użyciem 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"
                }
            ]
        }
    }
}'
Opis pól

Jeśli w polach SendEmail.TrackingSettings.* lub SendEmail.EmailSettings.* przekazać wartość null (albo w ogóle nie przekazywać pola), system samodzielnie podejmie decyzję dotyczącą przetwarzania wiadomości. Zaleca się zawsze wskazywać wszystkie ważne dla Ciebie pola ustawień, aby zachowanie systemu było przewidywalne.

Pole Typ Obowiązkowe Opis
SendEmail.TrackingSettings.TrackLinks boolean | null Ustawienie odpowiada za śledzenie kliknięć w linki. Jeśli włączone, linki w części HTML wiadomości zostaną zmienione w celu włączenia śledzenia kliknięć.
SendEmail.TrackingSettings.TrackPlainTextLinks boolean | null Ustawienie odpowiada za śledzenie kliknięć w linki. Jeśli włączone, linki w części plain/text wiadomości zostaną zmienione w celu włączenia śledzenia kliknięć.
SendEmail.TrackingSettings.TrackOpen boolean | null Ustawienie odpowiada za śledzenie otwarcia wiadomości.
SendEmail.TrackingSettings.TrackUnsubscribe boolean | null Ustawienie odpowiada za śledzenie rezygnacji z wysyłki.
SendEmail.EmailSettings.InlineImages boolean | null Jeśli opcja jest włączona, część HTML wiadomości zostanie zoptymalizowana: zewnętrzne obrazy zostaną dodane jako załączniki inline (nie można ich pobrać). Wygląd wiadomości się nie zmieni, ale klienty pocztowe będą bardziej ufać takiej wiadomości.
SendEmail.EmailSettings.SendAt int | null Minimalna data wysłania wiadomości (unix timestamp). Używana do odroczonego wysyłania.
SendEmail.EmailSettings.UseDkim boolean | null Czy należy używać podpisu DKIM. System samodzielnie znajdzie odpowiedni klucz DKIM dla tej wiadomości.
SendEmail.EmailSettings.UseDkimSelector string | null Wartość selektora klucza DKIM, którego należy używać do podpisu. Przekazanie niepustej wartości tego pola powoduje, że system uznaje właściwość SendEmail.EmailSettings.UseDkim za włączoną, nawet jeśli została przekazana jako false. Jeśli odpowiedni klucz o wskazanym selektorze nie zostanie znaleziony, system spróbuje znaleźć i wykorzystać inny odpowiedni klucz DKIM.
SendEmail.Email.To array Tablica obiektów z kluczami Email i Name. Każdy obiekt odpowiada za osobnego odbiorcę wiadomości. Potrzebny jest co najmniej jeden odbiorca.
SendEmail.Email.Cc
SendEmail.Email.Bcc
SendEmail.Email.ReplyTo
array Tablica obiektów z kluczami Email i Name. Każdy obiekt odpowiada za osobny adres email i dodaje go do odpowiedniego nagłówka wiadomości (Cc, Bcc, ReplyTo).
SendEmail.Email.To.*.Email string Adres email odbiorcy. Pole obowiązkowe dla każdego obiektu w SendEmail.Email.To.*.
SendEmail.Email.To.*.Name string Imię odbiorcy. Zalecane jest podawanie, jeśli ta wartość jest Ci znana.
SendEmail.Email.Cc.*.Email
SendEmail.Email.Bcc.*.Email
SendEmail.Email.ReplyTo.*.Email
string Adres email. Pole obowiązkowe dla każdego przekazanego elementu tablic Cc, Bcc, ReplyTo. Same tablice nie są obowiązkowe.
SendEmail.Email.Cc.*.Name
SendEmail.Email.Bcc.*.Name
SendEmail.Email.ReplyTo.*.Name
string Imię odbiorcy. Zalecane jest podawanie, jeśli ta wartość jest Ci znana.
SendEmail.Email.From.Email string Adres email nadawcy. Na jego podstawie określana jest domena wysyłki. Domena musi być dodana do projektu w Panelu osobistym i potwierdzona.
SendEmail.Email.From.Name string Nazwa nadawcy. Zaleca się podawanie, aby subskrybentom było jasne, od kogo pochodzi wiadomość.
SendEmail.Email.Headers array Tablica obiektów z tekstowymi właściwościami Name i Value. Te nagłówki zostaną dodane do wiadomości. Niektóre nagłówki są chronione i nie mogą być dodane ani nadpisane przez API. Przekazuj tylko naprawdę niezbędne niestandardowe nagłówki.
SendEmail.Email.Html string Kod HTML wiadomości. Może być pusty lub nieobecny, jeśli przekazano pole SendEmail.Email.PlainText.
SendEmail.Email.PlainText string Wersja tekstowa wiadomości. Może być pusta lub nieobecna, jeśli przekazano pole SendEmail.Email.Html.
SendEmail.Email.Subject string Temat wiadomości.
SendEmail.Email.Attachments array Tablica obiektów, z których każdy odpowiada za załącznik. Załączniki nie są obowiązkowe, ale jeśli zostały przekazane — wszystkie pola, oprócz ContentId, są obowiązkowe. ContentId jest potrzebny tylko dla załączników z Disposition = inline.
SendEmail.Email.Attachments.*.ContentBase64 string Zawartość załącznika w formacie base64.
SendEmail.Email.Attachments.*.ContentId string ContentId (identyfikator) załącznika, musi być unikalny w obrębie jednej wiadomości. Potrzebny dla załączników z Disposition = inline.
SendEmail.Email.Attachments.*.Disposition string Określa typ załącznika. Możliwe wartości: attachment — załącznik, który można pobrać, oraz inline — załącznik do użycia wewnątrz wiadomości.
SendEmail.Email.Attachments.*.Filename string Nazwa załącznika.
SendEmail.Email.Attachments.*.Type string Typ MIME załącznika, na przykład application/pdf.
Przykład pomyślnej odpowiedzi
{
    "success": true,
    "SendEmail": {
        "SendMessageRequestId": 49,
        "MessageId": "1vb1rzxzem2naah3dxp3t9k6zoj9d4hc@sender-solutions.com"
    }
}

W treści odpowiedzi pole SendEmail.SendMessageRequestId odpowiada za unikalny identyfikator zadania wysłania jednej wiadomości. Pole SendEmail.MessageId odpowiada za unikalną wartość nagłówka Message-ID w wiadomości.
Te dane mogą być przydatne do wykonania innych żądań do naszego API lub do kontaktu z działem wsparcia technicznego.