org.springframework.boot:spring-boot-starter-mail
Lorsque j'ai envoyé le fichier joint à l'aide de la méthode d'envoi de courrier de Spring, disponible sur le Web et dans Qiita, le nom du fichier joint était déformé.
Apparemment, c'est OK si le nom du fichier est uniquement japonais, mais il semble que ce caractère déformé se produit lorsque l'identifiant du fichier est entré (je n'ai pas étudié en détail ici)
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);
//Prend en charge plusieurs adresses CC (séparées par des virgules))
if (!StringUtils.isEmpty(this.mailCcAddrs)) {
String[] ccAddrArr = this.mailCcAddrs.split(",");
helper.setTo(ccAddrArr);
}
String subject = "Ceci est un mail de test";
helper.setSubject(subject);
//Obtenir le modèle de corps de courrier
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);
//joindre un fichier
helper.addAttachment("Le nom du fichier joint Le modèle joint est.txt", file);
sender.send(message);
}
MimeUtility.encodeWord("nom de fichier");
Modifiez cette propriété avant de créer votre première instance MimeMessage
System.setProperty("mail.mime.splitlongparameters", "false");
Recommended Posts