쉽고 편리하게 E-mail를 고객한테 보내려면 Gmail SMTP를 사용하는 방법은 검색하면 많이 나온다. 이번 글은 spring 프로젝트에서 AWS SES를 설정하고 메일을 보내는 방법을 설명 하려고 한다.
AWS에서 서비스를 신청하고 도메인을 등록하고 권한을 부여하는 부분에 대한 내용은 생략하고 Spring에서 설정하고 메일을 보내는 방법에 대해 적으려고 한다.
◆Dependency 추가
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-ses</artifactId>
<version>1.12.167</version>
</dependency>
◆Config Class
import com.amazonaws.auth.AWSStaticCredentialsProvider
import com.amazonaws.auth.BasicAWSCredentials
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
@Configuration
class AwsSesConfig(
@Value("\${aws_accesskey}")
val accessKey: String,
@Value("\${aws_secret}")
val secretKey: String,
@Value("\${aws_region}")
val region: String,
) {
@Bean
fun amazonSimpleEmailService(): AmazonSimpleEmailService {
return AmazonSimpleEmailServiceClientBuilder.standard()
.withRegion(region)
.withCredentials(
AWSStaticCredentialsProvider(
BasicAWSCredentials(accessKey, secretKey)
)
)
.build()
}
}
환경변수로 AWS Crtedential 정보를 설정하고 그것을 이용하여 AmazonSimpleEmailService client를 생성하는 Bean을 만들어 준다.
◆ 간단한 메일 보내기
fun sendEmail() {
val message = Message()
message.withSubject(Content("this"))
message.withBody(Body().withHtml(Content("This is test mail")))
val destination = Destination().withToAddresses("apple@hotmail.com")
awsSimpleEmailServiceClient.sendEmail(
SendEmailRequest()
.withSource("foo@hotmail.com")
.withDestination(destination)
.withMessage(message)
)
}
내용, 발신자, 수신자를 설정하고 sendEmail 함수를 호출하여 메일을 보낼 수 있다.
추후 sendBulkTemplatedEmail를 사용하여 다수의 수신자에게 메일을 보내는 방법에 대해 업데이트 할 예정이다.
https://gist.github.com/BlackthornYugen/1b3e1ff4426294e7054c9a7190e8f2cd
'Spring boot' 카테고리의 다른 글
Querydsl 일반적인 사용 정리 (0) | 2022.07.04 |
---|---|
[Spring] 코드에서 Active Profile 가져오기 (0) | 2022.01.09 |
[Spring] Cache (0) | 2022.01.03 |
[Spring] Maven Wrapper (0) | 2022.01.03 |
[Spring]JobRunr libary 사용 (0) | 2021.12.19 |
Comment