En utilisant JavaMail API et IMAP, je veux savoir qu'un message a été déplacé du dossier a au dossier b. Comment puis-je faire cela sans ajouter d'écouteurs ? Je veux dire que je veux découvrir les changements de messages lorsque je me connecte au compte et que j'ouvre le dossier.
Le problème est que si vous avez 3 messages dans le dossier A avec les identifiants 1, 2 et 3 et que vous déplacez le message avec l'identifiant 3 vers le dossier B, l'identifiant du message change et nous avons un message avec l'identifiant 1 dans le dossier B.
Mon objectif est de synchroniser la structure des messages du serveur de messagerie avec mon propre serveur local. Je dois conserver toutes les informations sur les messages, les drapeaux, etc. sur mon propre serveur. Ainsi, à chaque connexion, je dois découvrir toutes les modifications apportées aux messages stockés dans le serveur de messagerie.
Je peux recevoir les nouveaux messages ou les messages non lus par :
Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.RECENT), true));
ou par
Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false));
Mais je ne m'intéresse pas seulement aux nouveaux courriers, je veux aussi connaître les modifications apportées aux anciens courriers, par exemple, et je veux en être informé :
un courrier qui a été lu il y a deux mois a été déplacé dans un autre dossier.
mon idée est la suivante,
Comme les identifiants changent, je ne peux pas les utiliser pour identifier les courriers. Je pense que je dois utiliser les informations du courrier telles que l'objet, l'expéditeur, la date de réception, construire une valeur de hachage de ces informations et comparer les valeurs de hachage des messages à chaque connexion. mais cela entraînera des problèmes de performance.