6. Envoi d'un Email via l'API

La méthode est destinée à l'envoi d'un e-mail via l'API dans les cas où la fonctionnalité des Campagnes d'envois via l'UI du Service, pour certaines raisons, ne convient pas. Les données sont transmises au format application/json.

Requête HTTP
  • URL : https://sender-solutions.com/api/emails/send-instant-email/
  • Méthode HTTP : POST
  • Content-Type : application/json
Corps de la requête (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"
                }
            ]
        }
    }
}
Exemple de requête à l'aide de 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"
                }
            ]
        }
    }
}'
Description des champs

Si dans les champs SendEmail.TrackingSettings.* ou SendEmail.EmailSettings.* on transmet la valeur null (ou on ne transmet pas du tout le champ), le système prendra lui-même la décision concernant le traitement de l'e-mail. Il est recommandé de toujours indiquer tous les champs de paramètres importants pour vous, afin que le comportement du système soit prévisible.

Champ Type Obligatoire Description
SendEmail.TrackingSettings.TrackLinks boolean | null Le paramètre est responsable du suivi des clics sur les liens. S'il est activé, les liens dans la partie HTML de l'e-mail seront modifiés pour activer le suivi des clics.
SendEmail.TrackingSettings.TrackPlainTextLinks boolean | null Le paramètre est responsable du suivi des clics sur les liens. S'il est activé, les liens dans la partie plain/text de l'e-mail seront modifiés pour activer le suivi des clics.
SendEmail.TrackingSettings.TrackOpen boolean | null Le paramètre est responsable du suivi de l'ouverture de l'e-mail.
SendEmail.TrackingSettings.TrackUnsubscribe boolean | null Le paramètre est responsable du suivi des désabonnements de l'envoi.
SendEmail.EmailSettings.InlineImages boolean | null Si cette option est activée, la partie HTML de l'e-mail sera optimisée : les images externes seront ajoutées en tant que pièces jointes inline (il est impossible de les télécharger). L'apparence de l'e-mail ne changera pas, mais les clients de messagerie feront davantage confiance à un tel e-mail.
SendEmail.EmailSettings.SendAt int | null Date minimale d'envoi de l'e-mail (unix timestamp). Utilisée pour l'envoi différé.
SendEmail.EmailSettings.UseDkim boolean | null S'il faut utiliser la signature DKIM. Le système trouvera lui-même la clé DKIM adaptée pour cet e-mail.
SendEmail.EmailSettings.UseDkimSelector string | null Valeur du sélecteur de la clé DKIM qu'il faut utiliser pour la signature. La transmission d'une valeur non vide de ce champ fait que le système considère la propriété SendEmail.EmailSettings.UseDkim comme activée, même si elle est transmise comme false. Si aucune clé adaptée avec le sélecteur indiqué n'est trouvée, le système tentera de trouver et d'utiliser une autre clé DKIM adaptée.
SendEmail.Email.To array Tableau d'objets avec les clés Email et Name. Chaque objet correspond à un destinataire distinct de l'e-mail. Au moins un destinataire est nécessaire.
SendEmail.Email.Cc
SendEmail.Email.Bcc
SendEmail.Email.ReplyTo
array Tableau d'objets avec les clés Email et Name. Chaque objet correspond à une adresse email distincte et l'ajoute à l'en-tête correspondant de l'e-mail (Cc, Bcc, ReplyTo).
SendEmail.Email.To.*.Email string Adresse email du destinataire. Champ obligatoire pour chaque objet dans SendEmail.Email.To.*.
SendEmail.Email.To.*.Name string Nom du destinataire. Il est souhaitable de l'indiquer si vous connaissez cette valeur.
SendEmail.Email.Cc.*.Email
SendEmail.Email.Bcc.*.Email
SendEmail.Email.ReplyTo.*.Email
string Adresse email. Champ obligatoire pour chaque élément transmis des tableaux Cc, Bcc, ReplyTo. Les tableaux eux-mêmes ne sont pas obligatoires.
SendEmail.Email.Cc.*.Name
SendEmail.Email.Bcc.*.Name
SendEmail.Email.ReplyTo.*.Name
string Nom du destinataire. Il est souhaitable de l'indiquer si vous connaissez cette valeur.
SendEmail.Email.From.Email string Adresse email de l'expéditeur. Sur sa base est déterminé le domaine d'envoi. Le domaine doit être ajouté au projet dans le Compte personnel et confirmé.
SendEmail.Email.From.Name string Nom de l'expéditeur. Il est recommandé de l'indiquer afin que les abonnés comprennent de qui provient l'e-mail.
SendEmail.Email.Headers array Tableau d'objets avec les propriétés de type chaîne Name et Value. Ces en-têtes seront ajoutés à l'e-mail. Certains en-têtes sont protégés et ne peuvent pas être ajoutés ou redéfinis via l'API. Transmettez uniquement les en-têtes non standard réellement nécessaires.
SendEmail.Email.Html string Code HTML de l'e-mail. Peut être vide ou absent si le champ SendEmail.Email.PlainText est transmis.
SendEmail.Email.PlainText string Version texte de l'e-mail. Peut être vide ou absente si le champ SendEmail.Email.Html est transmis.
SendEmail.Email.Subject string Objet de l'e-mail.
SendEmail.Email.Attachments array Tableau d'objets, chacun correspondant à une pièce jointe. Les pièces jointes ne sont pas obligatoires, mais si elles sont transmises — tous les champs, sauf ContentId, sont obligatoires. ContentId n'est nécessaire que pour les pièces jointes avec Disposition = inline.
SendEmail.Email.Attachments.*.ContentBase64 string Contenu de la pièce jointe au format base64.
SendEmail.Email.Attachments.*.ContentId string ContentId (identifiant) de la pièce jointe, doit être unique au sein d'un même e-mail. Nécessaire pour les pièces jointes avec Disposition = inline.
SendEmail.Email.Attachments.*.Disposition string Détermine le type de la pièce jointe. Valeurs possibles : attachment — pièce jointe que l'on peut télécharger, et inline — pièce jointe à utiliser à l'intérieur de l'e-mail.
SendEmail.Email.Attachments.*.Filename string Nom de la pièce jointe.
SendEmail.Email.Attachments.*.Type string Type MIME de la pièce jointe, par exemple application/pdf.
Exemple de réponse réussie
{
    "success": true,
    "SendEmail": {
        "SendMessageRequestId": 49,
        "MessageId": "1vb1rzxzem2naah3dxp3t9k6zoj9d4hc@sender-solutions.com"
    }
}

Dans le corps de la réponse, le champ SendEmail.SendMessageRequestId correspond à l'identifiant unique de la tâche d'envoi d'un e-mail. Le champ SendEmail.MessageId correspond à la valeur unique de l'en-tête Message-ID de l'e-mail.
Ces données peuvent être utiles pour exécuter d'autres requêtes vers notre API ou pour contacter le support technique.