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
Content-Type :
Content-Type: application/json;charset=utf-8
Méthode de requête HTTP
POST
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 :
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.
Html et plain ne peuvent pas être vides en même temps.
Preview_text ne peut être utilisé qu'avec html. Si aucune valeur html n'est transmise, preview_text n'aura pas d'effet.
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 flottanteLe paramètre
dynamic_varssert 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 flottanteVous 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é.
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-NEWSi 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 flottanteLes 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 ".".
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é.
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'
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":""
}
Réponse-erreur
HTTP Status :400
{
"code": 30801,
"message": "From ne peut pas être vide"
}
Envoi à une liste d'adresses (send_mode=2)
Réponse-succès
HTTP Status: 200
{
"task_id":[102923],
"request_id":""
}
Réponse-erreur
HTTP Status :400
{
"code": 30801,
"message": "From ne peut pas être vide"
}
Envoi par template
URL
https://email.api.engagelab.cc/v1/mail/sendtemplate
Content-Type :
Content-Type: application/json; charset=utf-8
Méthode de requête HTTP
POST
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 :
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.
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 flottanteLe paramètre
dynamic_varssert 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 flottanteVous 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é.
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-NEWSi 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 flottanteLes 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 ".".
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é.
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% .
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": ""
}'
#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":""
}
Réponse-erreur
HTTP Status :404
not found
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"
}}'
Réponse-succès
HTTP Status: 200
{
"task_id":[102923],
"request_id":""
}
Réponse-erreur
HTTP Status :404
not found
Envoi de calendrier de réunion
URL
https://email.api.engagelab.cc/v1/mail/sendcalendar
Content-Type :
Content-Type: application/json; charset=utf-8
Méthode de requête HTTP
POST
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. |
| 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. |
| 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 :
Html et plain ne peuvent pas être vides en même temps.
Preview_text ne peut être utilisé qu'avec html. Si aucune valeur html n'est transmise, preview_text n'aura pas d'effet.
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 flottanteLe paramètre
dynamic_varssert 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 flottanteVous 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é.
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-NEWSi 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 flottanteLes 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 ".".
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é.
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": ""
}'
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": ""
}
Réponse-erreur
HTTP Status :400
{
"code": 30801,
"message": "From ne peut pas être vide"
}
Envoi MIME
URL
https://email.api.engagelab.cc/v1/mail/send_mime
Content-Type :
Content-Type: application/json;charset=utf-8
Méthode de requête HTTP
POST
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 :
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.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 flottanteheaders 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-NEWcustom_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.
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é.
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'
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
}
Réponse-erreur
HTTP Status :400
{
"code": 30893,
"message": "Les custom_args doivent être au format json"
}

