SES?
Amazon Simple Email Service 이며 온프레미스 환경에서 STMP 서버를 구축할 필요없이 관련 기능을 제공해주는 서비스
SES 환경설정하는부분은 생략한다. 매우 간단하니 직접 찾아보자.
의존성(Kotlin DSL)
1
2
implementation(platform("software.amazon.awssdk:bom:2.17.294"))
implementation("software.amazon.awssdk:ses")
MainSender
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class MailSender {
private val credential by lazy {
AwsBasicCredentials.create(
YOUR_ACCESS_KEY_ID,
YOUR_SECRET_ACCESS_KEY
)
}
private val client by lazy {
SesClient.builder()
.region(Region.AP_NORTHEAST_2)
.credentialsProvider(StaticCredentialsProvider.create(credential))
.build()
}
private fun wrapContent(raw: String) = Content.builder()
.charset("UTF-8")
.data(raw)
.build()
fun send(to: String, subject: String, body: String) {
val dest = Destination.builder()
.toAddresses(to)
.build()
val message = Message.builder()
.subject(wrapContent(subject))
.body(Body.builder().html(wrapContent(body)).build())
.build()
val request = SendEmailRequest.builder()
.source(MY-EMAIL) // source는 SES에 등록된 식별자이여야 한다.
.destination(dest) // sandbox 모드인 경우 SES에 등록된 이메일에게만 송신가능하다.
.message(message)
.build()
client.sendEmail(request)
}
}