J'utilise javax.mail pour récupérer les mails de GMail en utilisant IMAP. Je veux également obtenir les balises appliquées à chaque mail, donc je suis en train d'itérer sur tous les dossiers du magasin (qui sont en fait des balises) et de télécharger les mails les uns avec les autres. J'ai utilisé la méthode getUID de ImapFolder pour obtenir l'UID pour chaque message, puis les comparer pour reconnaître le même courrier le long de différents dossiers. Par exemple, si le courrier "Bonjour" était marqué avec "A" et "B", je parcourais les dossiers "Boîte de réception", "A" et "B" et obtenais le même courrier de chaque dossier; donc je pourrais garder une seule copie étiquetée avec "Inbox", "A" et "B". Toutefois, la méthode getUID renvoie un ID relatif à un dossier, de sorte que le même courrier peut avoir des ID différents dans des dossiers différents, ou différents courriers peuvent avoir le même ID dans des dossiers différents. Dans l'exemple. "HellO" peut apparaître comme mail 1 dans "A" et comme mail 2 dans "B".Obtenir UID pour le message de GMail en utilisant javax.mail avec IMAP
Existe-t-il un moyen d'obtenir un ID relatif au magasin pour chaque courrier, indépendamment du dossier? Ou une meilleure façon d'obtenir les étiquettes attachées à un seul courrier?
Je pense qu'il va falloir y arriver, je voulais l'éviter si possible, mais il semble qu'il n'y ait pas d'autre moyen. Btw, les en-têtes doivent inclure Subject, From, To, Cc, Date et ... toute autre chose pour identifier de manière unique un mail? –
J'inclurais le champ d'en-tête Message-ID dans tous les cas. –
Pensez au cas: Vous êtes dans un groupe de messagerie et vous recevez un message envoyé à ce groupe mais l'expéditeur vous envoie le message de manière explicite en même temps. Ensuite, vous devriez recevoir 2 mails, mais le message-id sera le même car il est envoyé du côté de l'expéditeur. Le sujet de la date de cc sera également le même que le hash sera le même. Pour distinguer, il faut ajouter Delivered-To au hash, cela va différer les deux messages dans ce cas. – benchpresser