Livraisons

Adresse d'appel

Centre de données URL
Singapour https://email.api.engagelab.cc
Turquie https://emailapi-tr.engagelab.com

Lorsque vous utilisez l'API REST, assurez-vous que le centre de données sélectionné correspond à l'URL de base appropriée.

POST/v1/mail/send

Livraison classique

URL

https://email.api.engagelab.cc/v1/mail/send
              
              https://email.api.engagelab.cc/v1/mail/send

            
Afficher ce bloc de code dans la fenêtre flottante

Content-Type :

Content-Type: application/json;charset=utf-8
              
              Content-Type: application/json;charset=utf-8

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de requête HTTP

POST
              
              POST

            
Afficher ce bloc de code dans la fenêtre flottante

En-tête de la requête

En-tête Type Obligatoire Description
Authorization String oui Basic base64(api_user:api_key)

Paramètres de la requête

Paramètre Type Obligatoire ou non Description
from string oui Expéditeur. Exemple : support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Si le nom du produit ou de la marque doit être affiché, utilisez EngageLab Team<support@mail.engagelab.com>. EngageLab Team est le nom d'expéditeur et peut transmettre le nom du produit ou de la société, <support@mail.engagelab.com> est l'adresse de l'expéditeur.
to array[string] oui Destinataire. Jusqu'à 100 adresses prises en charge. Exemple : ["xjm@hotmail.com","xjm2@gmail.com"]
body object oui Paramètres de l'e-mail
custom_args object non Champs optionnels personnalisés par le client. Taille maximale de 1 Ko. La clé de custom_args ne peut pas contenir le symbole ".".
request_id string non ID de cette demande d'envoi ; 128 caractères maximum.

Body

Paramètre Type Obligatoire ou non Description
cc array[string] non Cc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
bcc array[string] non Bcc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
reply_to array[string] non Répondre à. Jusqu'à 3 adresses supportées ; si aucune valeur n'est transmise, l'adresse de réponse est from.
subject string oui Sujet. 256 caractères maximum ; supporte les variables, emoji.
content object oui Contenu
html string * Contenu html. Format text/html.
text string * Contenu texte. Format text/plain.
preview_text string non Aperçu du contenu
vars object non Variable. Jusqu'à 1 Mo ; valide si send_mode=0 ou send_mode=1.
dynamic_vars array[object] non Variables dynamiques de template. Taille max 1 Mo ; valide si send_mode = 0 ou send_mode = 1.
label_id string non ID de l'étiquette utilisée pour cet envoi
label_name string non Nom de l'étiquette utilisée pour cet envoi
headers object non En-têtes. Jusqu'à 1 Ko.
attachments array[object] non Pièces jointes. Taille totale max 10 Mo.
content string oui Contenu de la pièce jointe. Encodage Base64.
filename string oui Nom du fichier joint, Exemple : news.pdf
disposition string oui Valeur possible : attachment ou inline.
content_id string non Si disposition est inline et le type de fichier est image, vous devez définir cette valeur
settings object non Paramètres d'envoi
send_mode int non Mode d'envoi. 0 = envoi séparé ; 1 = envoi groupé (tous les destinataires sont visibles) ; 2 = envoi à une liste d'adresses. La valeur de to est l'adresse de la liste. Par défaut : 0
return_email_id boolean non Retourner l'ID de l'e-mail, par défaut true.
sandbox boolean non Utiliser le mode sandbox, par défaut false. Si true, l'e-mail ne sera pas envoyé, seuls les paramètres seront vérifiés.
notification boolean non Utiliser l'accusé de lecture, par défaut false. L'accusé par défaut est from, à utiliser avec la route de réception.
open_tracking boolean non Activer le suivi d'ouverture, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
click_tracking boolean non Activer le suivi de clic, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
unsubscribe_tracking boolean non Activer la désinscription. Valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
unsubscribe_page_id array[int] non Page de désinscription personnalisée, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.

Astuces :

  1. Lorsque send_mode=2, la valeur de to est un surnom de liste d'adresses, et le nombre ne peut dépasser 5. Dans ce cas, les paramètres cc et bcc sont invalides.

  2. Html et plain ne peuvent pas être vides en même temps.

  3. Preview_text ne peut être utilisé qu'avec html. Si aucune valeur html n'est transmise, preview_text n'aura pas d'effet.

  4. Vars est utilisé pour le remplacement de variables dans le contenu de l'e-mail. Format : objet json, '{"varname": ["value1","value2"]}', où varname est la variable du contenu. Si la valeur transmise est vide ou un espace, le texte correspondant sera vide dans l'e-mail.

    Contenu du message : Cher %name%, bienvenue sur le service e-mail %sp%. Valeur de vars : {"name": ["mike"], "sp": ["engagelab"]} Remplacement dans l'e-mail : Cher Mike, bienvenue sur le service e-mail engagelab.
                  
                   Contenu du message : Cher %name%, bienvenue sur le service e-mail %sp%.
     
     Valeur de vars : {"name": ["mike"], "sp": ["engagelab"]}
     
     Remplacement dans l'e-mail : Cher Mike, bienvenue sur le service e-mail engagelab.
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  5. Le paramètre dynamic_vars sert au remplacement de variables dans les templates dynamiques. Format : objet JSON, comme [{"varname1":"value1","varname2":"value2"}].

    Contenu de l'e-mail : Cher {{name}}, bienvenue sur le service e-mail {{sp}}. Valeur transmise dans `dynamic_vars` : `[{"name":"jim","sp":"engagelab"}]` Résultat dans l'e-mail : Cher jim, bienvenue sur le service e-mail engagelab.
                  
                   Contenu de l'e-mail : Cher {{name}}, bienvenue sur le service e-mail {{sp}}.
    
     Valeur transmise dans `dynamic_vars` : `[{"name":"jim","sp":"engagelab"}]`
    
     Résultat dans l'e-mail : Cher jim, bienvenue sur le service e-mail engagelab.
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  6. Vous pouvez transmettre soit 'label_id', soit 'label_name'. Si 'label_name' n'existe pas, il sera créé automatiquement. Si les deux sont transmis, 'label_name' sera ignoré.

  7. Headers permet de personnaliser les champs d'en-tête du message. Format : objet json, '{"User Define": "123", "User Custom": "abc"}'. La clé ne peut contenir les valeurs suivantes (insensible à la casse) : DKIM-Signature, Received, Sender, Date, From, To, Reply-To, Cc, Bcc, Subject, Content-Type, Content-Transfer-Encoding, X-SENDCLOUD-UUID, X-SENDCLOUD-LOG, X-Remote-Web-IP, X-SMTPAPI, Return-Path, X-SENDCLOUD-LOG-NEW

  8. Si disposition est inline, le contenu de la pièce jointe est une image, qui sera affichée directement dans le corps du message. content_id doit être défini et unique, utilisé comme src lors de l'affichage de l'image.

    Contenu de l'e-mail : <html> <img src="cid:image_1000"></img> <img src="cid:image_1001"></img> </html> Paramètre attachments : [ {"content":"contenu image base 64", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"}, {"content":"contenu image base 64", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"}, ]
                  
                   Contenu de l'e-mail :
     <html>
         <img src="cid:image_1000"></img>
         <img src="cid:image_1001"></img>
     </html>
     
     Paramètre attachments :
     [
       {"content":"contenu image base 64", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"},
       {"content":"contenu image base 64", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"},
     ]
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  9. Les custom_args définis par vous-même seront intégrés dans l'en-tête ; les données WebHook suivantes vous seront retournées. La clé de custom_args ne peut pas contenir le symbole ".".

  10. Le request_id sert à éviter les soumissions répétées, valable 1 heure. En cas de soumission répétée dans l'heure, le dernier résultat sera retourné.

  11. La taille totale de l'e-mail ne peut dépasser 70 Mo.

Exemple de requête

curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' --data '{ "from": "EngageLab Newsletter <newsletter@mail.engagelab.com>", "to": ["111@qq.com", "222<222@qq.com>"], "body": { "cc": ["noreply@mail.engagelab.com"], "bcc": ["intern<intern@mail.engagelab.com>"], "reply_to": ["reply@mail.engagelab.com"], "subject": "%date% Newsletter ", "content": { "html": "<a href=\"https://www.engagelab.com\">Newsletter %kkk%</a>", "text": "Les actualités du jour sont %ttt%", "preview_text": "preview_text est ..." }, "vars": { }, "label_id": 100233, "label_name": "", "headers": {}, "attachments": [{ "content": "Contenu encodé en Base64 de la pièce jointe", "type": "text/html", "filename": "Nom du fichier joint", "disposition": "inline | attachment", "content_id": "" }], "settings": { "send_mode": 0, "return_email_id": true, "sandbox": true, "notification": false, "open_tracking": true, "click_tracking": false, "unsubscribe_tracking": true, "unsubscribe_page_id": [1,2] } }, "custom_args": {}, "request_id": "" }' 'https://email.api.engagelab.cc/v1/mail/send'
              
              curl -X POST -H 'Content-Type: application/json; charset=utf-8' 
     -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' 
     --data '{
  "from": "EngageLab Newsletter <newsletter@mail.engagelab.com>", 
  "to": ["111@qq.com", "222<222@qq.com>"],
  "body": {
      "cc": ["noreply@mail.engagelab.com"],                            
      "bcc": ["intern<intern@mail.engagelab.com>"],                  
      "reply_to": ["reply@mail.engagelab.com"],                         
      "subject": "%date% Newsletter ",                                       
      "content": {                                                     
        "html": "<a href=\"https://www.engagelab.com\">Newsletter %kkk%</a>", 
        "text": "Les actualités du jour sont %ttt%",                                      
        "preview_text": "preview_text est ..."                          
         },
      "vars": { },
      "label_id": 100233, 
      "label_name": "",
      "headers": {},
      "attachments": [{                                                
        "content": "Contenu encodé en Base64 de la pièce jointe",     
        "type": "text/html",
        "filename": "Nom du fichier joint",            
        "disposition": "inline | attachment",                           
        "content_id": ""  
      }],
      "settings": {                 
        "send_mode": 0, 
        "return_email_id": true,  
        "sandbox": true,
        "notification": false,
        "open_tracking": true,                                           
        "click_tracking": false,                                         
        "unsubscribe_tracking": true,                              
        "unsubscribe_page_id": [1,2]
      }
  },
  "custom_args": {},           
  "request_id": "" 
}'  'https://email.api.engagelab.cc/v1/mail/send' 

            
Afficher ce bloc de code dans la fenêtre flottante

Exemple de valeur retournée

  • Envoi non liste d'adresses (send_mode=0 ou send_mode=1)

    Réponse-succès

HTTP Status: 200

{ "email_ids":[ "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$111@qq.com", "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$222@qq.com"], "request_id":"" }
              
              {
"email_ids":[
      "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$111@qq.com",
      "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$222@qq.com"],
"request_id":""
}

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-erreur

HTTP Status :400

{ "code": 30801, "message": "From ne peut pas être vide" }
              
              {
    "code": 30801,
    "message": "From ne peut pas être vide"
}

            
Afficher ce bloc de code dans la fenêtre flottante
  • Envoi à une liste d'adresses (send_mode=2)

    Réponse-succès

HTTP Status: 200

{ "task_id":[102923], "request_id":"" }
              
              {
"task_id":[102923],
"request_id":""
}

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-erreur

HTTP Status :400

{ "code": 30801, "message": "From ne peut pas être vide" }
              
              {
    "code": 30801,
    "message": "From ne peut pas être vide"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Envoi par template

URL

https://email.api.engagelab.cc/v1/mail/sendtemplate
              
              https://email.api.engagelab.cc/v1/mail/sendtemplate

            
Afficher ce bloc de code dans la fenêtre flottante

Content-Type :

Content-Type: application/json; charset=utf-8
              
              Content-Type: application/json; charset=utf-8

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de requête HTTP

POST
              
              POST

            
Afficher ce bloc de code dans la fenêtre flottante

En-tête de la requête

En-tête Type Obligatoire Description
Authorization String oui Basic base64(api_user:api_key)

Paramètres de la requête

Paramètre Type Obligatoire ou non Description
from string oui Expéditeur. Exemple : support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Si le nom du produit ou de la marque doit être affiché, utilisez EngageLab Team<support@mail.engagelab.com>. EngageLab Team est le nom d'expéditeur et peut transmettre le nom du produit ou de la marque, <support@mail.engagelab.com> est l'adresse de l'expéditeur.
to array[string] oui Destinataire. Jusqu'à 100 adresses supportées. Exemple : ["xjm@hotmail.com","xjm2@gmail.com"]
body object oui Paramètres de l'e-mail
custom_args object non Champs optionnels personnalisés par le client. Taille maximale de 1 Ko. La clé de custom_args ne peut pas contenir le symbole ".".
request_id string non ID de cette demande d'envoi ; 128 caractères maximum.

Body

Paramètre Type Obligatoire ou non Description
cc array[string] non Cc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
bcc array[string] non Bcc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
reply_to array[string] non Répondre à. Jusqu'à 3 adresses supportées ; si aucune valeur n'est transmise, l'adresse de réponse est from.
subject string non Sujet. 256 caractères maximum ; supporte les variables, emoji.
template_invoke_name string oui Nom d'appel du template.
vars object non Variable. Jusqu'à 1 Mo ; valide si send_mode=0 ou send_mode=1.
dynamic_vars array[object] non Variables dynamiques de template. Taille max 1 Mo ; valide si send_mode = 0 ou send_mode = 1.
label_id string non ID de l'étiquette utilisée pour cet envoi
label_name string non Nom de l'étiquette utilisée pour cet envoi
headers object non En-têtes. Jusqu'à 1 Ko.
attachments array[object] non Pièces jointes. Taille totale max 10 Mo.
content string oui Contenu de la pièce jointe. Encodage Base64.
filename string oui Nom du fichier joint, Exemple : news.pdf
disposition string oui Valeur possible : attachment ou inline.
content_id string non Si disposition est inline et le type de fichier est image, vous devez définir cette valeur
settings object non Paramètres d'envoi
send_mode int non Mode d'envoi. 0 = envoi séparé ; 1 = envoi groupé (tous les destinataires sont visibles) ; 2 = envoi à une liste d'adresses. La valeur de to est l'adresse de la liste. Par défaut : 0
return_email_id boolean non Retourner l'ID de l'e-mail, par défaut true.
sandbox boolean non Utiliser le mode sandbox, par défaut false. Si true, l'e-mail ne sera pas envoyé, seuls les paramètres seront vérifiés.
notification boolean non Utiliser l'accusé de lecture, par défaut false. L'accusé par défaut est from, à utiliser avec la route de réception.
open_tracking boolean non Activer le suivi d'ouverture, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
click_tracking boolean non Activer le suivi de clic, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
unsubscribe_tracking boolean non Activer la désinscription. Valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
unsubscribe_page_id array[int] non Page de désinscription personnalisée, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.

Astuces :

  1. Lorsque send_mode=2, la valeur de to est un surnom de liste d'adresses, et le nombre ne peut dépasser 5. Dans ce cas, les paramètres cc et bcc sont invalides.

  2. Vars est utilisé pour le remplacement de variables dans le contenu de l'e-mail. Format : objet json, '{"varname": ["value1","value2"]}', où varname est la variable du contenu. Si la valeur transmise est vide ou un espace, le texte correspondant sera vide dans l'e-mail.

    Contenu du message : Cher %name%, bienvenue sur le service e-mail %sp%. Valeur de vars : {"name": ["mike"], "sp": ["engagelab"]} Remplacement dans l'e-mail : Cher Mike, bienvenue sur le service e-mail engagelab.
                  
                   Contenu du message : Cher %name%, bienvenue sur le service e-mail %sp%.
     
     Valeur de vars : {"name": ["mike"], "sp": ["engagelab"]}
     
     Remplacement dans l'e-mail : Cher Mike, bienvenue sur le service e-mail engagelab.
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  3. Le paramètre dynamic_vars sert au remplacement de variables dans les templates dynamiques. Format : objet JSON, comme [{"varname1":"value1","varname2":"value2"}].

    Contenu de l'e-mail : Cher {{name}}, bienvenue sur le service e-mail {{sp}}. Valeur transmise dans `dynamic_vars` : `[{"name":"jim","sp":"engagelab"}]` Résultat dans l'e-mail : Cher jim, bienvenue sur le service e-mail engagelab.
                  
                   Contenu de l'e-mail : Cher {{name}}, bienvenue sur le service e-mail {{sp}}.
    
     Valeur transmise dans `dynamic_vars` : `[{"name":"jim","sp":"engagelab"}]`
    
     Résultat dans l'e-mail : Cher jim, bienvenue sur le service e-mail engagelab.
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  4. Vous pouvez transmettre soit 'label_id', soit 'label_name'. Si 'label_name' n'existe pas, il sera créé automatiquement. Si les deux sont transmis, 'label_name' sera ignoré.

  5. Headers permet de personnaliser les champs d'en-tête du message. Format : objet json, '{"User Define": "123", "User Custom": "abc"}'. La clé ne peut contenir les valeurs suivantes (insensible à la casse) : DKIM-Signature, Received, Sender, Date, From, To, Reply-To, Cc, Bcc, Subject, Content-Type, Content-Transfer-Encoding, X-SENDCLOUD-UUID, X-SENDCLOUD-LOG, X-Remote-Web-IP, X-SMTPAPI, Return-Path, X-SENDCLOUD-LOG-NEW

  6. Si disposition est inline, le contenu de la pièce jointe est une image, qui sera affichée directement dans le corps du message. content_id doit être défini et unique, utilisé comme src lors de l'affichage de l'image.

    Contenu de l'e-mail : <html> <img src="cid:image_1000"></img> <img src="cid:image_1001"></img> </html> Paramètre attachments : [ {"content":"contenu image base 64", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"}, {"content":"contenu image base 64", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"}, ]
                  
                   Contenu de l'e-mail :
     <html>
         <img src="cid:image_1000"></img>
         <img src="cid:image_1001"></img>
     </html>
     
     Paramètre attachments :
     [
       {"content":"contenu image base 64", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"},
       {"content":"contenu image base 64", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"},
     ]
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  7. Les custom_args définis par vous-même seront intégrés dans l'en-tête ; les données WebHook suivantes vous seront retournées. La clé de custom_args ne peut pas contenir le symbole ".".

  8. Le request_id sert à éviter les soumissions répétées, valable 1 heure. En cas de soumission répétée dans l'heure, le dernier résultat sera retourné.

  9. La taille totale de l'e-mail ne peut dépasser 70 Mo.

Exemple de valeur retournée

Contenu du template (month_bill)

Cher %name% : Bonjour ! Votre montant de consommation ce mois-ci est : %money% .
              
              Cher %name% :
  Bonjour ! Votre montant de consommation ce mois-ci est : %money% .

            
Afficher ce bloc de code dans la fenêtre flottante

Envoi régulier (appel du template month_bill)

curl -X POST "https://email.api.engagelab.cc/v1/mail/sendtemplate" --header "Authorization: Basic <<YOUR_API_KEY_HERE>>" --header "Content-Type: application/json" --data '{ "from": "support@mail.engagelab.com", "to": ["xjmfc@126.com", "xjmfcme@gmail.com"], "body": { "subject": "e-mail de test", "template_invoke_name": "month_bill", "label_id": 10143, "label_name": "", "vars": { "%name%": ["jack", "jone"], "%money%": ["30", "50"] }, "headers": { "userdefine-tag-location": "us", "userdefine-tag-user": "fashion" }, "attachments": [{ "content": "Contenu encodé en Base64 de la pièce jointe", "filename": "Nom du fichier joint", "disposition": "inline | attachment", "content_id": "" }], "settings": { "send_mode": 0, "return_email_id": true, "sandbox": true, "notification": false, "open_tracking": true, "click_tracking": false, "unsubscribe_tracking": true, "unsubscribe_page_id": [1, 2] } }, "custom_args": {}, "request_id": "" }'
              
              curl -X POST "https://email.api.engagelab.cc/v1/mail/sendtemplate" 
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>" 
--header "Content-Type: application/json" 
--data '{
    "from": "support@mail.engagelab.com",
    "to": ["xjmfc@126.com", "xjmfcme@gmail.com"],
    "body": {
        "subject": "e-mail de test",
        "template_invoke_name": "month_bill",
        "label_id": 10143,
        "label_name": "",
        "vars": {
            "%name%": ["jack", "jone"],
            "%money%": ["30", "50"]
        },
        "headers": {
            "userdefine-tag-location": "us",
            "userdefine-tag-user": "fashion"
        },
        "attachments": [{
            "content": "Contenu encodé en Base64 de la pièce jointe",
            "filename": "Nom du fichier joint",
            "disposition": "inline | attachment",
            "content_id": ""
        }],
        "settings": {
            "send_mode": 0,
            "return_email_id": true,
            "sandbox": true,
            "notification": false,
            "open_tracking": true,
            "click_tracking": false,
            "unsubscribe_tracking": true,
            "unsubscribe_page_id": [1, 2]
        }
    },
    "custom_args": {},
    "request_id": ""
        
}'

            
Afficher ce bloc de code dans la fenêtre flottante

#xjmfc@126.com a reçu : Cher jack : Bonjour ! Votre montant de consommation ce mois-ci est : 30 . #---------------------------------------------------

xjmfcme@gmail.com a reçu :

Cher jone : Bonjour ! Votre montant de consommation ce mois-ci est : 50 .

Réponse-succès

HTTP Status: 200

{ "email_ids":[ "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$xjmfc@126.com", "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$xjmfcme@gmail.com"], "request_id":"" }
              
              {
"email_ids":[
      "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$xjmfc@126.com",
      "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$xjmfcme@gmail.com"],
"request_id":""
}

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-erreur

HTTP Status :404

not found
              
              not found

            
Afficher ce bloc de code dans la fenêtre flottante

Envoi régulier (appel du template month_bill, envoi à la liste d'adresses users@maillist.email.engagelab.com)

curl -X POST "https://email.api.engagelab.cc/v1/mail/sendtemplate" --header "Authorization: Basic <<YOUR_API_KEY_HERE>>" --header "Content-Type: application/json" --data '{ "from":{"admin@engaelab.com"}, "to":["users@maillist.email.engagelab.com"], "body":{ "subject":"facture", "template_invoke_name":"month_bill", "label":"gangz" }}'
              
              curl -X POST "https://email.api.engagelab.cc/v1/mail/sendtemplate" 
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>" 
--header "Content-Type: application/json" 
--data '{
        "from":{"admin@engaelab.com"},
        "to":["users@maillist.email.engagelab.com"],
        "body":{
            "subject":"facture",
             "template_invoke_name":"month_bill",
             "label":"gangz"
}}'

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-succès

HTTP Status: 200

{ "task_id":[102923], "request_id":"" }
              
              {
"task_id":[102923],
"request_id":""
}

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-erreur

HTTP Status :404

not found
              
              not found

            
Afficher ce bloc de code dans la fenêtre flottante

Envoi de calendrier de réunion

URL

https://email.api.engagelab.cc/v1/mail/sendcalendar
              
              https://email.api.engagelab.cc/v1/mail/sendcalendar

            
Afficher ce bloc de code dans la fenêtre flottante

Content-Type :

Content-Type: application/json; charset=utf-8
              
              Content-Type: application/json; charset=utf-8

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de requête HTTP

POST
              
              POST

            
Afficher ce bloc de code dans la fenêtre flottante

En-tête de la requête

En-tête Type Obligatoire Description
Authorization String oui Basic base64(api_user:api_key)

Paramètres de la requête

Paramètre Type Obligatoire ou non Description
from string oui Expéditeur. Exemple : support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Si le nom du produit ou de la marque doit être affiché, utilisez EngageLab Team<support@mail.engagelab.com>. EngageLab Team est le nom d'expéditeur et peut transmettre le nom du produit ou de la marque, <support@mail.engagelab.com> est l'adresse de l'expéditeur.
to array[string] oui Destinataire. Jusqu'à 100 adresses supportées. Exemple : ["xjm@hotmail.com","xjm2@gmail.com"]
body object oui Paramètres de l'e-mail
custom_args object non Champs optionnels personnalisés par le client. Taille maximale de 1 Ko. La clé de custom_args ne peut pas contenir le symbole ".".
request_id string non ID de cette demande d'envoi ; 128 caractères maximum.

Body

Paramètre Type Obligatoire ou non Description
cc array[string] non Cc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
bcc array[string] non Bcc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
reply_to array[string] non Répondre à. Jusqu'à 3 adresses supportées ; si aucune valeur n'est transmise, l'adresse de réponse est from.
subject string oui Sujet. 256 caractères maximum ; supporte les variables, emoji.
content object oui Contenu
html string * Contenu html. Format text/html.
text string * Contenu texte. Format text/plain.
preview_text string non Aperçu du contenu
vars object non Variable. Jusqu'à 1 Mo ; valide si send_mode=0 ou send_mode=1.
dynamic_vars array[object] non Variables dynamiques de template. Taille max 1 Mo ; valide si send_mode = 0 ou send_mode = 1.
label_id string non ID de l'étiquette utilisée pour cet envoi
label_name string non Nom de l'étiquette utilisée pour cet envoi
headers object non En-têtes. Jusqu'à 1 Ko.
attachments array[object] non Pièces jointes. Taille totale max 10 Mo.
content string oui Contenu de la pièce jointe. Encodage Base64.
filename string oui Nom du fichier joint, Exemple : news.pdf
disposition string oui Valeur possible : attachment ou inline.
content_id string oui Si disposition est inline et le type de fichier est image, vous devez définir cette valeur
settings object non Paramètres d'envoi
send_mode int non Mode d'envoi. 0 = envoi séparé ; 1 = envoi groupé (tous les destinataires sont visibles) ; Par défaut : 0
return_email_id boolean non Retourner l'ID de l'e-mail, par défaut true.
sandbox boolean non Utiliser le mode sandbox, par défaut false. Si true, l'e-mail ne sera pas envoyé, seuls les paramètres seront vérifiés.
notification boolean non Utiliser l'accusé de lecture, par défaut false. L'accusé par défaut est from, à utiliser avec la route de réception.
open_tracking boolean non Activer le suivi d'ouverture, valeur système par défaut. Valide uniquement si send_mode=0.
click_tracking boolean non Activer le suivi de clic, valeur système par défaut. Valide uniquement si send_mode=0.
unsubscribe_tracking boolean non Activer la désinscription. Valeur système par défaut. Valide uniquement si send_mode=0.
unsubscribe_page_id array[int] non Page de désinscription personnalisée, valeur système par défaut. Valide uniquement si send_mode=0.
calendar object oui Paramètres du calendrier
time_zone_id string oui Exemple : Dictionnaire des fuseaux horaires du calendrier
start_time string oui Heure de début de la réunion. Format : yyyy-MM-dd HH:mm:ss
end_time string oui Heure de fin de la réunion. Format : yyyy-MM-dd HH:mm:ss
title string oui Titre de la réunion. 256 caractères maximum.
organizer object oui Organisateur
name string non Nom de l'organisateur. 64 caractères maximum.
email string oui E-mail de l'organisateur
location string oui Lieu. 128 caractères maximum.
description string non Description de la réunion. 1024 caractères maximum.
participators array[object] non Participants
name string non Nom du participant. 64 caractères maximum.
email string oui E-mail du participant
alarm_min_before integer non Minutes d'alerte avant la réunion. Plage 1~60.
action object non Opération calendrier
name string non Nom de l'opération. Valeurs autorisées : create, update, cancel. Par défaut : create.
uid string non Ce paramètre doit être transmis lors de la mise à jour ou annulation. La valeur uid sera retournée lors de la création de l'e-mail calendrier.

Astuces :

  1. Html et plain ne peuvent pas être vides en même temps.

  2. Preview_text ne peut être utilisé qu'avec html. Si aucune valeur html n'est transmise, preview_text n'aura pas d'effet.

  3. Vars est utilisé pour le remplacement de variables dans le contenu de l'e-mail. Format : objet json, '{"varname": ["value1","value2"]}', où varname est la variable du contenu. Si la valeur transmise est vide ou un espace, le texte correspondant sera vide dans l'e-mail.

    Contenu du message : Cher %name%, bienvenue sur le service e-mail %sp%. Valeur de vars : {"name": ["mike"], "sp": ["engagelab"]} Remplacement dans l'e-mail : Cher Mike, bienvenue sur le service e-mail engagelab.
                  
                   Contenu du message : Cher %name%, bienvenue sur le service e-mail %sp%.
     
     Valeur de vars : {"name": ["mike"], "sp": ["engagelab"]}
     
     Remplacement dans l'e-mail : Cher Mike, bienvenue sur le service e-mail engagelab.
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  4. Le paramètre dynamic_vars sert au remplacement de variables dans les templates dynamiques. Format : objet JSON, comme [{"varname1":"value1","varname2":"value2"}].

    Contenu de l'e-mail : Cher {{name}}, bienvenue sur le service e-mail {{sp}}. Valeur transmise dans `dynamic_vars` : `[{"name":"jim","sp":"engagelab"}]` Résultat dans l'e-mail : Cher jim, bienvenue sur le service e-mail engagelab.
                  
                   Contenu de l'e-mail : Cher {{name}}, bienvenue sur le service e-mail {{sp}}.
    
     Valeur transmise dans `dynamic_vars` : `[{"name":"jim","sp":"engagelab"}]`
    
     Résultat dans l'e-mail : Cher jim, bienvenue sur le service e-mail engagelab.
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  5. Vous pouvez transmettre soit 'label_id', soit 'label_name'. Si 'label_name' n'existe pas, il sera créé automatiquement. Si les deux sont transmis, 'label_name' sera ignoré.

  6. Headers permet de personnaliser les champs d'en-tête du message. Format : objet json, '{"User Define": "123", "User Custom": "abc"}'. La clé ne peut contenir les valeurs suivantes (insensible à la casse) : DKIM-Signature, Received, Sender, Date, From, To, Reply-To, Cc, Bcc, Subject, Content-Type, Content-Transfer-Encoding, X-SENDCLOUD-UUID, X-SENDCLOUD-LOG, X-Remote-Web-IP, X-SMTPAPI, Return-Path, X-SENDCLOUD-LOG-NEW

  7. Si disposition est inline, le contenu de la pièce jointe est une image, qui sera affichée directement dans le corps du message. content_id doit être défini et unique, utilisé comme src lors de l'affichage de l'image.

    Contenu de l'e-mail : <html> <img src="cid:image_1000"></img> <img src="cid:image_1001"></img> </html> Paramètre attachments : [ {"content":"contenu image base 64", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"}, {"content":"contenu image base 64", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"}, ]
                  
                   Contenu de l'e-mail :
     <html>
         <img src="cid:image_1000"></img>
         <img src="cid:image_1001"></img>
     </html>
     
     Paramètre attachments :
     [
       {"content":"contenu image base 64", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"},
       {"content":"contenu image base 64", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"},
     ]
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  8. Les custom_args définis par vous-même seront intégrés dans l'en-tête ; les données WebHook suivantes vous seront retournées. La clé de custom_args ne peut pas contenir le symbole ".".

  9. Le request_id sert à éviter les soumissions répétées, valable 1 heure. En cas de soumission répétée dans l'heure, le dernier résultat sera retourné.

  10. La taille totale de l'e-mail ne peut dépasser 70 Mo.

Exemple de requête

curl -X POST 'https://email.api.engagelab.cc/v1/mail/sendcalendar' \ --header 'Authorization: Basic MTIyNF94am06MTJkOGIwODVlNjZhZGUyMmNlNGIwOWI5NjQ2YWQ1ODE=' \ --header 'Content-Type: application/json' \ --data '{ "from": "EngageLab Newsletter <newsletter@mail.engagelab.com>", "to": ["111@qq.com", "222<222@qq.com>"], "body": { "cc": ["noreply@mail.engagelab.com"], "bcc": ["intern<intern@mail.engagelab.com>"], "reply_to": ["reply@mail.engagelab.com"], "subject": "%date% Newsletter ", "content": { "html": "<a href=\"https://www.engagelabe.com\">Newsletter %kkk%</a>", "text": "Newsletter %ttt%", "preview_text": "preview_text est ..." }, "label_id": "1233", "label_name": "", "headers": { "userdefine-tag-location": "us", "userdefine-tag-user": "fashion" }, "settings": { "send_mode": 0, "return_email_id": true, "sandbox": true, "notification": false, "open_tracking": true, "click_tracking": false, "unsubscribe_tracking": true, "unsubscribe_page_id": [1,2] }, "calendar": { "time_zone_id":"America/New_York", "start_time": "2020-12-10 10:00:00", "end_time": "2020-12-10 12:00:00", "title": "titre de la réunion", "organizer": { "name": "David", "email": "david@mail.engagelab.com" }, "location": "room208", "description": "bonjour", "alarm_min_before": 5, "participators": [ { "name": "p1", "email": "p1@engagelab.org" }, { "email": "p2@engagelab.org", "name": "p2"}, { "email": "p3@engagelab.org"} ], "action": { "name": "create", "uid": "329r239h239888" } } }, "custom_args": {}, "request_id": "" }'
              
              curl -X POST 'https://email.api.engagelab.cc/v1/mail/sendcalendar' \
--header 'Authorization: Basic MTIyNF94am06MTJkOGIwODVlNjZhZGUyMmNlNGIwOWI5NjQ2YWQ1ODE=' \
--header 'Content-Type: application/json' \
--data '{
  "from": "EngageLab Newsletter <newsletter@mail.engagelab.com>",       
  "to": ["111@qq.com", "222<222@qq.com>"],    
  "body": {
      "cc": ["noreply@mail.engagelab.com"],       
      "bcc": ["intern<intern@mail.engagelab.com>"],         
      "reply_to": ["reply@mail.engagelab.com"], 
      "subject": "%date% Newsletter ", 
      "content": { 
        "html": "<a href=\"https://www.engagelabe.com\">Newsletter %kkk%</a>", 
        "text": "Newsletter %ttt%",   
        "preview_text": "preview_text est ..." 
      },
      "label_id": "1233",  
      "label_name": "",
      "headers": {                   
        "userdefine-tag-location": "us",  
        "userdefine-tag-user": "fashion"
      },
      "settings": {                                                    
        "send_mode": 0,        
        "return_email_id": true,     
        "sandbox": true,        
        "notification": false, 
        "open_tracking": true,                          
        "click_tracking": false,                       
        "unsubscribe_tracking": true,  
        "unsubscribe_page_id": [1,2]
      },
      "calendar": {
        "time_zone_id":"America/New_York",
        "start_time": "2020-12-10 10:00:00",  
        "end_time": "2020-12-10 12:00:00",  
        "title": "titre de la réunion",                                              
        "organizer": {      
          "name": "David",        
          "email": "david@mail.engagelab.com"                    
        },
        "location": "room208",                                         
        "description": "bonjour",                                        
        "alarm_min_before": 5,                                         
        "participators": [  
          { 
            "name": "p1",                                                
            "email": "p1@engagelab.org"
          },                      
          { "email": "p2@engagelab.org", "name": "p2"},
          { "email": "p3@engagelab.org"}
        ],
        "action": {                                                      
          "name": "create",   
          "uid": "329r239h239888"                                    
        }
      }
  },
  "custom_args": {},           
  "request_id": "" 
}'

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-succès

HTTP Status: 200

{ "uid": "20230103T065922Z-uidGen@PC201503200437", "email_ids": [ "1672729159224_15_2942_8497.sc-10_2_226_96-test0$111@qq.com", "1672729159224_15_2942_8497.sc-10_2_226_96-test1$222@qq.com" ], "request_id": "" }
              
              {
    "uid": "20230103T065922Z-uidGen@PC201503200437",
    "email_ids": [
        "1672729159224_15_2942_8497.sc-10_2_226_96-test0$111@qq.com",
        "1672729159224_15_2942_8497.sc-10_2_226_96-test1$222@qq.com"
    ],
    "request_id": ""
}

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-erreur

HTTP Status :400

{ "code": 30801, "message": "From ne peut pas être vide" }
              
              {
    "code": 30801,
    "message": "From ne peut pas être vide"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Envoi MIME

URL

https://email.api.engagelab.cc/v1/mail/send_mime
              
              https://email.api.engagelab.cc/v1/mail/send_mime

            
Afficher ce bloc de code dans la fenêtre flottante

Content-Type :

Content-Type: application/json;charset=utf-8
              
              Content-Type: application/json;charset=utf-8

            
Afficher ce bloc de code dans la fenêtre flottante

Méthode de requête HTTP

POST
              
              POST

            
Afficher ce bloc de code dans la fenêtre flottante

En-tête de la requête

En-tête Type Obligatoire Description
Authorization String oui Basic base64(api_user:api_key)

Paramètres de la requête

Paramètre Type Obligatoire ou non Description
from string non Expéditeur. Exemple : support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Si le nom du produit ou de la marque doit être affiché, utilisez EngageLab Team<support@mail.engagelab.com>. EngageLab Team est le nom d'expéditeur et peut transmettre le nom du produit ou de la marque, <support@mail.engagelab.com> est l'adresse de l'expéditeur.
to array[string] non Destinataire. Jusqu'à 100 adresses supportées. Exemple : ["xjm@hotmail.com","xjm2@gmail.com"]
body object oui Paramètres de l'e-mail
custom_args object non Champs optionnels personnalisés par le client. Taille maximale de 1 Ko. La clé de custom_args ne peut pas contenir le symbole ".".
request_id string non ID de cette demande d'envoi ; 128 caractères maximum.

Body

Paramètre Type Obligatoire ou non Description
cc array[string] non Adresses Cc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
bcc array[string] non Adresses Bcc. Maximum 100 adresses supportées. Valide uniquement si send_mode=1.
reply_to array[string] non Adresses de réponse. Jusqu'à 3 adresses supportées ; si aucune valeur n'est transmise, l'adresse de réponse est from.
subject string non Sujet de l'e-mail. 256 caractères maximum ; supporte les variables, emoji.
content object oui Corps de l'e-mail.
raw_message string oui Contenu de l'e-mail. Format MIME requis.
vars object non Variable. Jusqu'à 1 Mo ; valide si send_mode=0 ou send_mode=1.
label_id string non ID de l'étiquette utilisée pour cet envoi
label_name string non Nom de l'étiquette utilisée pour cet envoi
headers object non Informations d'en-tête de l'e-mail. Jusqu'à 1 Ko.
settings object non Paramètres d'envoi.
send_mode int non Mode d'envoi. 0 = envoi séparé ; 1 = envoi groupé (tous les destinataires sont visibles) ; la valeur de to est l'adresse de la liste. Par défaut : 0
return_email_id boolean non Retourner l'ID de l'e-mail, par défaut true.
sandbox boolean non Utiliser le mode sandbox, par défaut false. Si true, l'e-mail ne sera pas envoyé, seuls les paramètres seront vérifiés.
notification boolean non Utiliser l'accusé de lecture, par défaut false. L'accusé par défaut est from, à utiliser avec la route de réception.
open_tracking boolean non Activer le suivi d'ouverture, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
click_tracking boolean non Activer le suivi de clic, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
unsubscribe_tracking boolean non Activer la désinscription. Valeur système par défaut. Valide si send_mode=0 ou send_mode=1.
unsubscribe_page_id array[int] non Page de désinscription personnalisée, valeur système par défaut. Valide si send_mode=0 ou send_mode=1.

Remarque :

  1. vars est utilisé pour le remplacement de variables dans le contenu de l'e-mail, formaté comme un objet JSON : {"varname":["value1","value2"]}, où varname est la variable dans le contenu de l'e-mail.

  2. Seul l'un des champs label_id ou label_name sera pris en compte. Si les deux sont fournis, label_id prime sur label_name. Si label_name n'existe pas, il sera créé automatiquement.

    Contenu de l'e-mail : Cher %name%, bienvenue sur le service e-mail %sp%. Valeur de vars : {"name":["mike"], "sp":["engagelab"]} Remplacement dans l'e-mail : Cher mike, bienvenue sur le service e-mail engagelab.
                  
                   Contenu de l'e-mail : Cher %name%, bienvenue sur le service e-mail %sp%.
     
     Valeur de vars : {"name":["mike"], "sp":["engagelab"]}
     
     Remplacement dans l'e-mail : Cher mike, bienvenue sur le service e-mail engagelab.
    
                
    Afficher ce bloc de code dans la fenêtre flottante
  3. headers sert à personnaliser les champs d'en-tête de l'e-mail, formaté comme un objet JSON : {"User-Define":"123", "User-Custom":"abc"}. Cependant, la clé ne peut contenir les valeurs suivantes (insensible à la casse) : DKIM-Signature, Received, Sender, Date, From, To, Reply-To, Cc, Bcc, Subject, Content-Type, Content-Transfer-Encoding, X-SENDCLOUD-UUID, X-SENDCLOUD-LOG, X-Remote-Web-IP, X-SMTPAPI, Return-Path, X-SENDCLOUD-LOG-NEW

  4. custom_args est un contenu personnalisé défini par le client, intégré dans l'en-tête de l'e-mail ; il sera retourné dans les données WebHook ultérieures.

  5. request_id est utilisé pour éviter les soumissions en double, valable 1 heure. En cas de soumission répétée dans l'heure, le résultat de la requête précédente sera retourné.

  6. La taille totale de l'e-mail ne peut dépasser 70 Mo.

Exemple de requête

curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization: YXBpX3VzZXI6YXBpX2tleQ==' --data '{ "from": "EngageLab Newsletter <newsletter@mail.engagelab.com>", "to": ["111@qq.com", "222<222@qq.com>"], "body": { "reply_to": ["reply@mail.engagelab.com"], "subject": "%date% Newsletter ", "content": { "raw_message": "Date: Fri, 8 Aug 2025 18:33:00 +0800 (CST)\r\nFrom: TEST <test@trip.com>\r\nReply-To: test_reply@trip.com\r\nTo: fan_tang@trip.com\r\nMessage-ID:....... ", }, "vars": { }, "label_id": 100233, //ou label_name="test" "headers": {}, "settings": { "send_mode": 0, "return_email_id": true, "sandbox": false, "notification": false, "open_tracking": true, "click_tracking": false, "unsubscribe_tracking": true, "unsubscribe_page_id": [1,2] } }, "custom_args": {}, "request_id": "" }' 'https://email.api.engagelab.cc/v1/mail/send_mime'
              
              curl -X POST -H 'Content-Type: application/json; charset=utf-8' 
     -H 'Authorization: YXBpX3VzZXI6YXBpX2tleQ==' 
     --data '{
  "from": "EngageLab Newsletter <newsletter@mail.engagelab.com>", 
  "to": ["111@qq.com", "222<222@qq.com>"],
  "body": {          
      "reply_to": ["reply@mail.engagelab.com"],                         
      "subject": "%date% Newsletter ",                                       
      "content": {                                                     
        "raw_message": "Date: Fri, 8 Aug 2025 18:33:00 +0800 (CST)\r\nFrom: TEST <test@trip.com>\r\nReply-To: test_reply@trip.com\r\nTo: fan_tang@trip.com\r\nMessage-ID:....... ",         
         },
      "vars": { },
      "label_id": 100233, //ou label_name="test"
      "headers": {},
      "settings": {                 
        "send_mode": 0, 
        "return_email_id": true,  
        "sandbox": false,
        "notification": false,
        "open_tracking": true,                                           
        "click_tracking": false,                                         
        "unsubscribe_tracking": true,                              
        "unsubscribe_page_id": [1,2]
      }
  },
  "custom_args": {},           
  "request_id": "" 
}'  'https://email.api.engagelab.cc/v1/mail/send_mime' 

            
Afficher ce bloc de code dans la fenêtre flottante

Exemple de réponse

Réponse-succès

HTTP Status: 200

{ "email_ids":[ "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$111@qq.com", "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$222@qq.com"], "request_id":null }
              
              {
"email_ids":[
      "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$111@qq.com",
      "1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$222@qq.com"],
"request_id":null
}

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse-erreur

HTTP Status :400

{ "code": 30893, "message": "Les custom_args doivent être au format json" }
              
              {
    "code": 30893,
    "message": "Les custom_args doivent être au format json"
}

            
Afficher ce bloc de code dans la fenêtre flottante
icon
Contactez-nous