在Spring上下文升级之后没有这样的https提供程序

时间:2014-10-11 05:48:02

标签: java spring javamail

我正在使用Spring MVC应用程序,它使用Spring JavaMail package发送电子邮件.i。

org.springframework.mail.javamail.JavaMailSenderImpl

我在bean创建过程中有属性

<bean id="mailInfo" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="port" value="25" />
        <!-- <property name="username" value="xxxx@yyy.com" /> -->
        <property name="username" value="aaaa@bbbb.com" />
        <property name="password" value="xxxxx" />
        <property name="javaMailProperties">
            <props>
                <prop key="mail.transport.protocol">https</prop>
                <prop key="mail.smtp.host">hostname</prop>
                <prop key="mail.smtps.auth">true</prop>
                <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
                <prop key="mail.smtp.socketFactory.port">25</prop>
                <prop key="mail.debug">true</prop>
                <prop key="mail.smtp.ssl.enable">false</prop>
                <prop key="mail.smtp.ssl.trust">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.smtp.socketFactory.fallback">true</prop>
            </props>
        </property>
    </bean>

工作正常。我正在使用Ehcache 2.8.1添加缓存功能。我不得不将spring-context升级到至少3.1版本。但是,当我将spring-context-support升级到3.2.3时。它开始抛出下面的例外。

ERROR MailServiceImpl:130 - MailSendException:Mail server connection failed; nested    
exception is javax.mail.NoSuchProviderException: No provider for https.
Failed messages: javax.mail.NoSuchProviderException: No provider for https

我已经在这个问题上工作了一天多。有人可以帮我理解这个问题吗?我假设这将是一个类路径问题。但是,我怎样才能解决这类问题。请帮忙。

1 个答案:

答案 0 :(得分:0)

传输应该是“smtp”而不是“https”(我的意思是在端口25 ..)

据我所知,没有“https”邮件传输提供商,也许升级之前和之后使用的java邮件API不一样,而旧版本则回退到“smtp”。

另请参阅:http://docs.oracle.com/javaee/7/api/javax/mail/package-summary.html