List of usage examples for org.springframework.integration.mail ImapMailReceiver setShouldDeleteMessages
public void setShouldDeleteMessages(boolean shouldDeleteMessages)
From source file:io.lavagna.service.MailTicketService.java
private MailReceiver getImapMailReceiver(ProjectMailTicketConfigData config) { String sanitizedUsername = sanitizeUsername(config.getInboundUser()); String inboxFolder = getInboxFolder(config); String url = config.getInboundProtocol() + "://" + sanitizedUsername + ":" + config.getInboundPassword() + "@" + config.getInboundServer() + ":" + config.getInboundPort() + "/" + inboxFolder.toLowerCase(); ImapMailReceiver receiver = new ImapMailReceiver(url); receiver.setShouldMarkMessagesAsRead(true); receiver.setShouldDeleteMessages(false); Properties mailProperties = new Properties(); if (config.getInboundProtocol().equals("imaps")) { mailProperties.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); mailProperties.setProperty("mail.pop3.socketFactory.fallback", "false"); }//from www . ja va2 s .com mailProperties.setProperty("mail.store.protocol", config.getInboundProtocol()); mailProperties.putAll(config.generateInboundProperties()); receiver.setJavaMailProperties(mailProperties); receiver.afterPropertiesSet(); return receiver; }
From source file:org.springframework.integration.mail.ImapMailReceiverTests.java
public void testIdleWithServerGuts(ImapMailReceiver receiver, boolean mapped, boolean simple) throws Exception { imapIdleServer.resetServer();/*from w w w . ja v a 2 s. co m*/ Properties mailProps = new Properties(); mailProps.put("mail.debug", "true"); mailProps.put("mail.imap.connectionpool.debug", "true"); receiver.setJavaMailProperties(mailProps); receiver.setMaxFetchSize(1); receiver.setShouldDeleteMessages(false); receiver.setShouldMarkMessagesAsRead(true); receiver.setCancelIdleInterval(8); ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); setUpScheduler(receiver, taskScheduler); receiver.setUserFlag("testSIUserFlag"); receiver.afterPropertiesSet(); Log logger = spy(TestUtils.getPropertyValue(receiver, "logger", Log.class)); new DirectFieldAccessor(receiver).setPropertyValue("logger", logger); ImapIdleChannelAdapter adapter = new ImapIdleChannelAdapter(receiver); QueueChannel channel = new QueueChannel(); adapter.setOutputChannel(channel); adapter.setTaskScheduler(taskScheduler); adapter.start(); if (!mapped) { @SuppressWarnings("unchecked") org.springframework.messaging.Message<MimeMessage> received = (org.springframework.messaging.Message<MimeMessage>) channel .receive(10000); assertNotNull(received); assertNotNull(received.getPayload().getReceivedDate()); assertTrue(received.getPayload().getLineCount() > -1); if (simple) { assertThat(received.getPayload().getContent(), equalTo(TestMailServer.MailServer.MailHandler.BODY + "\r\n")); } else { assertThat(received.getPayload().getContent(), equalTo(TestMailServer.MailServer.MailHandler.MESSAGE + "\r\n")); } } else { org.springframework.messaging.Message<?> received = channel.receive(10000); assertNotNull(received); assertNotNull(received.getHeaders().get(MailHeaders.RAW_HEADERS)); assertThat((String) received.getHeaders().get(MailHeaders.CONTENT_TYPE), equalTo("TEXT/PLAIN; charset=ISO-8859-1")); assertThat((String) received.getHeaders().get(MessageHeaders.CONTENT_TYPE), equalTo("TEXT/PLAIN; charset=ISO-8859-1")); assertThat((String) received.getHeaders().get(MailHeaders.FROM), equalTo("Bar <bar@baz>")); assertThat(((String[]) received.getHeaders().get(MailHeaders.TO))[0], equalTo("Foo <foo@bar>")); assertThat((String) received.getHeaders().get(MailHeaders.SUBJECT), equalTo("Test Email")); if (simple) { assertThat(received.getPayload(), equalTo(TestMailServer.MailServer.MailHandler.BODY + "\r\n")); } else { assertThat(received.getPayload(), equalTo(TestMailServer.MailServer.MailHandler.MESSAGE + "\r\n")); } } assertNotNull(channel.receive(10000)); // new message after idle assertNull(channel.receive(10000)); // no new message after second and third idle verify(logger).debug("Canceling IDLE"); taskScheduler.shutdown(); assertTrue(imapIdleServer.assertReceived("storeUserFlag")); }