То, что я хочу добиться:IMAP - JavaMail - Как узнать, какие сообщения обрабатывать?
- Я кодирование программы Java, которая использует протокол IMAP для подключения к некоторому Gmail счета каждые 5 минут и извлечению информации из некоторых сообщений.
- Я хочу проверить все сообщения (входящие и исходящие) и взять только те, которые я не обрабатывал. Под «обработанным» я имею в виду не только сообщения «читать» или «видеть». Мое приложение не волнует, обратился ли к нему другой пользователь и не прочитал его. Мое приложение должно отслеживать, какое из них было обработано последним, и в следующий раз, когда он будет проходить через сообщения, начните с первого непроработанного сообщения.
- Я не хочу ничего менять в сообщениях. Я не хочу отмечать их как увиденные или прочитанные.
Что я реализовал:
- Установить соединение по протоколу IMAP.
- Открыть и получить доступ ко всем сообщениям в папке «[Gmail]/Вся почта».
То, что я пробовал:
- Я читал о UID и номер сообщения, но я не уверен, что любой из них может помочь мне достичь того, чего я хочу. Возможно, UID мог, но: как я могу получить его с помощью JavaMail?
- Я нашел Folder.getMessages (int start, int end), но я думаю, что это относится к индексу сообщения в папке, который, я считаю, может легко измениться.
Может ли кто-нибудь дать некоторые рекомендации в отношении того, что лучше всего подходит для этого?
Спасибо!
Вы можете использовать UIDs: любое входящее сообщение будет иметь UID выше, чем предыдущее сообщение. Просто запомните самый высокий UID, который вы обработали, и обработайте с более высоким UID. – Max
Спасибо, @Max. Это также относится к отправленным сообщениям? Как я могу получить UID с помощью JavaMail? UID не изменяются, даже если они перемещены в другую папку, не так ли? – cotupha
Эй @ Макс. Это я снова, я нашел интерфейс UIDFolder с двумя его реализациями: GmailFolder и IMAPFolder. Я прочитаю немного больше, чтобы узнать, какой из них будет правильным для меня. Если у Вас есть предложения, пожалуйста, дайте мне знать. Благодаря! – cotupha