본문 바로가기
Kotlin

[Kotlin] Thymeleaf을 사용한 html 템플릿 이메일 보내기

by 고체물리학 2022. 9. 29.

2022.09.26 - [Kotlin] - [Kotlin] Spring Boot Email 보내기, 이메일 전송

 

[Kotlin] Spring Boot Email 보내기, 이메일 전송

✔의존성 추가 implementation("org.springframework.boot:spring-boot-starter-mail:2.6.7") ✔application.yml mail : host : outbound.daouoffice.com(SMTP host) port : 25 username : 사용자 이메일 password..

eggwhite0.tistory.com

 

이전 포스팅 글은 그냥 텍스트를 적어서 보냈는데 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>
반응형

댓글