Ir al contenido

Outlook 365 — Download attachments

Tipo: outlook365-download-attachments  ·  Paquete: Outlook 365 v1.0.4  ·  Salida: List<string>

Descarga los archivos 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 adjuntos.

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

  • La carpeta de destino se crea si no existe (con las carpetas intermedias).
  • 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. Por eso, si ejecutas la actividad dos veces sobre el mismo correo, obtienes copias numeradas.
  • Se descargan los archivos adjuntos, incluidas las imágenes incrustadas en el cuerpo (logos, firmas). Los correos adjuntos (un .msg dentro del correo) y los adjuntos que son enlaces a OneDrive/SharePoint se omiten.

Para saber de antemano si un correo trae adjuntos, revisa su clave hasAttachments o filtra con filter = "hasAttachments eq true" en Get emails.

ParámetroTipoPor defectoDescripción
idstring—ID del mensaje.
folderstring—Carpeta de destino. Se crea si no existe.
ParámetroTipoPor defectoDescripción
sessionZoanOutlookMailSession—Sesión de Outlook 365 — Connect (se hereda dentro del body).

Devuelve un List<string> con la ruta completa de cada archivo guardado, en el orden en que Graph lista los adjuntos. Si el correo no tenía archivos adjuntos, la lista viene vacía (no falla). Recórrela con un For each o accede por índice (rutas[0]).

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.
Error de Graph ErrorItemNotFoundEl correo ya no existe con ese ID (se eliminó o se movió). Descarga antes de mover.
Error de acceso a la carpetaEl robot no puede crear o escribir en folder (permisos de Windows, unidad inexistente).
Outlook 365 — Connect credential = credential("m365-facturas")
└─ body:
Outlook 365 — Get emails folder = "inbox" filter = "hasAttachments eq true and isRead eq false" → output: correos
For each correo in correos
└─ Outlook 365 — Download attachments id = correo["id"] folder = "C:\facturas\entrada" → output: archivos
For each ruta in archivos
└─ PDF Get Text path = ruta → output: texto
Outlook 365 — Mark read/unread id = correo["id"]