Ir al contenido

Outlook Get Attachments

Tipo: outlook-get-attachments  ·  Paquete: Outlook Activities v1.0.4  ·  Salida: List<string>

Guarda los archivos adjuntos de un correo en una carpeta local y devuelve la lista de rutas de los archivos guardados. Es clave en procesos que reciben documentos por correo: facturas en PDF, planillas en Excel, etc.

A partir del EntryID de un correo (el .Id que devuelve Outlook Get Emails), guarda todos sus adjuntos en outputDir con su nombre original y devuelve las rutas resultantes. Luego procesas esos archivos con el paquete correspondiente (Excel, PDF…).

  • Si outputDir no existe, se crea (con sus carpetas intermedias).
  • Si ya hay un archivo con el mismo nombre, se sobrescribe. Si dos adjuntos del mismo correo se llaman igual, queda el último. Para no mezclar correos, usa una carpeta por correo (por ejemplo con la fecha de recepción en la ruta).
  • Se guardan todos los elementos adjuntos del correo, incluidas las imágenes incrustadas en el cuerpo, si las hay.
  • El correo no se modifica.
ParámetroTipoPor defectoDescripción
entryIdstring—EntryID del correo (de correo.Id).
outputDirstring—Carpeta local donde se guardan los adjuntos. Se crea si no existe.
ParámetroTipoPor defectoDescripción
sessionZoanOutlookSession—Sesión de Outlook Connect. Dentro del body de Connect se hereda; sin sesión se usa la cuenta por defecto.

Devuelve una List<string> con la ruta completa de cada archivo guardado (outputDir + nombre del adjunto), en el orden en que aparecen en el correo. Si el correo no tiene adjuntos, devuelve una lista vacía.

MensajeCausa y solución
'entryId' es obligatorio. / 'outputDir' es obligatorio.Falta el parámetro o la expresión dio null. Revisa la variable del correo.
Error de Outlook al abrir el elementoEl EntryID no corresponde a un correo de este perfil (se movió a otro buzón, se eliminó o viene de otra cuenta). Usa el .Id de una lectura reciente.
Error de acceso a la rutaEl robot no puede escribir en outputDir. Usa una carpeta con permisos de escritura.

Guardar los adjuntos de cada correo en su propia carpeta y procesar las planillas:

For Each items = correos itemVariable = correo
└─ activities:
Outlook Get Attachments entryId = correo.Id outputDir = pathJoin("C:/facturas", correo.SentAt.ToString("yyyyMMdd-HHmmss")) → output: archivos
For Each items = archivos itemVariable = ruta
└─ activities:
If condition = ruta.EndsWith(".xlsx")
└─ then:
Read Excel Sheet path = ruta → output: datos
... procesar ...