Ir al contenido

Outlook 365 Mail Activities

Versión: 1.0.5  ·  ID: zoan-packages-outlook365  ·  Autor: Zoan Software

El paquete Outlook 365 envía, busca, lee y organiza correos de un buzón de Microsoft 365 a través de Microsoft Graph, mediante conexiones OAuth2 de Zoan Cloud. Es el equivalente en la nube del paquete Outlook de escritorio: no necesita Outlook instalado ni una sesión de Windows abierta, así que funciona igual en robots atendidos y desatendidos.

Las actividades usan una conexión OAuth de Microsoft 365 de Zoan Cloud, que se referencia por su nombre clave en Connect (credential = credential("m365-soporte")). Zoan Cloud guarda y renueva el token; el robot nunca ve la contraseña de la cuenta.

Permiso de Microsoft GraphPara qué
Mail.ReadWriteBuscar, leer, descargar adjuntos, mover, marcar, categorizar y eliminar.
Mail.SendEnviar, responder y reenviar.
Mail.ReadWrite.Shared / Mail.Send.SharedLo mismo sobre buzones compartidos, con acceso delegado.

La autenticación (delegada o solo de aplicación) la define la conexión. Con acceso delegado, sin mailbox, se trabaja sobre el buzón del usuario que autorizó la conexión; para buzones compartidos o acceso solo de aplicación, indica mailbox en Connect.

Connect abre una sesión (ZoanOutlookMailSession) sobre un buzón:

  • Con body: las actividades de dentro la heredan y se cierra sola al terminar.
  • Sin body: guárdala en una variable, pásala por session y ciérrala con Close.

La sesión usa el token vigente al conectar, que dura alrededor de una hora: en procesos largos, trabaja por lotes y conecta en cada lote.

Get emails, Get email by ID y Move devuelven cada correo como un Dictionary<string,object> con las claves id, subject, from, fromName, to, cc, receivedDateTime, preview, isRead, hasAttachments, categories, webLink, body y bodyType (el detalle está en Get emails). Lee cada dato por su clave: correo["subject"].

El id es la entrada de todas las demás actividades. Cambia cuando el correo se mueve de carpeta: haz las operaciones sobre el correo antes de moverlo, o usa el id que devuelve Move.

ActividadTipoSalidaDescripción
Outlook 365 — Connectoutlook365-connectZoanOutlookMailSessionAbre una sesión autenticada con Outlook 365 vía Microsoft Graph
Outlook 365 — Sendoutlook365-send—Envía un correo desde el buzón de la sesión
Outlook 365 — Replyoutlook365-reply—Responde a un correo existente manteniendo el hilo
Outlook 365 — Forwardoutlook365-forward—Reenvía un correo a otros destinatarios
Outlook 365 — Get emailsoutlook365-get-emailsList<Dictionary<string,object>>Busca correos en el buzón o en una carpeta, por asunto, texto, filtro o no leídos
Outlook 365 — Get email by IDoutlook365-get-emailDictionary<string,object>Trae un correo completo por su ID, con el cuerpo
Outlook 365 — Download attachmentsoutlook365-download-attachmentsList<string>Descarga los adjuntos de un correo a una carpeta
Outlook 365 — Moveoutlook365-moveDictionary<string,object>Mueve un correo a otra carpeta
Outlook 365 — Mark read/unreadoutlook365-mark-read—Marca un correo como leído o no leído
Outlook 365 — Set categoriesoutlook365-set-categories—Establece las categorías de un correo (reemplaza las existentes)
Outlook 365 — Deleteoutlook365-delete—Elimina un correo
Outlook 365 — Closeoutlook365-close—Cierra una sesión de Outlook 365
Outlook 365 — Connect credential = credential("m365-facturas")
└─ body:
Outlook 365 — Get emails folder = "inbox" subject = "Factura" unreadOnly = true → output: pendientes
For each correo in pendientes
└─ Outlook 365 — Download attachments id = correo["id"] folder = "C:\facturas\entrada"
Outlook 365 — Reply id = correo["id"] body = "Recibimos tu factura; la registraremos en los próximos días."
Outlook 365 — Move id = correo["id"] destination = "archive"