INT-2543: Relax mail host when mail-props present
JIRA: https://jira.spring.io/browse/INT-2543 We may have a mail server host configured in the properties and the target session will resolve it properly from provided `javaMailProperties`. The same applies for `username` * Do not require `host` and `username`, when `javaMailProperties` is provided * Add additional factory methods into the `Mail` factory for Java DSL * Add Java DSL sample into the `mail.adoc`
This commit is contained in:
committed by
Gary Russell
parent
0ac766040f
commit
a5e437f94a
@@ -232,6 +232,18 @@ Alternatively, you can provide the host, username, and password, as the followin
|
||||
----
|
||||
====
|
||||
|
||||
Starting with version 5.1.3, the `host`, `username` ane `mail-sender` can be omitted, if `java-mail-properties` is provided.
|
||||
However the `host` and `username` has to be configured with appropriate Java mail properties, e.g. for SMTP:
|
||||
|
||||
====
|
||||
[source]
|
||||
----
|
||||
mail.user=someuser@gmail.com
|
||||
mail.smtp.host=smtp.gmail.com
|
||||
mail.smtp.port=587
|
||||
----
|
||||
====
|
||||
|
||||
NOTE: As with any outbound Channel Adapter, if the referenced channel is a `PollableChannel`, you should provide a `<poller>` element (see <<endpoint-namespace>>).
|
||||
|
||||
When you use the namespace support, you can also use a `header-enricher` message transformer.
|
||||
@@ -322,8 +334,7 @@ By default, the `ImapMailReceiver` searches for messages based on the default `S
|
||||
* hHave not been processed by this mail receiver (enabled by the use of the custom USER flag or simply NOT FLAGGED if not supported)
|
||||
|
||||
The custom user flag is `spring-integration-mail-adapter`, but you can configure it.
|
||||
Since version 2.2, the `SearchTerm` used by the `ImapMailReceiver` is fully configurable with `SearchTermStrategy`,
|
||||
which you can inject by using the `search-term-strategy` attribute.
|
||||
Since version 2.2, the `SearchTerm` used by the `ImapMailReceiver` is fully configurable with `SearchTermStrategy`, which you can inject by using the `search-term-strategy` attribute.
|
||||
`SearchTermStrategy` is a strategy interface with a single method that lets you create an instance of the `SearchTerm` used by the `ImapMailReceiver`.
|
||||
The following listing shows the `SearchTermStrategy` interface:
|
||||
|
||||
@@ -548,3 +559,53 @@ public class Mover {
|
||||
====
|
||||
|
||||
IMPORTANT: For the message to be still available for manipulation after the transaction, _should-delete-messages_ must be set to 'false'.
|
||||
|
||||
[[java-dsl-configuration]]
|
||||
=== Configuring channel adapters with the Java DSL
|
||||
|
||||
To configure mail mail component in Java DSL, the framework provides a `o.s.i.mail.dsl.Mail` factory, which can be used like this:
|
||||
|
||||
====
|
||||
[source, java]
|
||||
----
|
||||
@SpringBootApplication
|
||||
public class MailApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
new SpringApplicationBuilder(MailApplication.class)
|
||||
.web(false)
|
||||
.run(args);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public IntegrationFlow imapMailFlow() {
|
||||
return IntegrationFlows
|
||||
.from(Mail.imapInboundAdapter("imap://user:pw@host:port/INBOX")
|
||||
.searchTermStrategy(this::fromAndNotSeenTerm)
|
||||
.userFlag("testSIUserFlag")
|
||||
.simpleContent(true)
|
||||
.javaMailProperties(p -> p.put("mail.debug", "false")),
|
||||
e -> e.autoStartup(true)
|
||||
.poller(p -> p.fixedDelay(1000)))
|
||||
.channel(MessageChannels.queue("imapChannel"))
|
||||
.get();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public IntegrationFlow sendMailFlow() {
|
||||
return IntegrationFlows.from("sendMailChannel")
|
||||
.enrichHeaders(Mail.headers()
|
||||
.subjectFunction(m -> "foo")
|
||||
.from("foo@bar")
|
||||
.toFunction(m -> new String[] { "bar@baz" }))
|
||||
.handle(Mail.outboundAdapter("gmail")
|
||||
.port(smtpServer.getPort())
|
||||
.credentials("user", "pw")
|
||||
.protocol("smtp")),
|
||||
e -> e.id("sendMailEndpoint"))
|
||||
.get();
|
||||
}
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
|
||||
Reference in New Issue
Block a user