springboot使用javaMailSender发送邮件时附件名太长会被截取掉或者中文乱码问题

public void sendMail() {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        //邮件设置值
        mimeMessageHelper.setSubject("邮件主题");//邮件主题
        mimeMessageHelper.setText("<b style='color:red'>就这?</b>", true);//邮件内容
        mimeMessageHelper.setText("<a href=\"https://www.baidu.com/\">111</a>", true);//邮件内容
        //邮件 附件
        String attachmentFilename = "0215165,我是卧底,打扫房间欧文放假哦.pdf";
        mimeMessageHelper.addAttachment(attachmentFilename, new File("D:\\test.pdf"));
        mimeMessageHelper.setTo("xxxx@qq.com");//邮件发给谁
        mimeMessageHelper.setFrom("xxx@qq.com"); //邮件来自于谁
        javaMailSender.send(mimeMessage);
    }

我们在发送邮件的时候需要带上附件,但是有时候因为附件名字太长会被截取掉或者附件名字为数字和中文的组合导致有些中文乱码,所以我们需要进行相应的处理。

我们只需要到代码中加入这行代码就行了

 System.getProperties().setProperty("mail.mime.splitlongparameters", "false");

ok,现在就不会乱码了。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐