Java开发实现邮件发送携带附件
邮件接收时发现文件名字乱码后缀变为bin,如下图
这里查阅了其他博主的博客,大致是说编码格式问题导致乱码,又或是诸如文件名过长或是文件名中包含有中文的问题,这里博主的代码中只有文件路径是含有中文的,在更改了路径后还是出现了这个问题,博主自认为自己与他们的不是同一个问题
将bin文件后缀改为png后图片还是能正常打开,说明附件传输还是没有问题的
那么或许我们给附件添加一个名字就可以解决这个问题
代码如下:
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setFileName(MimeUtility.encodeText("a.png"));
问题成功解决
完整代码如下:
// 可以设置多个附件
MimeBodyPart mimeBodyPart = new MimeBodyPart();
String filePath = "E:\\xxx\\xxx\\a.png";
mimeBodyPart.setContent("", "text/html;charset=UTF-8");
mimeBodyPart.setDataHandler(new DataHandler(new FileDataSource(filePath)));
mimeBodyPart.setFileName(MimeUtility.encodeText("a.png"));