Spring发邮件-Unable to locate provider for protocol: smtp

 

依赖如下:

[INFO] |  +- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:compile
[INFO] |  +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile

 

异常如下:

org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp. Failed messages: javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp; message exception details (1) are:
Failed message 1:
javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp
        at javax.mail.Session.getProvider(Session.java:237)
        at javax.mail.Session.getTransport(Session.java:346)
        at org.springframework.mail.javamail.JavaMailSenderImpl.getTransport(JavaMailSenderImpl.java:459)
        at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:388)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)

 

解决方案:

参考

http://comments.gmane.org/gmane.comp.java.servicemix.user/5205

 

替换上述依赖jar包为:

activation-1.1.jar
mail-1.4.jar

 

具体原因:

linux下,无法使用上述依赖的包。替换后,done!!!

 

自己的一些感悟:

你遇到的问题,基本上都已经有人遇到了。毕竟,你在使用别人开发的技术。所以,一定要善于利用搜索引擎和多多总结。

 

posted @ 2013-12-16 14:46  robertyu  阅读(4738)  评论(0编辑  收藏  举报