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
              
              npm install -g @engagelabemail/cli

            
Afficher ce bloc de code dans la fenêtre flottante

Vérifiez la version installée :

engagelab-email-cli -V
              
              engagelab-email-cli -V

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              npm install -g @engagelabemail/cli@latest

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx

            
Afficher ce bloc de code dans la fenêtre flottante

Afficher la configuration enregistrée :

engagelab-email-cli config list
              
              engagelab-email-cli config list

            
Afficher ce bloc de code dans la fenêtre flottante

Effacer la configuration enregistrée :

engagelab-email-cli config clear
              
              engagelab-email-cli config clear

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli --base-url http://localhost:8087 --secret-key sk_xxx threads get thread-1

            
Afficher ce bloc de code dans la fenêtre flottante

Démarrage rapide

Lister les messages entrants récents :

engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20
              
              engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20

            
Afficher ce bloc de code dans la fenêtre flottante

Lire un message entrant :

engagelab-email-cli emails receiving get <message-uid>
              
              engagelab-email-cli emails receiving get <message-uid>

            
Afficher ce bloc de code dans la fenêtre flottante

Afficher le fil de discussion complet autour d'un message :

engagelab-email-cli threads messages <thread-id> --include-content --limit 10
              
              engagelab-email-cli threads messages <thread-id> --include-content --limit 10

            
Afficher ce bloc de code dans la fenêtre flottante

Répondre à un message entrant :

engagelab-email-cli emails receiving reply <message-uid> --subject "Re: Hello" --text "Thanks, we received your message."
              
              engagelab-email-cli emails receiving reply <message-uid> --subject "Re: Hello" --text "Thanks, we received your message."

            
Afficher ce bloc de code dans la fenêtre flottante

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."
              
              engagelab-email-cli emails send \
  --mailbox-id 1001 \
  --to alice@example.com \
  --subject "Hello" \
  --text "Hello from EngageLab Email CLI."

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20 --json

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx

            
Afficher ce bloc de code dans la fenêtre flottante

config list

Afficher la configuration enregistrée.

Exemple :

engagelab-email-cli config list
              
              engagelab-email-cli config list

            
Afficher ce bloc de code dans la fenêtre flottante

config clear

Effacer la configuration locale enregistrée, y compris baseUrl et secretKey.

Exemple :

engagelab-email-cli config clear
              
              engagelab-email-cli config clear

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli mailbox list --page-size 20

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli threads list --subject refund --page-no 1 --page-size 20

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli threads get b0d9d6a1-1d17-4df8-8245-c807d7e8cb50

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli threads messages b0d9d6a1-1d17-4df8-8245-c807d7e8cb50 --include-content --json

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli emails receiving list --keyword refund --page-size 20

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli emails receiving get 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 --json

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli emails receiving listen --limit 10 --interval 5 --json

            
Afficher ce bloc de code dans la fenêtre flottante

Continuer à partir d'un curseur connu :

engagelab-email-cli emails receiving listen --after 1500 --limit 10 --interval 5 --json
              
              engagelab-email-cli emails receiving listen --after 1500 --limit 10 --interval 5 --json

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              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

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              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

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              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

            
Afficher ce bloc de code dans la fenêtre flottante

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"
              
              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"

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              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

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli emails send \
  --mailbox-id 1001 \
  --to alice@example.com \
  --subject "Monthly report" \
  --html-file ./report.html

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              engagelab-email-cli emails receiving get <message-uid> --json

            
Afficher ce bloc de code dans la fenêtre flottante

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" } }
              
              {
  "error": {
    "code": "auth_error",
    "errorCode": 100101,
    "message": "unauthorized"
  }
}

            
Afficher ce bloc de code dans la fenêtre flottante

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
Icon Solid Transparent White Qiyu
Contactez-nous