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.
The MailSupplierConfiguration
auto-configuration provides 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.