javamail在linux环境中发送邮件问题总结

版权声明:本博客为自己总结亦或在网上发现的技术博文的转载。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 邮箱:[email protected] 版权声明:本文为博主原创文章,博客地址:https://blog.csdn.net/ChinaMuZhe,未经博主允许不得转载。 https://blog.csdn.net/ChinaMuZhe/article/details/88743900

在windows中使用javamail发送邮件成功,附件也没问题。当服务部署到linux后,发现收不到邮件。解决步骤如下:

步骤一:

ping smtp.126.com

提示:unknow host

解决:配置dns

配置完之后还是无法发送邮件,日志报错:cannot connect to  smtp.126.com port 25

步骤二:

将25端口换成465端口。代码如下:

properties.setProperty("mail.smtp.port", "465");
properties.setProperty("mail.smtp.socketFactory.port", "465");
properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

配置完之后可以发送邮件。但是:附件名称和后缀不对了,在Windows下没有这个问题

步骤三:

修改代码:

BodyPart messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(MimeUtility.encodeText(source.getName()));

重启部署服务,完美解决。

猜你喜欢

转载自blog.csdn.net/ChinaMuZhe/article/details/88743900