我正在使用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
我已经在这个问题上工作了一天多。有人可以帮我理解这个问题吗?我假设这将是一个类路径问题。但是,我怎样才能解决这类问题。请帮忙。
答案 0 :(得分:0)
传输应该是“smtp”而不是“https”(我的意思是在端口25 ..)
据我所知,没有“https”邮件传输提供商,也许升级之前和之后使用的java邮件API不一样,而旧版本则回退到“smtp”。
另请参阅:http://docs.oracle.com/javaee/7/api/javax/mail/package-summary.html