依赖如下:
[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!!!
自己的一些感悟:
你遇到的问题,基本上都已经有人遇到了。毕竟,你在使用别人开发的技术。所以,一定要善于利用搜索引擎和多多总结。