版权声明:本博客为自己总结亦或在网上发现的技术博文的转载。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 邮箱:[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()));
重启部署服务,完美解决。