EngageLab Email CLI
EngageLab Email CLI ayuda a los agentes y desarrolladores a trabajar con correos electrónicos entrantes y salientes desde la línea de comandos.
Úsalo para:
- Listar buzones disponibles
- Listar e inspeccionar hilos de correo
- Leer mensajes entrantes
- Consultar nuevos mensajes entrantes
- Responder a mensajes entrantes
- Enviar nuevos correos
Instalación
npm install -g @engagelabemail/cli
Comprueba la versión instalada:
engagelab-email-cli -V
Cuando ejecutas un comando que se conecta a EngageLab Email, el CLI comprueba si hay una versión más reciente del CLI disponible. Si se requiere una actualización, se detiene y muestra el comando de actualización:
npm install -g @engagelabemail/cli@latest
Configuración
Gestionar la configuración guardada
Usa el grupo de comandos config para guardar, inspeccionar o borrar credenciales locales.
Guarda tu dirección de servicio y clave secreta localmente:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
Ver la configuración guardada:
engagelab-email-cli config list
Borrar la configuración guardada:
engagelab-email-cli config clear
config list enmascara la clave secreta.
Usar credenciales globales con cualquier comando de negocio
No tienes que guardar las credenciales primero. Puedes pasar --base-url y --secret-key directamente antes de cualquier comando de negocio como threads ... o emails .... Estas credenciales de línea de comandos se aplican solo al comando actual y no sobrescriben la configuración guardada.
Ejemplo:
engagelab-email-cli --base-url http://localhost:8087 --secret-key sk_xxx threads get thread-1
Inicio rápido
Listar mensajes entrantes recientes:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20
Leer un mensaje entrante:
engagelab-email-cli emails receiving get <message-uid>
Ver el hilo completo alrededor de un mensaje:
engagelab-email-cli threads messages <thread-id> --include-content --limit 10
Responder a un mensaje entrante:
engagelab-email-cli emails receiving reply <message-uid> --subject "Re: Hello" --text "Thanks, we received your message."
Enviar un nuevo correo:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Hello" \
--text "Hello from EngageLab Email CLI."
Para scripts o agentes, añade --json para obtener salida legible por máquina:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20 --json
Comandos
config set
Guardar la configuración local.
| Opción | Descripción |
|---|---|
--base-url <url> |
Dirección del servicio. Por defecto es ENGAGELAB_EMAIL_BASE_URL si está configurada. |
--secret-key <key> |
Clave secreta. Por defecto es ENGAGELAB_EMAIL_SECRET_KEY si está configurada. |
Ejemplo:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
config list
Mostrar la configuración guardada.
Ejemplo:
engagelab-email-cli config list
config clear
Borrar la configuración local guardada, incluyendo baseUrl y secretKey.
Ejemplo:
engagelab-email-cli config clear
mailbox list
Listar buzones disponibles.
| Opción | Descripción |
|---|---|
--mailbox <address> |
Filtrar por dirección de buzón. |
--page-no <number> |
Número de página. |
--page-size <number> |
Tamaño de página. |
--json |
Salida JSON crudo. |
Ejemplo:
engagelab-email-cli mailbox list --page-size 20
threads list
Listar hilos de correo.
| Opción | Descripción |
|---|---|
--mailbox-id <id> |
Filtrar por ID de buzón. |
--subject <text> |
Buscar por asunto normalizado. |
--participant <email> |
Buscar por participante. |
--start-time <timestamp> |
Marca de tiempo de inicio del mensaje más reciente en milisegundos. |
--end-time <timestamp> |
Marca de tiempo de fin del mensaje más reciente en milisegundos. |
--page-no <number> |
Número de página. |
--page-size <number> |
Tamaño de página. |
--json |
Salida JSON crudo. |
Ejemplo:
engagelab-email-cli threads list --subject refund --page-no 1 --page-size 20
threads get <thread-id>
Mostrar un solo hilo.
| Argumento/Opción | Descripción |
|---|---|
<thread-id> |
ID del hilo. |
--json |
Salida JSON crudo. |
Ejemplo:
engagelab-email-cli threads get b0d9d6a1-1d17-4df8-8245-c807d7e8cb50
threads messages <thread-id>
Listar mensajes en un hilo.
| Argumento/Opción | Descripción |
|---|---|
<thread-id> |
ID del hilo. |
--limit <number> |
Límite de mensajes. |
--include-content |
Incluir texto/html/cabeceras/adjuntos. |
--json |
Salida JSON crudo. |
Ejemplo:
engagelab-email-cli threads messages b0d9d6a1-1d17-4df8-8245-c807d7e8cb50 --include-content --json
emails receiving list
Listar mensajes entrantes.
| Opción | Descripción |
|---|---|
--mailbox-id <id> |
Filtrar por ID de buzón. |
--keyword <text> |
Palabra clave de búsqueda. |
--page-no <number> |
Número de página. |
--page-size <number> |
Tamaño de página. |
--json |
Salida JSON crudo. |
Ejemplo:
engagelab-email-cli emails receiving list --keyword refund --page-size 20
emails receiving get <message-uid>
Mostrar un solo mensaje entrante.
| Argumento/Opción | Descripción |
|---|---|
<message-uid> |
UID del mensaje. |
--json |
Salida JSON crudo. |
Ejemplo:
engagelab-email-cli emails receiving get 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 --json
emails receiving listen
Consultar nuevos mensajes entrantes. Este comando sigue ejecutándose hasta que lo detengas con Ctrl+C.
| Opción | Descripción |
|---|---|
--after <id> |
ID de cursor del resultado anterior. |
--limit <number> |
Límite de mensajes. |
--interval <seconds> |
Intervalo de consulta en segundos (mínimo 2). |
--json |
Salida de un mensaje JSON por línea. |
Ejemplo:
engagelab-email-cli emails receiving listen --limit 10 --interval 5 --json
Continuar desde un cursor conocido:
engagelab-email-cli emails receiving listen --after 1500 --limit 10 --interval 5 --json
emails receiving reply <message-uid>
Responder a un mensaje entrante.
| Argumento/Opción | Descripción |
|---|---|
<message-uid> |
UID del mensaje al que responder. |
--subject <text> |
Asunto de la respuesta. |
--text <text> |
Cuerpo de texto plano. |
--html <html> |
Cuerpo HTML. |
--text-file <path> |
Leer cuerpo de texto plano desde archivo. |
--html-file <path> |
Leer cuerpo HTML desde archivo. |
--cc <email> |
Dirección CC. Se puede repetir. |
--bcc <email> |
Dirección BCC. Se puede repetir. |
--reply-to <email> |
Dirección Reply-To. Se puede repetir. |
--preview-text <text> |
Texto de vista previa del correo. |
--attachment <path> |
Adjuntar archivo local. Se puede repetir. Requiere --disposition. Hasta 10 archivos, 10MB total después de la codificación base64 (aproximadamente 7.5MB de archivos sin procesar). |
--disposition <value> |
Tipo de adjunto: attachment o inline. Requerido al usar --attachment. Se puede repetir o proporcionar una vez para todos los adjuntos. |
--content-id <id> |
Content-ID para adjuntos de imagen en línea. Requerido cuando se usa --disposition inline con un adjunto de imagen. |
--sandbox |
Enviar en modo sandbox. |
--json |
Salida JSON crudo. |
Ejemplo:
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
Enviar un nuevo correo.
| Opción | Descripción |
|---|---|
--mailbox-id <id> |
ID del buzón. |
--from <email> |
Dirección de correo del remitente. |
--to <email> |
Dirección de correo del destinatario. Se puede repetir. |
--subject <text> |
Asunto del correo. |
--text <text> |
Cuerpo de texto plano. |
--html <html> |
Cuerpo HTML. |
--text-file <path> |
Leer cuerpo de texto plano desde archivo. |
--html-file <path> |
Leer cuerpo HTML desde archivo. |
--cc <email> |
Dirección CC. Se puede repetir. |
--bcc <email> |
Dirección BCC. Se puede repetir. |
--reply-to <email> |
Dirección Reply-To. Se puede repetir. |
--preview-text <text> |
Texto de vista previa del correo. |
--attachment <path> |
Adjuntar archivo local. Se puede repetir. Requiere --disposition. Hasta 10 archivos, 10MB total después de la codificación base64 (aproximadamente 7.5MB de archivos sin procesar). |
--disposition <value> |
Tipo de adjunto: attachment o inline. Requerido al usar --attachment. Se puede repetir o proporcionar una vez para todos los adjuntos. |
--content-id <id> |
Content-ID para adjuntos de imagen en línea. Requerido cuando se usa --disposition inline con un adjunto de imagen. |
--sandbox |
Enviar en modo sandbox. |
--json |
Salida JSON crudo. |
Ejemplo:
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
Enviar HTML con un adjunto de imagen en línea:
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
Los metadatos de los adjuntos se pueden pasar de dos formas compatibles. La forma recomendada vincula los metadatos a cada ruta de archivo, lo que evita ambigüedades con varios adjuntos:
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 forma tradicional de opciones separadas también se admite por compatibilidad:
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
No mezcles metadatos de adjuntos en línea (path;disposition=...) con --disposition o --content-id en el mismo comando.
Enviar contenido HTML desde un archivo:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Monthly report" \
--html-file ./report.html
Salida
Por defecto, el CLI imprime tablas o resúmenes legibles y muestra un mensaje de carga corto mientras se ejecutan las solicitudes.
Usa --json cuando otra herramienta o script necesite analizar el resultado.
engagelab-email-cli emails receiving get <message-uid> --json
emails receiving listen --json imprime un objeto JSON de mensaje por línea.
Errores
Los errores legibles por humanos incluyen el código de error comercial cuando la API devuelve uno, por ejemplo [100101] unauthorized.
Los errores de --json usan esta estructura:
{
"error": {
"code": "auth_error",
"errorCode": 100101,
"message": "unauthorized"
}
}
Códigos de salida:
| Código de salida | Significado |
|---|---|
1 |
Error de parámetro o configuración faltante |
2 |
Fallo de autenticación |
3 |
Recurso no encontrado |
4 |
Conflicto o estado en progreso |
5 |
Error del servidor o error de red |










