【问题标题】:MimeMessageHelper cyrillic name attachmentMimeMessageHelper 西里尔文名称附件
【发布时间】:2017-11-26 19:50:04
【问题描述】:

美好的一天!找不到我的问题的答案,所以我需要帮助。我正在使用 MimeMessage 发送带有西里尔字母名称的 pdf 附件的电子邮件。在雷鸟邮件客户端上,我看到附件的名称应该是(没有任何问题),但在 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);  

消息是 MimeMessage 类型

【问题讨论】:

  • 这甚至是您的程序错误,还是 Outlook 通常会因此而失败,即使是从不同的客户端发送的?也许这与您的代码无关(因此在这里是题外话)
  • MimeUtility.encodeText("Файл.pdf")

标签: java email


【解决方案1】:

试试这个:

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

对我有帮助

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

【讨论】:

    【解决方案2】:

    试试这个

    mimeMessageHelper.setEncodeFilenames(false);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      相关资源
      最近更新 更多