This module provides a File supplier that can be reused and composed in other applications.
The Supplier
uses the mail IMAP and POP3 support from Spring Integration.
The mailSupplier
bean is implemented as a java.util.function.Supplier
.
This supplier gives you a reactive stream of emails from the provided url (imap or pop3).
The supplier has a signature of Supplier<Flux<Message<?>>>
.
Users have to subscribe to this Flux
and receive the data.
You can import the MailSupplierConfiguration
in the application and then inject the following bean.
mailSupplier
You need to inject this as Supplier<Flux<Message<?>>>
.
You can use mailSupplier
as a qualifier when injecting.
Once injected, you can use the get
method of the Supplier
to invoke it and then subscribe to the returned Flux
.
All configuration properties are prefixed with mail.supplier
.
For more information on the various options available, please see MailSupplierProperties.
A ComponentCustomizer<MailInboundChannelAdapterSpec<?, ?>>
(or ComponentCustomizer<ImapIdleChannelAdapterSpec>
when mail.supplier.idle-imap = true
) bean can be added in the target project to provide any custom options for the MailInboundChannelAdapterSpec
(or ImapIdleChannelAdapterSpec
, respectively) configuration used by the mailSupplier
.
See this test suite for the various ways, this supplier is used.
See this README where this supplier is used to create a Spring Cloud Stream application where it makes a Mail Source.