今天用MailUitl工具类发送邮件报如下错误。。。
错误提示:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
at javax.mail.Session.initLogger(Session.java:230)
at javax.mail.Session.<init>(Session.java:214)
at javax.mail.Session.getInstance(Session.java:251)
at com.ssm01.util.MailUtil.sendMail(MailUtil.java:42)
at com.ssm01.util.MailUtil.main(MailUtil.java:69)
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
解决方案:
原来的pom.xml mail的依赖
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.6</version>
</dependency>
改为:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
或改为:
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.0</version>
</dependency>
或改为:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.5</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.5</version>
</dependency>
可能原因:
com.sun.mail.util。MailLogger是JavaMail API的一部分。它已经包含在EE环境中(这就是为什么您可以在您的活动服务器上使用它),但是它没有包含在SE环境中。
JavaMail API是可选的包,可与Java SE平台一起使用,Java EE平台中也包含了JavaMail API。
javax。mail-api工件只适合于编译。您实际上需要运行代码,因此需要JavaMail的完整实现。