[SpringBoot/Thymeleaf] 첨부파일을 포함한 메일 전송
본문 바로가기

Web 개발/Java, SpringBoot, JPA

[SpringBoot/Thymeleaf] 첨부파일을 포함한 메일 전송

728x90
반응형

 

java.lang.IllegalStateException: Not in multipart mode - 
create an appropriate MimeMessageHelper via a constructor that takes a 'multipart' flag if you need to set alternative texts or add inline elements or attachments.

 

메일 전송시 파일을 첨부할 때, 위와 같은 오류가 발생하였다.

 

MimeMessageHelper helper = new MimeMessageHelper(message, true);

MimeMessageHelper 생성시, multipart 모드로 생성하여 해결하였다.

 

 

 

전체 코드

String content = processTemplate(mail.getTemplateName() + ".ftlh", mail.getModel(), mail.getLocale());
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);

helper.setTo(mail.getTo());

if(ObjectUtils.isEmpty(mail.getCc()) == false) {
	helper.setCc(mail.getCc());
}

if(ObjectUtils.isEmpty(mail.getBcc()) == false) {
    	helper.setCc(mail.getBcc());
}

if(ObjectUtils.isEmpty(mail.getAttachedFile1()) == false) {
	helper.addAttachment(MimeUtility.encodeWord("file1.pdf"), mail.getAttachedFile1());
}

if(ObjectUtils.isEmpty(mail.getAttachedFile2()) == false) {
	helper.addAttachment("file2.pdf", mail.getAttachedFile2());
}

helper.setReplyTo(emailAddress, emailName);
helper.setFrom(emailAddress, emailName);
helper.setSubject(mail.getSubject());
helper.setText(content, true);

javaMailSender.send(message);

 

728x90
반응형