有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MIMessageHelper西里尔文名称附件

你好!我找不到问题的答案,所以我需要帮助。我正在使用mimessage发送带有西里尔字母名称的pdf附件的电子邮件。在thunderbird邮件客户机上,我看到了附件的名称(没有任何问题),但在outlook上,附件的名称看起来像=UTF-8?4FG54。。。附件是pdf文件,我无法理解为什么会发生这种情况,因为我在两个客户端上都正确地看到了西里尔文上的邮件正文和主题

MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "UTF-8");
messageHelper.setFrom("myMail@mail.com");
messageHelper.setTo("target@mail.com");
messageHelper.setSubject("Заголовок");
messageHelper.setText("Письмо");
messageHelper.addAttachment("Файл.pdf", new ByteArrayResource(data));
javaMailSender.send(message);  

消息类型为mimessage


共 (2) 个答案

  1. # 1 楼答案

    试试这个

    mimeMessageHelper.setEncodeFilenames(false);
    
  2. # 2 楼答案

    试试这个:

    messageHelper.addAttachment(MimeUtility.encodeText("Файл.pdf", "CP1251", "B"), new ByteArrayResource(attach)); 
    

    这对我有帮助

    或者这个https://stackoverflow.com/a/49596504/8425969