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.