001 /** 002 * 003 * Licensed to the Apache Software Foundation (ASF) under one or more 004 * contributor license agreements. See the NOTICE file distributed with 005 * this work for additional information regarding copyright ownership. 006 * The ASF licenses this file to You under the Apache License, Version 2.0 007 * (the "License"); you may not use this file except in compliance with 008 * the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 package org.apache.camel.component.mail; 019 020 import org.springframework.mail.MailAuthenticationException; 021 import org.springframework.mail.MailException; 022 import org.springframework.mail.MailSendException; 023 import org.springframework.mail.javamail.JavaMailSenderImpl; 024 025 import javax.mail.AuthenticationFailedException; 026 import javax.mail.MessagingException; 027 import javax.mail.Transport; 028 import javax.mail.Folder; 029 import javax.mail.Store; 030 031 /** 032 * An extension of Spring's {@link JavaMailSenderImpl} to provide helper methods for listening for new mail 033 * 034 * @version $Revision: 1.1 $ 035 */ 036 public class JavaMailConnection extends JavaMailSenderImpl { 037 038 public Folder getFolder(String protocol, String folderName) { 039 try { 040 Store store = getSession().getStore(protocol); 041 store.connect(getHost(), getPort(), getUsername(), getPassword()); 042 return store.getFolder(folderName); 043 } 044 catch (MessagingException e) { 045 throw new MailSendException("Mail server connection failed", e); 046 } 047 } 048 }