Ir al contenido

SMTP / IMAP / POP3 Email Activities

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

Este paquete trabaja con correo electrónico conectándose directamente a un servidor, sin depender de un cliente instalado. Funciona con cualquier servidor estándar que acepte usuario y contraseña: Gmail, el servidor corporativo de tu empresa o el de tu proveedor de hosting.

ProtocoloPara quéActividades
SMTPEnviar correoSMTP Send
IMAPLeer y gestionar correo (carpetas, leído/no leído, mover, eliminar) — recomendadoIMAP Read, IMAP Save Attachment, IMAP Mark Read, IMAP Move, IMAP Delete
POP3Leer de forma básica (sin carpetas ni estado) — solo si no hay IMAPPOP3 Read, POP3 Delete

Estas actividades no mantienen una sesión: cada una se conecta, se autentica, hace su trabajo y se desconecta. Por eso cada una recibe los datos de conexión del servidor. Son los mismos en todas:

ParámetroTipoDescripción
hoststringServidor (ej. smtp.gmail.com, imap.gmail.com, pop.gmail.com).
portintPuerto. Por defecto: SMTP 587, IMAP 993, POP3 995.
usernamestringUsuario (normalmente la dirección de correo completa).
passwordcredentialContraseña o contraseña de aplicación. En POP3 es string. Ver credenciales.
securitystringCifrado de la conexión: auto, none, ssl o starttls. Por defecto: SMTP auto, IMAP y POP3 ssl.
ValorQué hacePuertos habituales
sslTLS desde el primer byte (conexión cifrada de entrada).SMTP 465, IMAP 993, POP3 995
starttlsConecta en claro y pasa a TLS con STARTTLS; falla si el servidor no lo ofrece.SMTP 587, IMAP 143, POP3 110
autoElige según el puerto: TLS directo en los puertos de SSL conocidos y STARTTLS en los demás si el servidor lo ofrece; si no lo ofrece, sigue sin cifrar.—
noneSin cifrado. Solo para servidores internos de prueba.SMTP 25, IMAP 143, POP3 110

El valor no distingue mayúsculas; un valor no reconocido se trata como el predeterminado del protocolo. El puerto no cambia solo al cambiar security: si usas ssl con SMTP, indica también port = 465.

Todas las actividades inician sesión con username y password; los servidores SMTP que solo aceptan envíos sin autenticación no son compatibles.

ProveedorSMTP (enviar)IMAP (leer)POP3
Gmailsmtp.gmail.com : 587imap.gmail.com : 993pop.gmail.com : 995
Servidor corporativoLos datos (servidor, puerto y cifrado) te los da el área de TI

Seguridad: guarda la contraseña en una credencial

Sección titulada «Seguridad: guarda la contraseña en una credencial»

Nunca escribas la contraseña en texto plano: guárdala en una credencial de Zoan Cloud. Con una credencial de varios campos (por ejemplo user y password), la forma que funciona en todas las actividades del paquete es:

username = credential("correo-bot")["user"]
password = credential("correo-bot")["password"]

En SMTP e IMAP el campo password es de tipo credencial, así que también acepta credential("correo-bot") directamente (toma el campo password). En POP3 el campo es de texto: usa siempre el indexador: credential("correo-bot")["password"] (o ["value"] si la credencial tiene un solo valor). El valor no queda expuesto en el playbook y sale enmascarado en los logs.

Igual que en Outlook, IMAP Read (y POP3 Read) devuelven una lista de correos (ZoanMail). Cada correo tiene un identificador, su .Id, que pasas como mailId a las demás actividades para indicar sobre qué correo actuar (guardar adjuntos, marcar, mover, eliminar):

  • En IMAP es el UID del mensaje en su carpeta: estable entre conexiones mientras el correo siga en esa carpeta.
  • En POP3 es el índice del mensaje en el buzón (desde 0): cambia cuando se eliminan mensajes.
IMAP Read host = "imap.gmail.com" username = credential("correo-bot")["user"] password = credential("correo-bot")["password"]
unreadOnly = true → output: correos
For Each items = correos itemVariable = correo
└─ activities:
IMAP Save Attachment ... mailId = correo.Id outputPath = "C:/adjuntos"
IMAP Mark Read ... mailId = correo.Id
PropiedadTipoValor en IMAP / POP3
.IdstringUID (IMAP) o índice (POP3), como texto.
.SubjectstringAsunto ("" si no tiene).
.FromstringDirección del primer remitente, sin el nombre visible.
.To / .Ccstring[]Direcciones de los destinatarios.
.Bccstring[]Siempre vacío.
.BodystringParte de texto plano; si el correo solo trae HTML, el HTML.
.IsHtmlbooltrue solo cuando el correo no tiene parte de texto y .Body es HTML.
.SentAtDateTimeFecha del encabezado Date del mensaje (fecha de envío).
.IsReadboolEstado leído en IMAP; siempre false en POP3.
.AttachmentsZoanAttachment[]Con includeAttachments = true: nombre, tipo MIME y contenido de cada adjunto. Si no, vacío.

El tipo completo está en Tipos de datos › ZoanMail.

ActividadTipoSalidaQué hace
SMTP Sendsmtp-send—Envía un correo
ActividadTipoSalidaQué hace
IMAP Readimap-readList<ZoanMail>Lee correos con filtros
IMAP Save Attachmentimap-save-attachment—Guarda adjuntos de un correo
IMAP Mark Readimap-mark-read—Marca un correo como leído
IMAP Moveimap-move—Mueve un correo a otra carpeta
IMAP Deleteimap-delete—Elimina un correo
ActividadTipoSalidaQué hace
POP3 Readpop3-readList<ZoanMail>Lee correos (sin carpetas ni filtros)
POP3 Deletepop3-delete—Elimina un correo