一、原因
1. 文件变为tcmime.*.bin
在Java邮件发送中,默认情况下,附件名称过长会自动截断且变为tcmime.*.bin,无法打开查看。
2. 乱码
编码格式问题
二、解决方案
1. 解决文件变为tcmime.*.bin
在初始化时设置参数,下面用到了一个Java本身的注解@PostConstruct,被该注解标注的方法,会在程序启动过程中执行一次,具体执行顺序不再赘述。在这里,可以用静态代码块代替。代码如下:
@PostConstruct
private void init() {
// 默认java关于邮箱的参数splitlongparameters为true, 即太长会处理为.bin
// 我们手动关闭即可
System.setProperty("mail.mime.splitlongparameters", "false");
}
该段代码放在哪里无所谓,但要保证所在的类在启动时要被加载,在Spring中可以被认为是被@Compoent、@Service、@Controller等注解标注的类。
2. 解决乱码问题
设置编码即可,可以跟上述配置一起使用
@PostConstruct
private void init() {
System.setProperty("mail.mime.charset", "UTF-8");
}