Ir al contenido

Outlook Get Emails

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

Lee los correos de una carpeta de Outlook y devuelve una lista de mensajes (ZoanMail). Es el punto de partida de casi todo proceso basado en correo: leer lo que llegó, recorrerlo y actuar sobre cada mensaje.

  1. Resuelve la carpeta folder (por defecto Inbox). Acepta alias en inglés (inbox, sent, drafts, deleted, junk, outbox), el nombre que Outlook muestra en tu idioma y rutas con / — ver Carpetas.
  2. Ordena los elementos del más reciente al más antiguo (por fecha de recepción).
  3. Aplica el filtro: si das filter, se usa ese; si no, y unreadOnly = true, se toman solo los no leídos.
  4. Devuelve hasta maxCount correos. Las convocatorias de reunión, confirmaciones de lectura y otros elementos que no son correos se omiten y no cuentan para el máximo.

Leer no cambia el estado de los correos: siguen sin leer hasta que uses Outlook Mark Read. Sin session, usa la cuenta por defecto.

Ninguno.

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.
folderstring"Inbox"Carpeta a leer. Alias, nombre localizado o ruta con / para subcarpetas: "Inbox/Clientes".
maxCountint50Máximo de correos a devolver. Un valor que no sea un número entero se toma como 50.
unreadOnlyboolfalseDevolver solo los no leídos. Se ignora si indicas filter (inclúyelo en el filtro: [UnRead] = True).
filterstring—Filtro de Outlook sobre los elementos de la carpeta. Sintaxis de Outlook ("[Subject] = 'Factura'", "[UnRead] = True AND [SenderEmailAddress] = 'proveedor@empresa.com'") o DASL con el prefijo @SQL= para búsquedas por contenido.

Devuelve una List<ZoanMail> ordenada del más reciente al más antiguo. Cada correo trae .Id (EntryID), .Subject, .From, .To, .Cc, .Body (texto plano), .SentAt (fecha de recepción) e .IsRead; .Attachments y .Bcc llegan vacíos. Detalle en Qué trae cada correo.

Si ningún correo cumple el filtro, devuelve una lista vacía (no es un error): compruébalo con count(correos) == 0.

MensajeCausa y solución
No se encontró la carpeta en el nivel {0} de la ruta (dentro de {1}). {2}Un segmento de folder no existe. El mensaje dice el nivel y cuántas subcarpetas hay; revisa la ortografía o usa el nombre que muestra Outlook.
Outlook no devolvió su carpeta predeterminada. Comprueba que Outlook esté instalado, tenga un perfil de correo configurado y se ejecute con el mismo nivel de elevación que el robot (…)No hay un perfil de correo utilizable o el robot y Outlook corren con distinta elevación. Configura el perfil y ejecuta ambos con el mismo nivel.
COM component 'Outlook.Application' is not registered. Is the application installed?Outlook no está instalado en la máquina del robot.
Error de Outlook al interpretar la condiciónfilter tiene una sintaxis no válida (comillas, nombre de propiedad). Prueba el filtro con un valor fijo antes de construirlo con expresiones.

Leer los correos no leídos de la bandeja, guardar sus adjuntos y marcarlos como leídos:

Outlook Get Emails folder = "Inbox" unreadOnly = true maxCount = 20 → output: correos
For Each items = correos itemVariable = correo
└─ activities:
Log message = "De: " + correo.From + " — " + correo.Subject
Outlook Get Attachments entryId = correo.Id outputDir = "C:/facturas" → output: archivos
Outlook Mark Read entryId = correo.Id

Filtros útiles (lo que se escribe en el campo filter):

[Subject] = 'Factura 1043' asunto exacto
[UnRead] = True AND [SenderEmailAddress] = 'proveedor@empresa.com'
@SQL="urn:schemas:httpmail:subject" LIKE '%Factura%' asunto que contiene «Factura»