Eliminar correo electrónico en el servidor usando javax.correo


Estoy recibiendo correos electrónicos del servidor utilizando el protocolo IMAP como se describe aquí. Esto está funcionando muy bien y puedo almacenar los correos electrónicos y archivos adjuntos en el disco.

Pregunta: ¿Tengo la posibilidad de eliminar archivos del Servidor, para que ya no estén disponibles, cuando un cliente intenta recibir todos los correos electrónicos? Si es así, por favor dime cómo.

Author: Brian Tompsett - 汤莱恩, 2009-09-23

1 answers

Debería poder hacer esto a través de las API estándar.

Primero necesitas obtener una referencia a los Message (o mensajes) que deseas eliminar; si los estás leyendo correctamente, ya puedes hacerlo. Ahora, no hay una operación explícita delete (), pero puedes marcar un mensaje como eliminado de la siguiente manera:

message.setFlag(Flags.Flag.DELETED, true);

Esto marcará el mensaje como eliminado (que es típicamente lo que una operación de eliminación hará en un cliente IMAP de escritorio). Con el fin de forzar los mensajes eliminados a ser eliminado, cuando haya terminado con el Folder(s) en el que residen, llame

folder.close(true);

Donde el indicador true indica al servidor que elimine todos los mensajes eliminados.

Y voila! El cliente ya no debería ver estos mensajes cuando se conecte al servidor con cualquier cliente IMAP.

EDITAR:

No olvide abrir la carpeta en modo READ_WRITE, de lo contrario los mensajes no se eliminarán del servidor.

folder.open(Folder.READ_WRITE);

Véase: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting

 61
Author: Andrzej Doyle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-04 14:00:42