준호씨의 블로그

spring boot starter mail, kotlin, gradle 로 간단하게 만들어서 메일 발송해보기. 본문

개발이야기

spring boot starter mail, kotlin, gradle 로 간단하게 만들어서 메일 발송해보기.

준호씨 2019. 11. 2. 01:18
반응형

간단히 프로젝트를 하나 만들어 봅니다. spring-boot-start-mail를 이용할 겁니다. 언어는 kotlin을 쓰고 빌드 툴은 gradle을 사용합니다.

curl https://start.spring.io/starter.zip -d type=gradle-project -d language=kotlin -d bootVersion=2.2.0.RELEASE -d baseDir=mail -d groupId=kr.pe.junho85 -d artifactId=mail -d name=mail -d description=Demo%20project%20for%20Spring%20Boot -d packageName=kr.pe.junho85.mail -d packaging=jar -d javaVersion=1.8 -d dependencies=mail -o mail.zip
unzip mail.zip
cd mail
idea .

https://start.spring.io 에서 프로젝트 뼈대를 만들 수 있는데요. request를 뜯어보면 curl 커맨드로도 만들 수 있습니다.

idea 커맨드로 IntelliJ를 간단히 실행했는데요. 커맨드 라인에서 IntelliJ 실행하는 방법은 https://junho85.pe.kr/1448를 참고하시기 바랍니다.

 

터미널에서 IntelliJ 실행하기. 커맨드라인에서 spring boot 프로젝트 만들고 연결까지

터미널 환경을 자주 이용하는 경우 커맨드라인으로 IntelliJ 를 실행하면 편리하겠죠? 요즘 커맨드라인으로 프로젝트 뼈대도 뚝딱 만들어 주는 유틸들이 많은데 프로젝트 뼈대 먼저 만들고 IDE 를 연결해주고 싶은..

junho85.pe.kr

 

MailApplication.kt 파일이 다음과 같이 생성되어 있는대요.

@SpringBootApplication
class MailApplication

fun main(args: Array<String>) {
    runApplication<MailApplication>(*args)
}

메일 발송 코드를 간단히 만들어 보겠습니다. SimpleMailMessage로 간단히 메시지를 작성하고 수신자는 gmail로 하고 host는 gmail mx 중 하나를 골라 사용합니다.

@SpringBootApplication
class MailApplication

fun main(args: Array<String>) {
    runApplication<MailApplication>(*args)

    val message = SimpleMailMessage()
    message.setFrom("test@junho85.pe.kr")
    message.setTo("junho85@gmail.com")
    message.setSubject("this is test mail")
    message.setText("this is simple mail")

    val sender = JavaMailSenderImpl()
    sender.host = "gmail-smtp-in.l.google.com."

    sender.send(message)
}

발송 과정을 상세히 찍어 보려면 mail.debug true property를 추가해 줍니다.

	val sender = JavaMailSenderImpl()
	sender.host = "gmail-smtp-in.l.google.com."

	val properties = Properties()
	properties.put("mail.debug", "true")
	sender.javaMailProperties = properties

	sender.send(message)

메일 발송이 잘 되었습니다.

gmail로 받은 모습입니다.

환경에 따라 메일 발송이 실패할 수도 있고, 스팸함으로 들어갈 수도 있습니다. 메일 발송 서버가 잘 세팅되어 있는 경우 이런 식으로 발송한다는 것 정도로 알아 두시면 되겠습니다.

반응형
Comments