EngageLab Email CLI
EngageLab Email CLI aide les agents et les développeurs à gérer les e-mails entrants et sortants depuis la ligne de commande.
Utilisez-le pour :
- Lister les boîtes aux lettres disponibles
- Lister et inspecter les fils de discussion e-mail
- Lire les messages entrants
- Interroger les nouveaux messages entrants
- Répondre aux messages entrants
- Envoyer de nouveaux e-mails
Installation
npm install -g @engagelabemail/cli
Vérifiez la version installée :
engagelab-email-cli -V
Lorsque vous exécutez une commande qui se connecte à EngageLab Email, le CLI vérifie si une version plus récente du CLI est disponible. Si une mise à jour est requise, il s'arrête et affiche la commande de mise à jour :
npm install -g @engagelabemail/cli@latest
Configuration
Gérer la configuration enregistrée
Utilisez le groupe de commandes config pour enregistrer, inspecter ou effacer les identifiants locaux.
Enregistrez votre adresse de service et votre clé secrète localement :
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
Afficher la configuration enregistrée :
engagelab-email-cli config list
Effacer la configuration enregistrée :
engagelab-email-cli config clear
config list masque la clé secrète.
Utiliser des identifiants globaux avec toute commande métier
Vous n'avez pas besoin d'enregistrer les identifiants d'abord. Vous pouvez passer --base-url et --secret-key directement avant toute commande métier telle que threads ... ou emails .... Ces identifiants de ligne de commande s'appliquent uniquement à la commande actuelle et ne remplacent pas la configuration enregistrée.
Exemple :
engagelab-email-cli --base-url http://localhost:8087 --secret-key sk_xxx threads get thread-1
Démarrage rapide
Lister les messages entrants récents :
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20
Lire un message entrant :
engagelab-email-cli emails receiving get <message-uid>
Afficher le fil de discussion complet autour d'un message :
engagelab-email-cli threads messages <thread-id> --include-content --limit 10
Répondre à un message entrant :
engagelab-email-cli emails receiving reply <message-uid> --subject "Re: Hello" --text "Thanks, we received your message."
Envoyer un nouvel e-mail :
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Hello" \
--text "Hello from EngageLab Email CLI."
Pour les scripts ou les agents, ajoutez --json pour obtenir une sortie lisible par machine :
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20 --json
Commandes
config set
Enregistrer la configuration locale.
| Option | Description |
|---|---|
--base-url <url> |
Adresse du service. Par défaut ENGAGELAB_EMAIL_BASE_URL si défini. |
--secret-key <key> |
Clé secrète. Par défaut ENGAGELAB_EMAIL_SECRET_KEY si défini. |
Exemple :
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
config list
Afficher la configuration enregistrée.
Exemple :
engagelab-email-cli config list
config clear
Effacer la configuration locale enregistrée, y compris baseUrl et secretKey.
Exemple :
engagelab-email-cli config clear
mailbox list
Lister les boîtes aux lettres disponibles.
| Option | Description |
|---|---|
--mailbox <address> |
Filtrer par adresse de boîte aux lettres. |
--page-no <number> |
Numéro de page. |
--page-size <number> |
Taille de page. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli mailbox list --page-size 20
threads list
Lister les fils de discussion e-mail.
| Option | Description |
|---|---|
--mailbox-id <id> |
Filtrer par ID de boîte aux lettres. |
--subject <text> |
Rechercher par sujet normalisé. |
--participant <email> |
Rechercher par participant. |
--start-time <timestamp> |
Horodatage de début du dernier message en millisecondes. |
--end-time <timestamp> |
Horodatage de fin du dernier message en millisecondes. |
--page-no <number> |
Numéro de page. |
--page-size <number> |
Taille de page. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli threads list --subject refund --page-no 1 --page-size 20
threads get <thread-id>
Afficher un seul fil de discussion.
| Argument/Option | Description |
|---|---|
<thread-id> |
ID du fil de discussion. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli threads get b0d9d6a1-1d17-4df8-8245-c807d7e8cb50
threads messages <thread-id>
Lister les messages d'un fil de discussion.
| Argument/Option | Description |
|---|---|
<thread-id> |
ID du fil de discussion. |
--limit <number> |
Limite de messages. |
--include-content |
Inclure texte/html/en-têtes/pièces jointes. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli threads messages b0d9d6a1-1d17-4df8-8245-c807d7e8cb50 --include-content --json
emails receiving list
Lister les messages entrants.
| Option | Description |
|---|---|
--mailbox-id <id> |
Filtrer par ID de boîte aux lettres. |
--keyword <text> |
Mot-clé de recherche. |
--page-no <number> |
Numéro de page. |
--page-size <number> |
Taille de page. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli emails receiving list --keyword refund --page-size 20
emails receiving get <message-uid>
Afficher un seul message entrant.
| Argument/Option | Description |
|---|---|
<message-uid> |
UID du message. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli emails receiving get 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 --json
emails receiving listen
Interroger les nouveaux messages entrants. Cette commande continue de s'exécuter jusqu'à ce que vous l'arrêtiez avec Ctrl+C.
| Option | Description |
|---|---|
--after <id> |
ID de curseur du résultat précédent. |
--limit <number> |
Limite de messages. |
--interval <seconds> |
Intervalle d'interrogation en secondes (minimum 2). |
--json |
Sortie d'un message JSON par ligne. |
Exemple :
engagelab-email-cli emails receiving listen --limit 10 --interval 5 --json
Continuer à partir d'un curseur connu :
engagelab-email-cli emails receiving listen --after 1500 --limit 10 --interval 5 --json
emails receiving reply <message-uid>
Répondre à un message entrant.
| Argument/Option | Description |
|---|---|
<message-uid> |
UID du message auquel répondre. |
--subject <text> |
Objet de la réponse. |
--text <text> |
Corps en texte brut. |
--html <html> |
Corps HTML. |
--text-file <path> |
Lire le corps en texte brut depuis un fichier. |
--html-file <path> |
Lire le corps HTML depuis un fichier. |
--cc <email> |
Adresse CC. Peut être répétée. |
--bcc <email> |
Adresse BCC. Peut être répétée. |
--reply-to <email> |
Adresse Reply-To. Peut être répétée. |
--preview-text <text> |
Texte d'aperçu de l'e-mail. |
--attachment <path> |
Joindre un fichier local. Peut être répété. Nécessite --disposition. Jusqu'à 10 fichiers, 10 Mo au total après encodage base64 (environ 7,5 Mo de fichiers bruts). |
--disposition <value> |
Type de pièce jointe : attachment ou inline. Requis lors de l'utilisation de --attachment. Peut être répété ou fourni une fois pour toutes les pièces jointes. |
--content-id <id> |
Content-ID pour les pièces jointes d'image en ligne. Requis lorsque --disposition inline est utilisé avec une pièce jointe d'image. |
--sandbox |
Envoyer en mode sandbox. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli emails receiving reply 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 \
--subject "Re: Refund update" \
--text "Thanks, we received your message." \
--attachment ./receipt.pdf \
--disposition attachment
emails send
Envoyer un nouvel e-mail.
| Option | Description |
|---|---|
--mailbox-id <id> |
ID de la boîte aux lettres. |
--from <email> |
Adresse e-mail de l'expéditeur. |
--to <email> |
Adresse e-mail du destinataire. Peut être répétée. |
--subject <text> |
Objet de l'e-mail. |
--text <text> |
Corps en texte brut. |
--html <html> |
Corps HTML. |
--text-file <path> |
Lire le corps en texte brut depuis un fichier. |
--html-file <path> |
Lire le corps HTML depuis un fichier. |
--cc <email> |
Adresse CC. Peut être répétée. |
--bcc <email> |
Adresse BCC. Peut être répétée. |
--reply-to <email> |
Adresse Reply-To. Peut être répétée. |
--preview-text <text> |
Texte d'aperçu de l'e-mail. |
--attachment <path> |
Joindre un fichier local. Peut être répété. Nécessite --disposition. Jusqu'à 10 fichiers, 10 Mo au total après encodage base64 (environ 7,5 Mo de fichiers bruts). |
--disposition <value> |
Type de pièce jointe : attachment ou inline. Requis lors de l'utilisation de --attachment. Peut être répété ou fourni une fois pour toutes les pièces jointes. |
--content-id <id> |
Content-ID pour les pièces jointes d'image en ligne. Requis lorsque --disposition inline est utilisé avec une pièce jointe d'image. |
--sandbox |
Envoyer en mode sandbox. |
--json |
Sortie JSON brute. |
Exemple :
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--to bob@example.com \
--subject "Refund update" \
--text "Your refund has been processed." \
--attachment ./receipt.pdf \
--disposition attachment
Envoyer du HTML avec une pièce jointe d'image en ligne :
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Inline image" --html "<p>Logo <img src=cid:image_1000></p>" --attachment ./logo.png --disposition inline --content-id image_1000
Les métadonnées des pièces jointes peuvent être transmises de deux manières compatibles. La forme recommandée lie les métadonnées à chaque chemin de fichier, ce qui évite toute ambiguïté avec plusieurs pièces jointes :
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Mixed attachments" --html "<p>Logo <img src=cid:image_1000></p>" --attachment "./receipt.pdf;disposition=attachment" --attachment "./logo.png;disposition=inline;content_id=image_1000"
La forme traditionnelle à options séparées est également prise en charge pour la compatibilité :
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Inline image" --html "<p>Logo <img src=cid:image_1000></p>" --attachment ./logo.png --disposition inline --content-id image_1000
Ne mélangez pas les métadonnées de pièce jointe en ligne (path;disposition=...) avec --disposition ou --content-id dans la même commande.
Envoyer du contenu HTML depuis un fichier :
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Monthly report" \
--html-file ./report.html
Sortie
Par défaut, le CLI imprime des tableaux ou des résumés lisibles et affiche un court message de chargement pendant l'exécution des requêtes.
Utilisez --json lorsqu'un autre outil ou script doit analyser le résultat.
engagelab-email-cli emails receiving get <message-uid> --json
emails receiving listen --json imprime un objet JSON de message par ligne.
Erreurs
Les erreurs lisibles par l'homme incluent le code d'erreur métier lorsque l'API en renvoie un, par exemple [100101] unauthorized.
Les erreurs --json utilisent cette structure :
{
"error": {
"code": "auth_error",
"errorCode": 100101,
"message": "unauthorized"
}
}
Codes de sortie :
| Code de sortie | Signification |
|---|---|
1 |
Erreur de paramètre ou configuration manquante |
2 |
Échec d'authentification |
3 |
Ressource non trouvée |
4 |
Conflit ou état en cours |
5 |
Erreur serveur ou erreur réseau |










