EngageLab Email CLI
EngageLab Email CLI hilft Agenten und Entwicklern, eingehende und ausgehende E-Mails über die Kommandozeile zu verwalten.
Verwenden Sie es für:
- Auflisten verfügbarer Postfächer
- Auflisten und Untersuchen von E-Mail-Threads
- Lesen eingehender Nachrichten
- Abfragen neuer eingehender Nachrichten
- Antworten auf eingehende Nachrichten
- Senden neuer E-Mails
Installation
npm install -g @engagelabemail/cli
Überprüfen Sie die installierte Version:
engagelab-email-cli -V
Wenn Sie einen Befehl ausführen, der eine Verbindung zu EngageLab Email herstellt, prüft die CLI, ob eine neuere CLI-Version verfügbar ist. Wenn ein Update erforderlich ist, wird der Vorgang angehalten und der Update-Befehl angezeigt:
npm install -g @engagelabemail/cli@latest
Konfiguration
Gespeicherte Konfiguration verwalten
Verwenden Sie die config-Befehlsgruppe, um lokale Anmeldeinformationen zu speichern, anzuzeigen oder zu löschen.
Speichern Sie Ihre Dienstadresse und den Secret Key lokal:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
Zeigen Sie die gespeicherte Konfiguration an:
engagelab-email-cli config list
Löschen Sie die gespeicherte Konfiguration:
engagelab-email-cli config clear
config list maskiert den Secret Key.
Globale Anmeldeinformationen mit beliebigen Geschäftsbefehlen verwenden
Sie müssen Anmeldeinformationen nicht zuerst speichern. Sie können --base-url und --secret-key direkt vor jedem Geschäftsbefehl wie threads ... oder emails ... übergeben. Diese Kommandozeilen-Anmeldeinformationen gelten nur für den aktuellen Befehl und überschreiben die gespeicherte Konfiguration nicht.
Beispiel:
engagelab-email-cli --base-url http://localhost:8087 --secret-key sk_xxx threads get thread-1
Schnellstart
Listen Sie kürzlich eingehende Nachrichten auf:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20
Lesen Sie eine eingehende Nachricht:
engagelab-email-cli emails receiving get <message-uid>
Zeigen Sie den vollständigen Thread zu einer Nachricht an:
engagelab-email-cli threads messages <thread-id> --include-content --limit 10
Antworten Sie auf eine eingehende Nachricht:
engagelab-email-cli emails receiving reply <message-uid> --subject "Re: Hello" --text "Thanks, we received your message."
Senden Sie eine neue E-Mail:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Hello" \
--text "Hello from EngageLab Email CLI."
Für Skripte oder Agenten fügen Sie --json hinzu, um maschinenlesbare Ausgabe zu erhalten:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20 --json
Befehle
config set
Speichern Sie die lokale Konfiguration.
| Option | Beschreibung |
|---|---|
--base-url <url> |
Dienstadresse. Standardmäßig ENGAGELAB_EMAIL_BASE_URL, falls gesetzt. |
--secret-key <key> |
Secret Key. Standardmäßig ENGAGELAB_EMAIL_SECRET_KEY, falls gesetzt. |
Beispiel:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
config list
Zeigen Sie die gespeicherte Konfiguration an.
Beispiel:
engagelab-email-cli config list
config clear
Löschen Sie die gespeicherte lokale Konfiguration, einschließlich baseUrl und secretKey.
Beispiel:
engagelab-email-cli config clear
mailbox list
Listen Sie verfügbare Postfächer auf.
| Option | Beschreibung |
|---|---|
--mailbox <address> |
Nach Postfachadresse filtern. |
--page-no <number> |
Seitennummer. |
--page-size <number> |
Seitengröße. |
--json |
Rohes JSON ausgeben. |
Beispiel:
engagelab-email-cli mailbox list --page-size 20
threads list
Listen Sie E-Mail-Threads auf.
| Option | Beschreibung |
|---|---|
--mailbox-id <id> |
Nach Postfach-ID filtern. |
--subject <text> |
Nach normalisiertem Betreff suchen. |
--participant <email> |
Nach Teilnehmer suchen. |
--start-time <timestamp> |
Startzeitstempel der neuesten Nachricht in Millisekunden. |
--end-time <timestamp> |
Endzeitstempel der neuesten Nachricht in Millisekunden. |
--page-no <number> |
Seitennummer. |
--page-size <number> |
Seitengröße. |
--json |
Rohes JSON ausgeben. |
Beispiel:
engagelab-email-cli threads list --subject refund --page-no 1 --page-size 20
threads get <thread-id>
Zeigen Sie einen einzelnen Thread an.
| Argument/Option | Beschreibung |
|---|---|
<thread-id> |
Thread-ID. |
--json |
Rohes JSON ausgeben. |
Beispiel:
engagelab-email-cli threads get b0d9d6a1-1d17-4df8-8245-c807d7e8cb50
threads messages <thread-id>
Listen Sie Nachrichten in einem Thread auf.
| Argument/Option | Beschreibung |
|---|---|
<thread-id> |
Thread-ID. |
--limit <number> |
Nachrichtenlimit. |
--include-content |
Text/HTML/Header/Anhänge einschließen. |
--json |
Rohes JSON ausgeben. |
Beispiel:
engagelab-email-cli threads messages b0d9d6a1-1d17-4df8-8245-c807d7e8cb50 --include-content --json
emails receiving list
Listen Sie eingehende Nachrichten auf.
| Option | Beschreibung |
|---|---|
--mailbox-id <id> |
Nach Postfach-ID filtern. |
--keyword <text> |
Suchbegriff. |
--page-no <number> |
Seitennummer. |
--page-size <number> |
Seitengröße. |
--json |
Rohes JSON ausgeben. |
Beispiel:
engagelab-email-cli emails receiving list --keyword refund --page-size 20
emails receiving get <message-uid>
Zeigen Sie eine einzelne eingehende Nachricht an.
| Argument/Option | Beschreibung |
|---|---|
<message-uid> |
Nachrichten-UID. |
--json |
Rohes JSON ausgeben. |
Beispiel:
engagelab-email-cli emails receiving get 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 --json
emails receiving listen
Fragen Sie neue eingehende Nachrichten ab. Dieser Befehl läuft weiter, bis Sie ihn mit Ctrl+C stoppen.
| Option | Beschreibung |
|---|---|
--after <id> |
Cursor-ID aus dem vorherigen Ergebnis. |
--limit <number> |
Nachrichtenlimit. |
--interval <seconds> |
Abfrageintervall in Sekunden (Minimum 2). |
--json |
Ein JSON-Nachrichtenobjekt pro Zeile ausgeben. |
Beispiel:
engagelab-email-cli emails receiving listen --limit 10 --interval 5 --json
Von einem bekannten Cursor fortsetzen:
engagelab-email-cli emails receiving listen --after 1500 --limit 10 --interval 5 --json
emails receiving reply <message-uid>
Antworten Sie auf eine eingehende Nachricht.
| Argument/Option | Beschreibung |
|---|---|
<message-uid> |
Nachrichten-UID, auf die geantwortet werden soll. |
--subject <text> |
Betreff der Antwort. |
--text <text> |
Klartext-Textkörper. |
--html <html> |
HTML-Textkörper. |
--text-file <path> |
Klartext-Textkörper aus Datei lesen. |
--html-file <path> |
HTML-Textkörper aus Datei lesen. |
--cc <email> |
CC-Adresse. Kann wiederholt werden. |
--bcc <email> |
BCC-Adresse. Kann wiederholt werden. |
--reply-to <email> |
Reply-To-Adresse. Kann wiederholt werden. |
--preview-text <text> |
E-Mail-Vorschaumeldung. |
--attachment <path> |
Lokale Datei anhängen. Kann wiederholt werden. Erfordert --disposition. Maximal 10 Dateien, insgesamt 10MB nach Base64-Kodierung (ca. 7.5MB Rohdateien). |
--disposition <value> |
Anhangsart: attachment oder inline. Erforderlich bei Verwendung von --attachment. Kann wiederholt werden oder einmal für alle Anhänge angegeben werden. |
--content-id <id> |
Content-ID für Inline-Bildanhänge. Erforderlich bei Verwendung von --disposition inline mit einem Bildanhang. |
--sandbox |
Im Sandbox-Modus senden. |
--json |
Rohes JSON ausgeben. |
Beispiel:
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
Senden Sie eine neue E-Mail.
| Option | Beschreibung |
|---|---|
--mailbox-id <id> |
Postfach-ID. |
--from <email> |
Absender-E-Mail-Adresse. |
--to <email> |
Empfänger-E-Mail-Adresse. Kann wiederholt werden. |
--subject <text> |
E-Mail-Betreff. |
--text <text> |
Klartext-Textkörper. |
--html <html> |
HTML-Textkörper. |
--text-file <path> |
Klartext-Textkörper aus Datei lesen. |
--html-file <path> |
HTML-Textkörper aus Datei lesen. |
--cc <email> |
CC-Adresse. Kann wiederholt werden. |
--bcc <email> |
BCC-Adresse. Kann wiederholt werden. |
--reply-to <email> |
Reply-To-Adresse. Kann wiederholt werden. |
--preview-text <text> |
E-Mail-Vorschaumeldung. |
--attachment <path> |
Lokale Datei anhängen. Kann wiederholt werden. Erfordert --disposition. Maximal 10 Dateien, insgesamt 10MB nach Base64-Kodierung (ca. 7.5MB Rohdateien). |
--disposition <value> |
Anhangsart: attachment oder inline. Erforderlich bei Verwendung von --attachment. Kann wiederholt werden oder einmal für alle Anhänge angegeben werden. |
--content-id <id> |
Content-ID für Inline-Bildanhänge. Erforderlich bei Verwendung von --disposition inline mit einem Bildanhang. |
--sandbox |
Im Sandbox-Modus senden. |
--json |
Rohes JSON ausgeben. |
Beispiel:
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
HTML mit einem Inline-Bildanhang senden:
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
Anhangsmetadaten können auf zwei kompatible Weisen übergeben werden. Die empfohlene Form bindet Metadaten an jeden Dateipfad, was Mehrdeutigkeiten bei mehreren Anhängen vermeidet:
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"
Die ältere Form mit getrennten Optionen wird ebenfalls aus Kompatibilitätsgründen unterstützt:
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
Mischen Sie keine Inline-Anhangsmetadaten (path;disposition=...) mit --disposition oder --content-id im selben Befehl.
HTML-Inhalt aus einer Datei senden:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Monthly report" \
--html-file ./report.html
Ausgabe
Standardmäßig gibt die CLI lesbare Tabellen oder Zusammenfassungen aus und zeigt eine kurze Lademeldung an, während Anfragen ausgeführt werden.
Verwenden Sie --json, wenn ein anderes Tool oder Skript das Ergebnis parsen muss.
engagelab-email-cli emails receiving get <message-uid> --json
emails receiving listen --json gibt ein Nachrichten-JSON-Objekt pro Zeile aus.
Fehler
Menschenlesbare Fehler enthalten den Geschäftsfehlercode, wenn die API einen zurückgibt, z. B. [100101] unauthorized.
--json-Fehler verwenden diese Struktur:
{
"error": {
"code": "auth_error",
"errorCode": 100101,
"message": "unauthorized"
}
}
Exit-Codes:
| Exit-Code | Bedeutung |
|---|---|
1 |
Parameterfehler oder fehlende Konfiguration |
2 |
Authentifizierungsfehler |
3 |
Ressource nicht gefunden |
4 |
Konflikt oder laufender Zustand |
5 |
Serverfehler oder Netzwerkfehler |










