2022.09.26 - [Kotlin] - [Kotlin] Spring Boot Email 보내기, 이메일 전송
이전 포스팅 글은 그냥 텍스트를 적어서 보냈는데 html 템플릿을 적용해서 보내고 싶으면 간단하게 설정만 하면 된다
✔ thymeleaf 추가
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
✔ resources 패키지에 templates 폴더 추가해서 html 파일 추가
✔ EmailService
@Service
class EmailService(private val javaMailSender: JavaMailSender,
private val mailProperties:MailProperties,
private val templateEngine:TemplateEngine) {
fun passwordResetRequest(member:Member):Boolean {
return if (Objects.nonNull(member)) {
val context = Context()
val htmlText = templateEngine.process("passwordReset", context)//템플릿 파일이름
val mimeMessage:MimeMessage = javaMailSender.createMimeMessage()
val messageHelper = MimeMessageHelper(mimeMessage, "UTF-8")
messageHelper.setSubject("비밀번호 재설정")
messageHelper.setText(htmlText,true)
messageHelper.setFrom("보내는사람")
messageHelper.setTo(member.email)//받는사람 이메일
javaMailSender.send(mimeMessage)
true
} else {
false
}
}
}
반응형
📌 html 값 전달
setVariable을 사용하여 변수와 값 설정
@Service
class EmailService(private val javaMailSender: JavaMailSender,
private val mailProperties:MailProperties,
private val templateEngine:TemplateEngine) {
fun passwordResetRequest(member:Member):Boolean {
return if (Objects.nonNull(member)) {
//템플릿 데이터 전달
val context = Context()
context.setVariable("name","${member.name}")
val htmlText = templateEngine.process("passwordReset", context)//템플릿 파일이름
val mimeMessage:MimeMessage = javaMailSender.createMimeMessage()
val messageHelper = MimeMessageHelper(mimeMessage, "UTF-8")
messageHelper.setSubject("비밀번호 재설정")
messageHelper.setText(htmlText,true)
messageHelper.setFrom("보내는사람")
messageHelper.setTo(member.email)//받는사람 이메일
javaMailSender.send(mimeMessage)
true
} else {
false
}
}
}
✔ passwordReset.html
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
<body>
<span th:text="${name}">님</span>
</body>
</html>
반응형
'Kotlin' 카테고리의 다른 글
QueryDSL 결과 값이 Null인 경우 다른 값으로 할당 (0) | 2022.10.28 |
---|---|
[Spring Boot] RestTmplate로 외부 API 통신하기: GET (0) | 2022.10.26 |
[Kotlin] Spring Boot Email 보내기, 이메일 전송 (0) | 2022.09.26 |
코틀린(Kotlin) 문자열 랜덤으로 생성, 원하는 길이 만큼의 랜덤한 문자열 만들기 (0) | 2022.09.15 |
[Querydsl] @QueryProjection 사용하기, DTO로 조회 (0) | 2022.08.17 |
댓글