2008-10-20 2 views
3

Я использую javax.mail для получения писем от GMail с помощью IMAP. Я также хочу получить теги, которые применяются к каждой почте, поэтому я повторяю все папки в магазине (которые на самом деле являются тегами) и загружают письма друг другу.Получить UID для сообщения от GMail с помощью javax.mail с IMAP

Я использовал метод ImapFolder getUID, чтобы получить UID для каждого сообщения, а затем сравнить их для распознавания одной и той же почты в разных папках.

Например, если у меня была почта «Hello» с тегами «A» и «B», я бы перебирал через папки «Входящие», «A» и «B» и получал одну и ту же почту из каждой папки; поэтому я мог сохранить одну копию с тегами «Входящие», «А» и «В».

Однако метод getUID возвращает идентификатор, соответствующий папке, поэтому одна и та же почта может иметь разные идентификаторы в разных папках, или разные письма могут иметь одинаковый идентификатор в разных папках. В примере. «HellO» может отображаться как почта 1 в «A» и как почта 2 в «B».

Есть ли способ получить идентификатор хранилища для каждой почты, независимо от папки? Или лучший способ получить теги, прикрепленные к одной почте?

ответ

1

Я думаю, что единственный способ - использовать хэш, который вы рассчитываете на основе заголовков сообщений.

+0

Я думаю, что придет к нему, я хотел бы избежать его, если это возможно, но похоже, что другого пути нет. Btw, заголовки должны включать тему, From, To, Cc, Date и ... что-нибудь еще, чтобы однозначно идентифицировать почту? – 2008-10-21 12:24:57

+0

Я бы включил поле заголовка Message-ID в любом случае. – 2008-10-26 20:24:06

3

Получил ответ от gmail forums: есть заголовок «message-id», который содержит значение, которое я искал.