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.
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
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