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

            
Este bloque de código se muestra en una ventana flotante

Comprueba la versión instalada:

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

Ver la configuración guardada:

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

            
Este bloque de código se muestra en una ventana flotante

Borrar la configuración guardada:

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

Inicio rápido

Listar mensajes entrantes recientes:

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

            
Este bloque de código se muestra en una ventana flotante

Leer un mensaje entrante:

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

            
Este bloque de código se muestra en una ventana flotante

Ver el hilo completo alrededor de un mensaje:

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

            
Este bloque de código se muestra en una ventana flotante

Responder a un mensaje entrante:

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

            
Este bloque de código se muestra en una ventana flotante

Enviar un nuevo correo:

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

config list

Mostrar la configuración guardada.

Ejemplo:

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

            
Este bloque de código se muestra en una ventana flotante

config clear

Borrar la configuración local guardada, incluyendo baseUrl y secretKey.

Ejemplo:

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

Continuar desde un cursor conocido:

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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

            
Este bloque de código se muestra en una ventana flotante

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