/** * Creates a new {@link OutputStreamTransport}. * * @param session {@link Session}. */ public OutputStreamTransport(final Session session) { super(session, new URLName("JODD_MAIL_2_EML", null, -1, null, null, null)); }
/** * Returns email store. * * @param session {@link Session} * @return {@link com.sun.mail.imap.IMAPSSLStore} */ @Override protected IMAPSSLStore getStore(final Session session) { SimpleAuthenticator simpleAuthenticator = (SimpleAuthenticator) authenticator; final URLName url; if (simpleAuthenticator == null) { url = new URLName( PROTOCOL_IMAP, host, port, StringPool.EMPTY, null, null); } else { final PasswordAuthentication pa = simpleAuthenticator.getPasswordAuthentication(); url = new URLName( PROTOCOL_IMAP, host, port, StringPool.EMPTY, pa.getUserName(), pa.getPassword()); } return new IMAPSSLStore(session, url); }
/** * Returns email store. * * @param session {@link Session} * @return {@link com.sun.mail.pop3.POP3SSLStore} */ @Override protected POP3SSLStore getStore(final Session session) { final SimpleAuthenticator simpleAuthenticator = (SimpleAuthenticator) authenticator; final URLName url; if (simpleAuthenticator == null) { url = new URLName( PROTOCOL_POP3, host, port, StringPool.EMPTY, null, null); } else { final PasswordAuthentication pa = simpleAuthenticator.getPasswordAuthentication(); url = new URLName( PROTOCOL_POP3, host, port, StringPool.EMPTY, pa.getUserName(), pa.getPassword()); } return new POP3SSLStore(session, url); }
public void sendMessages() throws MessagingException { Transport transport = null; try { URLName url = new URLName("smtp", host, port, "", username, password); if (session == null) { createSession();
? MailConnectionMeta.DEFAULT_SSL_POP3_PORT : MailConnectionMeta.DEFAULT_SSL_IMAP_PORT ); URLName url = new URLName( protocolString, server, port, "", username, password ); this.store = ( protocol == MailConnectionMeta.PROTOCOL_POP3 ) this.session.setDebug( log.isDebug() ); if ( protocol == MailConnectionMeta.PROTOCOL_MBOX ) { this.store = this.session.getStore( new URLName( protocolString + ":" + server ) ); } else { this.store = this.session.getStore( protocolString );
public AbstractMailReceiver(String url) { if (url != null) { this.url = new URLName(url); } else { this.url = null; } }
public Pop3MailReceiver(String host, int port, String username, String password) { super(new URLName(PROTOCOL, host, port, "INBOX", username, password)); }
/** * Get a Transport object that implements the specified protocol. * If an appropriate Transport object cannot be obtained, null is * returned. * * @param protocol the Transport protocol * @return a Transport object * @exception NoSuchProviderException If provider for the given * protocol is not found. */ public Transport getTransport(String protocol) throws NoSuchProviderException { return getTransport(new URLName(protocol, null, -1, null, null, null)); }
/** * Get a Transport object that implements the specified protocol. * If an appropriate Transport object cannot be obtained, null is * returned. * * @param protocol the Transport protocol * @return a Transport object * @exception NoSuchProviderException If provider for the given * protocol is not found. */ public Transport getTransport(String protocol) throws NoSuchProviderException { return getTransport(new URLName(protocol, null, -1, null, null, null)); }
/** * Get a Store object that implements the specified protocol. If an * appropriate Store object cannot be obtained, * NoSuchProviderException is thrown. * * @param protocol the Store protocol * @return a Store object * @exception NoSuchProviderException If a provider for the given * protocol is not found. */ public Store getStore(String protocol) throws NoSuchProviderException { return getStore(new URLName(protocol, null, -1, null, null, null)); }
/** * Get a Store object that implements the specified protocol. If an * appropriate Store object cannot be obtained, * NoSuchProviderException is thrown. * * @param protocol the Store protocol * @return a Store object * @exception NoSuchProviderException If a provider for the given * protocol is not found. */ public Store getStore(String protocol) throws NoSuchProviderException { return getStore(new URLName(protocol, null, -1, null, null, null)); }
private void verifyProtocol() { if (StringUtils.hasText(this.storeUri)) { URLName urlName = new URLName(this.storeUri); if (this.protocol == null) { this.protocol = urlName.getProtocol(); } else { Assert.isTrue(this.protocol.equals(urlName.getProtocol()), "The provided 'protocol' does not match that in the 'storeUri'."); } } else { Assert.hasText(this.protocol, "Either the 'storeUri' or 'protocol' is required."); } Assert.hasText(this.protocol, "Unable to resolve protocol."); }
/** * Return a URLName representing this service. The returned URLName * does <em>not</em> include the password field. <p> * * Subclasses should only override this method if their * URLName does not follow the standard format. <p> * * The implementation in the Service class returns (usually a copy of) * the <code>url</code> field with the password and file information * stripped out. * * @return the URLName representing this service * @see URLName */ public URLName getURLName() { URLName url = this.url; // snapshot if (url != null && (url.getPassword() != null || url.getFile() != null)) return new URLName(url.getProtocol(), url.getHost(), url.getPort(), null /* no file */, url.getUsername(), null /* no password */); else return url; }
@Test public void pop3Adapter() { Object adapter = context.getBean("pop3Adapter"); assertEquals(SourcePollingChannelAdapter.class, adapter.getClass()); DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter); assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup")); Object channel = context.getBean("channel"); assertEquals(channel, adapterAccessor.getPropertyValue("outputChannel")); Object source = adapterAccessor.getPropertyValue("source"); assertEquals(MailReceivingMessageSource.class, source.getClass()); Object receiver = new DirectFieldAccessor(source).getPropertyValue("mailReceiver"); assertEquals(Pop3MailReceiver.class, receiver.getClass()); DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver); Object url = receiverAccessor.getPropertyValue("url"); assertEquals(new URLName("pop3:bar"), url); Properties properties = (Properties) receiverAccessor.getPropertyValue("javaMailProperties"); assertEquals("bar", properties.getProperty("foo")); }
@Test public void imapAdapter() { Object adapter = context.getBean("imapAdapter"); assertEquals(SourcePollingChannelAdapter.class, adapter.getClass()); DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter); assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup")); Object channel = context.getBean("channel"); assertEquals(channel, adapterAccessor.getPropertyValue("outputChannel")); Object source = adapterAccessor.getPropertyValue("source"); assertEquals(MailReceivingMessageSource.class, source.getClass()); Object receiver = new DirectFieldAccessor(source).getPropertyValue("mailReceiver"); assertEquals(ImapMailReceiver.class, receiver.getClass()); DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver); Object url = receiverAccessor.getPropertyValue("url"); assertEquals(new URLName("imap:foo"), url); Properties properties = (Properties) receiverAccessor.getPropertyValue("javaMailProperties"); assertEquals("bar", properties.getProperty("foo")); }
@Test public void customAdapter() { Object adapter = context.getBean("customAdapter"); assertEquals(ImapIdleChannelAdapter.class, adapter.getClass()); DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter); Object channel = context.getBean("channel"); assertSame(channel, adapterAccessor.getPropertyValue("outputChannel")); assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup")); Object receiver = adapterAccessor.getPropertyValue("mailReceiver"); assertEquals(ImapMailReceiver.class, receiver.getClass()); DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver); Object url = receiverAccessor.getPropertyValue("url"); assertEquals(new URLName("imap:foo"), url); Properties properties = (Properties) receiverAccessor.getPropertyValue("javaMailProperties"); assertEquals("bar", properties.getProperty("foo")); assertEquals(Boolean.FALSE, receiverAccessor.getPropertyValue("shouldDeleteMessages")); SearchTermStrategy stStrategy = context.getBean("searchTermStrategy", SearchTermStrategy.class); assertEquals(stStrategy, TestUtils.getPropertyValue(adapter, "mailReceiver.searchTermStrategy")); }
@Test public void simpleAdapterWithMarkeMessagesAsReadFalse() { Object adapter = context.getBean("simpleAdapterMarkAsReadFalse"); assertEquals(ImapIdleChannelAdapter.class, adapter.getClass()); DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter); Object channel = context.getBean("channel"); assertSame(channel, adapterAccessor.getPropertyValue("outputChannel")); assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup")); Object receiver = adapterAccessor.getPropertyValue("mailReceiver"); assertEquals(ImapMailReceiver.class, receiver.getClass()); DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver); Object url = receiverAccessor.getPropertyValue("url"); assertEquals(new URLName("imap:foo"), url); Properties properties = (Properties) receiverAccessor.getPropertyValue("javaMailProperties"); // mail.imap(s).peek properties assertEquals(2, properties.size()); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("shouldDeleteMessages")); assertEquals(Boolean.FALSE, receiverAccessor.getPropertyValue("shouldMarkMessagesAsRead")); }
@Test public void simpleAdapterWithMarkeMessagesAsRead() { Object adapter = context.getBean("simpleAdapterMarkAsRead"); assertEquals(ImapIdleChannelAdapter.class, adapter.getClass()); DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter); Object channel = context.getBean("channel"); assertSame(channel, adapterAccessor.getPropertyValue("outputChannel")); assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup")); Object receiver = adapterAccessor.getPropertyValue("mailReceiver"); assertEquals(ImapMailReceiver.class, receiver.getClass()); DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver); Object url = receiverAccessor.getPropertyValue("url"); assertEquals(new URLName("imap:foo"), url); Properties properties = (Properties) receiverAccessor.getPropertyValue("javaMailProperties"); // mail.imap(s).peek properties assertEquals(2, properties.size()); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("shouldDeleteMessages")); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("shouldMarkMessagesAsRead")); assertEquals("flagged", receiverAccessor.getPropertyValue("userFlag")); }
@Test public void transactionalAdapter() { Object adapter = context.getBean("transactionalAdapter"); assertEquals(ImapIdleChannelAdapter.class, adapter.getClass()); DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter); Object channel = context.getBean("channel"); assertSame(channel, adapterAccessor.getPropertyValue("outputChannel")); assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup")); Object receiver = adapterAccessor.getPropertyValue("mailReceiver"); assertEquals(ImapMailReceiver.class, receiver.getClass()); DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver); Object url = receiverAccessor.getPropertyValue("url"); assertEquals(new URLName("imap:foo"), url); Properties properties = (Properties) receiverAccessor.getPropertyValue("javaMailProperties"); // mail.imap(s).peek properties assertEquals(2, properties.size()); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("shouldDeleteMessages")); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("shouldMarkMessagesAsRead")); assertNull(adapterAccessor.getPropertyValue("errorChannel")); assertEquals(context.getBean("executor"), adapterAccessor.getPropertyValue("sendingTaskExecutor")); assertNotNull(adapterAccessor.getPropertyValue("adviceChain")); } public static class TestSearchTermStrategy implements SearchTermStrategy {
@Test public void simpleAdapterWithErrorChannel() { Object adapter = context.getBean("simpleAdapterWithErrorChannel"); assertEquals(ImapIdleChannelAdapter.class, adapter.getClass()); DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter); Object channel = context.getBean("channel"); assertSame(channel, adapterAccessor.getPropertyValue("outputChannel")); assertEquals(Boolean.FALSE, adapterAccessor.getPropertyValue("autoStartup")); Object receiver = adapterAccessor.getPropertyValue("mailReceiver"); assertEquals(ImapMailReceiver.class, receiver.getClass()); DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver); Object url = receiverAccessor.getPropertyValue("url"); assertEquals(new URLName("imap:foo"), url); Properties properties = (Properties) receiverAccessor.getPropertyValue("javaMailProperties"); // mail.imap(s).peek properties assertEquals(2, properties.size()); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("shouldDeleteMessages")); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("shouldMarkMessagesAsRead")); assertSame(context.getBean("errorChannel"), adapterAccessor.getPropertyValue("errorChannel")); assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("embeddedPartsAsBytes")); assertNull(receiverAccessor.getPropertyValue("headerMapper")); assertEquals(Boolean.FALSE, receiverAccessor.getPropertyValue("simpleContent")); }