/* * Copyright 2014-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.integration.samples.si4demo.springone.g; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.dsl.IntegrationFlow; import org.springframework.integration.dsl.IntegrationFlows; import org.springframework.integration.mail.MailHeaders; import org.springframework.integration.mail.dsl.Mail; import org.springframework.integration.samples.si4demo.springone.GMailProperties; /** * * @author Gary Russell * */ @Configuration @EnableConfigurationProperties(GMailProperties.class) @EnableAutoConfiguration public class GIMAP { @Autowired GMailProperties gmail; public static void main(String[] args) throws Exception { ConfigurableApplicationContext ctx = new SpringApplicationBuilder(GIMAP.class) .web(WebApplicationType.NONE) .run(args); System.out.println("Hit Enter to terminate"); System.in.read(); ctx.close(); } @Bean IntegrationFlow imapIdle() { return IntegrationFlows.from(Mail.imapIdleAdapter( "imaps://" + gmail.getUser().replaceAll("@", "%40") + ":" + gmail.getPassword() + "@imap.gmail.com:993/INBOX") .id("imapIn") .autoStartup(true) .javaMailProperties(p -> p.put("mail.debug", "false"))) .enrichHeaders(s -> s.headerExpressions(h -> h .put(MailHeaders.SUBJECT, "payload.subject") .put(MailHeaders.FROM, "payload.from[0].toString()"))) .transform("payload.content") .handle(System.out::println) .get(); } }