준호씨의 블로그

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

개발이야기

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

준호씨 2019.11.02 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 를 참고 하시기 바랍니다.

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 로 받은 모습입니다.

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

0 Comments
댓글쓰기 폼