SpringJavaMailSender和MS Exchange:java。lang.noclassdeffounderror:com。太阳邮政uti。邮件记录器
我试图从SpringWeb应用程序发送邮件,但在生产中失败,但在UAT中成功。这个SpringWeb应用程序通过端口25部署在Tomcat服务器上,没有身份验证,也没有SSL
错误 java。lang.noclassdeffounderror:com。太阳邮政uti。邮件记录器
重要的
abcd。com是内部域zxc。com是外部域
我正在使用:
弹簧-4.2.6。释放 javax。邮件api-1.5.5 邮件-1.4.1
@Bean
public JavaMailSender getMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
// Using PROD.
mailSender.setHost("smtp.abcd.com");
mailSender.setPort(25);
mailSender.setUsername("imsdc@abcd.com");
mailSender.setPassword("test017");
Properties javaMailProperties = new Properties();
javaMailProperties.put("mail.smtp.starttls.enable", "false");
javaMailProperties.put("mail.smtp.auth", "false");
javaMailProperties.put("mail.transport.protocol", "smtp");
javaMailProperties.put("mail.debug", "true"); //
mailSender.setJavaMailProperties(javaMailProperties);
return mailSender;
}
# 1 楼答案
com.sun.mail.util.MailLogger
是JavaMail API[1]的一部分,存在于JavaEE(web应用服务器)中com.sun.mail.util.MailLogger
在Java SE中不存在也许,UAT使用JavaEE,因此获得了成功。 生产使用没有JavaMail的Tomcat,因此失败
解决方案:下载,将JavaMail依赖项添加到您的生产环境[2](将JavaMail jar依赖项放到
%CATALINA_HOME%\lib
,或者通过Maven pom.xml文件添加JavaMail依赖项)[1]http://www.oracle.com/technetwork/java/javamail/index.html [2] https://javaee.github.io/javamail/#Download_JavaMail_Release
# 2 楼答案
由于某些原因,找不到依赖项(可能是因为它不在JRE环境中)。尝试将此依赖项添加到pom中。xml: