【Java Mail】发送邮件报错com.sun.mail.util.MailLogger未找到

目录

问题描述

问题排查

解决方法


问题描述

在使用Java Mail测试发送邮件时报错:

    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
        at javax.mail.Session.initLogger(Session.java:283)
        at javax.mail.Session.<init>(Session.java:268)
        at javax.mail.Session.getInstance(Session.java:321)
        at com.azureip.tmspider.controller.TestController.javaMailTest(TestController.java:161)
        at com.azureip.tmspider.controller.TestController.main(TestController.java:72)
    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:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 5 more


问题排查

查看自己的pom.xml配置:

        <!-- Java Mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.6.2</version>
        </dependency>

 

最终确定原因为“javax.mail-api-1.6.2.jar”包中不包含类“com.sun.mail.util.MailLogger”。

com.sun.mail.util.MailLogger是JavaMail API的一部分,已经包含在Java EE环境中,但是并未包含在Java SE环境中。对于SE环境来说,Java Mail组件是可选组件。一般我们测试时肯定是在SE环境下进行的,所以会有这样的报错。

参考StackOverflow上的问题:

    NoClassDefFoundError: com/sun/mail/util/MailLogger for JUnit test case for Java mail


解决方法

修改pom.xml中JavaMail的依赖配置为:

        <!-- Java Mail -->
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.6.2</version>
        </dependency>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值