Example usage for org.springframework.integration.mail ImapMailReceiver setShouldDeleteMessages

List of usage examples for org.springframework.integration.mail ImapMailReceiver setShouldDeleteMessages

Introduction

In this page you can find the example usage for org.springframework.integration.mail ImapMailReceiver setShouldDeleteMessages.

Prototype

public void setShouldDeleteMessages(boolean shouldDeleteMessages) 

Source Link

Document

Specify whether mail messages should be deleted after retrieval.

Usage

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"));
}