我试图从Spring网络应用程序发送邮件而在生产中失败但在UAT中取得了成功。此Spring Web应用程序通过端口25部署在Tomcat服务器上,无需身份验证,无SSL。
错误 java.lang.noclassdeffounderror:com.sun.mail.uti.maillogger
重要
abcd.com是内部域名zxc.com是外部域名
我正在使用:
春天 - 4.2.6.RELEASE javax.mail-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;
}
答案 0 :(得分:1)
com.sun.mail.util.MailLogger
是JavaMail API [1]的一部分,存在于Java EE(Web应用程序服务器)中。
com.sun.mail.util.MailLogger
。
也许,UAT使用Java EE,因此成功。 生产使用没有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
答案 1 :(得分:0)
由于某种原因,未找到依赖项(可能是因为它不在JRE环境中)。尝试将此依赖项添加到您的pom.xml:
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.0</version>
</dependency>