I want to demonstrate the email application using the spring boot MVC
in that web application I follow this tutorial I can easily send the emails using spring boot.
Here my question is
- how can I read the emails using spring boot..?
- how can I listen for new emails and how to update the inbox on the view..?
please suggest me any solutions for that because I searched a lot but I can find only send email example.please share me if you have any working samples for that using spring boot. Thanks in advance.
Advertisement
Answer
You could consider using Spring integration mail support
There is a Java DSL for this purposes.
An example of IMAP config could be found here
The key aspects are like this
@Configuration @EnableIntegration public class IntegrationConfig { ... @Bean public IntegrationFlow imapIdleFlow() { return IntegrationFlows .from(Mail.imapIdleAdapter("imap://user:pw@localhost:" + imapIdleServer.getPort() + "/INBOX") .autoStartup(true) .searchTermStrategy(this::fromAndNotSeenTerm) .userFlag("testSIUserFlag") .javaMailProperties(p -> p.put("mail.debug", "false") .put("mail.imap.connectionpoolsize", "5")) .shouldReconnectAutomatically(false) .headerMapper(mailHeaderMapper())) .channel(MessageChannels.queue("imapIdleChannel")) .get(); } @Bean public HeaderMapper<MimeMessage> mailHeaderMapper() { return new DefaultMailHeaderMapper(); } private SearchTerm fromAndNotSeenTerm(Flags supportedFlags, Folder folder) { try { FromTerm fromTerm = new FromTerm(new InternetAddress("bar@baz")); return new AndTerm(fromTerm, new FlagTerm(new Flags(Flags.Flag.SEEN), false)); } catch (AddressException e) { throw new RuntimeException(e); } } }