6. Invio di Email tramite l'API

Il metodo è destinato all'invio di un'email tramite l'API nei casi in cui la funzionalità delle Campagne di invii tramite l'UI del Servizio, per determinati motivi, non è adatta. I dati vengono trasmessi in formato application/json.

Richiesta HTTP
  • URL: https://sender-solutions.com/api/emails/send-instant-email/
  • Metodo HTTP: POST
  • Content-Type: application/json
Corpo della richiesta (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"
                }
            ]
        }
    }
}
Esempio di richiesta usando 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"
                }
            ]
        }
    }
}'
Descrizione dei campi

Se nei campi SendEmail.TrackingSettings.* o SendEmail.EmailSettings.* si trasmette il valore null (o non si trasmette affatto il campo), il sistema prenderà autonomamente la decisione sull'elaborazione dell'email. Si raccomanda di indicare sempre tutti i campi di impostazione importanti per te, affinché il comportamento del sistema sia prevedibile.

Campo Tipo Obbligatorio Descrizione
SendEmail.TrackingSettings.TrackLinks boolean | null L'impostazione è responsabile del tracciamento dei clic sui link. Se attivata, i link nella parte HTML dell'email verranno modificati per attivare il tracciamento dei clic.
SendEmail.TrackingSettings.TrackPlainTextLinks boolean | null L'impostazione è responsabile del tracciamento dei clic sui link. Se attivata, i link nella parte plain/text dell'email verranno modificati per attivare il tracciamento dei clic.
SendEmail.TrackingSettings.TrackOpen boolean | null L'impostazione è responsabile del tracciamento dell'apertura dell'email.
SendEmail.TrackingSettings.TrackUnsubscribe boolean | null L'impostazione è responsabile del tracciamento delle disiscrizioni dall'invio.
SendEmail.EmailSettings.InlineImages boolean | null Se questa opzione è attivata, la parte HTML dell'email verrà ottimizzata: le immagini esterne verranno aggiunte come allegati inline (non è possibile scaricarle). L'aspetto dell'email non cambierà, ma i client di posta si fideranno di più di tale email.
SendEmail.EmailSettings.SendAt int | null Data minima di invio dell'email (unix timestamp). Si usa per l'invio differito.
SendEmail.EmailSettings.UseDkim boolean | null Se è necessario usare la firma DKIM. Il sistema troverà autonomamente la chiave DKIM adatta per questa email.
SendEmail.EmailSettings.UseDkimSelector string | null Valore del selettore della chiave DKIM che è necessario usare per la firma. La trasmissione di un valore non vuoto di questo campo fa sì che il sistema consideri la proprietà SendEmail.EmailSettings.UseDkim come attivata, anche se viene trasmessa come false. Se non viene trovata una chiave adatta con il selettore indicato, il sistema tenterà di trovare e usare un'altra chiave DKIM adatta.
SendEmail.Email.To array Array di oggetti con le chiavi Email e Name. Ogni oggetto corrisponde a un singolo destinatario dell'email. È necessario almeno un destinatario.
SendEmail.Email.Cc
SendEmail.Email.Bcc
SendEmail.Email.ReplyTo
array Array di oggetti con le chiavi Email e Name. Ogni oggetto corrisponde a un singolo indirizzo email e lo aggiunge all'intestazione corrispondente dell'email (Cc, Bcc, ReplyTo).
SendEmail.Email.To.*.Email string Indirizzo email del destinatario. Campo obbligatorio per ogni oggetto in SendEmail.Email.To.*.
SendEmail.Email.To.*.Name string Nome del destinatario. È auspicabile indicarlo se conosci questo valore.
SendEmail.Email.Cc.*.Email
SendEmail.Email.Bcc.*.Email
SendEmail.Email.ReplyTo.*.Email
string Indirizzo email. Campo obbligatorio per ogni elemento trasmesso degli array Cc, Bcc, ReplyTo. Gli array stessi non sono obbligatori.
SendEmail.Email.Cc.*.Name
SendEmail.Email.Bcc.*.Name
SendEmail.Email.ReplyTo.*.Name
string Nome del destinatario. È auspicabile indicarlo se conosci questo valore.
SendEmail.Email.From.Email string Indirizzo email del mittente. In base ad esso viene determinato il dominio di invio. Il dominio deve essere aggiunto al progetto nell'Account personale e confermato.
SendEmail.Email.From.Name string Nome del mittente. Si raccomanda di indicarlo affinché sia chiaro agli iscritti da chi proviene l'email.
SendEmail.Email.Headers array Array di oggetti con le proprietà stringa Name e Value. Queste intestazioni verranno aggiunte all'email. Alcune intestazioni sono protette e non possono essere aggiunte o sovrascritte tramite l'API. Trasmetti solo le intestazioni non standard realmente necessarie.
SendEmail.Email.Html string Codice HTML dell'email. Può essere vuoto o assente se viene trasmesso il campo SendEmail.Email.PlainText.
SendEmail.Email.PlainText string Versione testuale dell'email. Può essere vuota o assente se viene trasmesso il campo SendEmail.Email.Html.
SendEmail.Email.Subject string Oggetto dell'email.
SendEmail.Email.Attachments array Array di oggetti, ognuno dei quali corrisponde a un allegato. Gli allegati non sono obbligatori, ma se vengono trasmessi — tutti i campi, tranne ContentId, sono obbligatori. ContentId è necessario solo per gli allegati con Disposition = inline.
SendEmail.Email.Attachments.*.ContentBase64 string Contenuto dell'allegato in formato base64.
SendEmail.Email.Attachments.*.ContentId string ContentId (identificatore) dell'allegato, deve essere univoco all'interno di una stessa email. È necessario per gli allegati con Disposition = inline.
SendEmail.Email.Attachments.*.Disposition string Determina il tipo di allegato. Valori possibili: attachment — allegato che si può scaricare, e inline — allegato per l'uso all'interno dell'email.
SendEmail.Email.Attachments.*.Filename string Nome dell'allegato.
SendEmail.Email.Attachments.*.Type string Tipo MIME dell'allegato, ad esempio application/pdf.
Esempio di risposta riuscita
{
    "success": true,
    "SendEmail": {
        "SendMessageRequestId": 49,
        "MessageId": "1vb1rzxzem2naah3dxp3t9k6zoj9d4hc@sender-solutions.com"
    }
}

Nel corpo della risposta il campo SendEmail.SendMessageRequestId corrisponde all'identificatore univoco del task di invio di una email. Il campo SendEmail.MessageId corrisponde al valore univoco dell'intestazione Message-ID dell'email.
Questi dati possono essere utili per eseguire altre richieste alla nostra API o per contattare il supporto tecnico.