org.springframework.boot:spring-boot-starter-mail
Als ich die angehängte Datei mit der im Web und in Qiita verfügbaren Mail-Versandmethode von Spring verschickte, wurde der Name der angehängten Datei verstümmelt.
Anscheinend ist es in Ordnung, wenn der Dateiname nur japanisch ist, aber es scheint, dass dieses verstümmelte Zeichen auftritt, wenn die Dateikennung eingegeben wird (ich habe hier nicht im Detail untersucht).
private void sendMail(File file) throws MessagingException, URISyntaxException, IOException {
JavaMailSender sender = this.getMailSender();
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, StandardCharsets.UTF_8.name());
String toAddr = this.mailToAddr;
helper.setTo(toAddr);
//Unterstützt mehrere CC-Adressen (durch Kommas getrennt))
if (!StringUtils.isEmpty(this.mailCcAddrs)) {
String[] ccAddrArr = this.mailCcAddrs.split(",");
helper.setTo(ccAddrArr);
}
String subject = "Dies ist eine Testmail";
helper.setSubject(subject);
//Mail-Body-Vorlage abrufen
Path path = Paths.get(getClass().getClassLoader()
.getResource("mail_template.txt").toURI());
Stream<String> lines = Files.lines(path);
String template = lines.collect(Collectors.joining("\n"));
String body = template.replace("[[Replace]]", toAddr);
lines.close();
helper.setText(body);
//Datei anhängen
helper.addAttachment("Der Name der angehängten Datei Die angehängte ist eine Vorlage.txt", file);
sender.send(message);
}
MimeUtility.encodeWord("Dateiname");
Ändern Sie diese Eigenschaft, bevor Sie Ihre erste MimeMessage-Instanz erstellen
System.setProperty("mail.mime.splitlongparameters", "false");