Gestionar las banderas IMAP

Traducido automáticamente de Deepl

Para que su solución se integre sin problemas con otros clientes de correo electrónico, a menudo es necesario añadir información como «ya visto» o «urgente». El protocolo IMAP le permite asociar una lista de banderas a un mensaje para gestionar esta información adicional. 4D v18 R6 incluye un conjunto de funciones para el objeto IMAP Transporter para añadir o eliminar banderas IMAP.

Con el protocolo IMAP puede gestionar cinco banderas :

  • \N – Visto: El mensaje ha sido leído
  • \N – Respondido: El mensaje ha sido respondido
  • \N – Marcado: El mensaje está marcado como «marcado» para atención urgente/especial
  • \N – Eliminado: El mensaje está marcado como «para ser eliminado». Tenga en cuenta que la eliminación real tiene efecto cuando se llama a la función expunge() cuando se llama a la función, cuando se cambia el buzón o se cierra la conexión. Esta bandera ya es añadida por la delete() función
  • \Borrador: El mensaje no ha completado su composición (marcado como borrador).

Añadir banderas

Para gestionar las banderas de correo electrónico, necesita estar conectado a su servidor de correo y tener un buzón seleccionado. Para los siguientes ejemplos, utilizaremos el buzón de entrada:

var $transporter : 4D.IMAPTransporter
$transporter :=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("inbox")

Para añadir banderas en los correos, como en el objeto email, cree un objeto keywords que contenga todas las banderas que quiera establecer, y páselas como parámetro a la función addFlags() función. Por ejemplo, si quiere marcar algunos correos como borrador:

$mails:=$transporter.searchMails("SUBJECT \"4D\"")
$keywords :=New object
$ keywords .$draft:=True

$transporter .addFlags($mails; $keywords )

Eliminar las banderas

Del mismo modo, para eliminar las banderas de los correos, cree un objeto keywords, y páselo a la función removeFlags() función. Por ejemplo, si quiere eliminar todas las banderas \N de borrador en su buzón de correo para evitar que se borren los correos marcados:

$mails:=$transporter.searchMails("DELETED")
$ keywords :=New object
$ keywords .$deleted:=True

$transporter .removeFlags($mails; $keywords )

Borrar correos electrónicos

En una entrada anterior del blog, le hemos mostrado cómo añadir la bandera /Deleted a un correo electrónico con la función delete() función /Deleted.

Además de la función delete() hemos añadido la nueva función expunge() para permitirle aplicar la bandera /Suprimido sin esperar a que se cambie de buzón o se cierre la conexión. Por ejemplo, si quiere eliminar todos los correos electrónicos de su buzón de correo no deseado:

$boxInfo:=$transporter.selectBox("Correo no deseado")

// marks all the email in the current mail box for deletion
$status :=$transporter.delete(IMAP all)

// deletes all the marked emails
$transporter .expunge()

Consulta la documentación para saber más sobre las nuevas funciones.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.