本文主要是介绍【解决】JavaMailSender发送邮件附件:文件名乱码或者不显示文件格式问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【解决】JavaMailSender发送邮件附件:文件名乱码或者不显示文件格式问题
解决重点
再创建 MimeMessageHelper 对象之前加上
System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
例子
private void sendMimeMail(MailVo mailVo) {try {//防止文件名乱码或者不显示文件格式问题System.getProperties().setProperty("mail.mime.splitlongparameters", "false");MimeMessageHelper messageHelper = new MimeMessageHelper(mailSender.createMimeMessage(), true, "UTF-8");//true表示支持复杂类型messageHelper.setFrom(mailVo.getFrom());//邮件发信人messageHelper.setTo(mailVo.getTo().split(","));//邮件收信人messageHelper.setSubject(mailVo.getSubject());//邮件主题messageHelper.setText(mailVo.getText());//邮件内容if (!StringUtils.isEmpty(mailVo.getCc())) {//抄送messageHelper.setCc(mailVo.getCc().split(","));}if (!StringUtils.isEmpty(mailVo.getBcc())) {//密送messageHelper.setCc(mailVo.getBcc().split(","));}if (mailVo.getMultipartFiles() != null) {//添加邮件附件for (MultipartFile multipartFile : mailVo.getMultipartFiles()) {if(multipartFile.getOriginalFilename()!=null&&!multipartFile.getOriginalFilename().isEmpty()) {messageHelper.addAttachment(multipartFile.getOriginalFilename(),multipartFile);}else {messageHelper.addAttachment(multipartFile.getName(),multipartFile);}}}mailVo.setSentDate(new Date());mailSender.send(messageHelper.getMimeMessage());//正式发送邮件mailVo.setStatus("ok");} catch (Exception e) {throw new RuntimeException(e);//发送失败}}
出现的问题
QQ邮箱文件名显示不完整,没有格式
163邮箱没有自定义的文件名
成果
参考:https://blog.csdn.net/LHQChocolate/article/details/88713195
参考:https://blog.csdn.net/qq_21036901/article/details/84380973
这篇关于【解决】JavaMailSender发送邮件附件:文件名乱码或者不显示文件格式问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!