Ir al contenido

Gmail — Download attachments

Tipo: gmail-download-attachments  ·  Paquete: Gmail v1.0.4  ·  Salida: List<string>

Descarga todos los adjuntos de un correo a una carpeta del equipo y devuelve la lista de rutas guardadas. Es el paso típico tras buscar correos con has:attachment.

Opera sobre la sesión creada con Gmail — Connect. Pásala en el parámetro session, o coloca esta actividad dentro del body de Gmail — Connect para heredarla automáticamente.

  • La carpeta de destino se crea si no existe (con las carpetas intermedias).
  • Descarga cada parte del correo que tiene nombre de archivo, incluidas las imágenes incrustadas que traen nombre (logos, firmas). Son los mismos elementos que lista la clave attachments de Get email by ID.
  • Cada archivo se guarda con su nombre original. Nunca sobrescribe: si ya existe un archivo con ese nombre, guarda nombre (1).ext, nombre (2).ext, etc. Si ejecutas la actividad dos veces sobre el mismo correo, obtienes copias numeradas.
ParámetroTipoPor defectoDescripción
idstring—ID del mensaje.
folderstring—Carpeta de destino. Se crea si no existe.
ParámetroTipoPor defectoDescripción
sessionZoanGmailSession—Sesión de Gmail — Connect (se hereda dentro del body).

Devuelve un List<string> con la ruta completa de cada archivo guardado, en el orden en que aparecen en el correo. Recórrela con un For each o accede a un elemento por índice (rutas[0]) para procesarlo, por ejemplo abriéndolo con Excel o leyéndolo. Si el correo no tenía adjuntos, la lista viene vacía (no falla).

MensajeCausa y solución
'id' es obligatorio.id está vacío o la expresión devolvió null.
'folder' es obligatorio.folder está vacío o la expresión devolvió null.
Requested entity was not found.No hay un correo con ese ID en el buzón.
Error de acceso a la carpetaEl robot no puede crear o escribir en folder (permisos de Windows, unidad inexistente).
Gmail — Connect credential = credential("gmail-facturas")
└─ body:
Gmail — Get emails query = "is:unread has:attachment filename:pdf subject:factura" → output: correos
For each correo in correos
└─ Gmail — Download attachments id = correo["id"] folder = "C:\facturas\entrada" → output: archivos
For each ruta in archivos
└─ PDF Get Text path = ruta → output: texto
Gmail — Apply label id = correo["id"] labels = "Procesado"