Я просто пытаюсь прочитать непрочитанные письма из Gmail, используя IMAP.Поэтому, когда я запускаю, мое приложение может читать все непрочитанные письма.Хотя эти электронные письма уже были доступны в INBOX еще до того, как я запустил свое приложение.Вот проблема, скажем, у меня есть 120 электронных писем, мое приложение начало их читать, и оно уже прочитало одно из них, и число их сократилось до 119, а затем, если предположить, что мое электронное письмо получило другое письмо, тогда моя служба начала обрабатывать это, а остальные 119 писем будутбыть непрочитанным, и мое приложение не обрабатывает их
Я пытался использовать DefaultSearchTermStrategy, который поступил из Spring
EmailReadTaskRunner<SampleMailMessage> emailTaskRunner = new
EmailReadTaskRunner<SampleMailMessage>();
for (MailConfig mailConfig : yamlConfig.getMailConfig()) {
if (mailConfig.isImapEnabled()) {
Properties properties = this.getImapProperties();
properties.put("mail.debug",
String.valueOf(mailConfig.isDebugEnabled()));
ImapMailReceiver receiver = new
ImapMailReceiver(mailConfig.getImageStoreUri() +
"/INBOX");
receiver.setShouldMarkMessagesAsRead(true);
receiver.setShouldDeleteMessages(false);
receiver.setJavaMailProperties(properties);
receiver.setJavaMailAuthenticator(
new MailAuthenticator(mailConfig.getUser(),
mailConfig.getPassword()));
StandardIntegrationFlow flow = IntegrationFlows
.from(Mail.imapIdleAdapter(receiver).shouldReconnectAutomatically(true)).handle(message -> {
emailTaskRunner.read(emailReadTask, message, mailConfig);
}).get();
this.getFlowContext().registration(flow).register();
}
}
Я хочу прочитать все непрочитанные электронные письма, которые могут быть недавними или старыми,Использую версию SpringIntegration 5.0.3, а также использую протокол IMAP, как я уже упоминал в коде.Я также хочу знать, почему это показывает такое поведение.Пока новое письмо не приходит в Gmail, оно может читать их все, всякий раз, когда новое письмо приходит в Gmail, оно начинает читать новое и игнорировать предыдущее непрочитанное письмо