Develop/[Spring]
[Spring] Smtp 서버 연동
HiSmith
2023. 11. 29. 22:09
반응형
필요에 의해서 알림을 메일로 전송해야하는 기능을 개발해야해서
gmail smtp 서버를 연동해보려고한다.
<구글 설정>
1. Google 보안 설정 진행 하기, 2단계 인증하기
https://myaccount.google.com/u/0/security?pli=1
2. 앱 비밀번호 설정
3. 앱만들기를 하면 자동으로 비밀번호를 알려준다.
<스프링 설정>
의존성 주입
implementation 'org.springframework.boot:spring-boot-starter-mail'
설정 파일
spring:
mail:
host: smtp.gmail.com
port: 587
username: ${MAIL_USERNAME}
password: ${MAIL_PASSWORD}
properties:
mail:
smtp:
socketFactory.class: javax.net.ssl.SSLSocketFactory
auth: true
starttls:
enable: true
서비스 코드
public void doEmail(AlarmRequest request){
boolean result = false;
MimeMessagePreparator msg = new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
mimeMessageHelper.setTo(request.getEmailAddress());
mimeMessageHelper.setSubject(request.getEmailSubject());
mimeMessageHelper.setText(request.getMsg(), true);
}
};
try {
javaMailSender.send(msg);
log.info("javaMailSender.send");
result = true;
} catch (Exception e) {
e.printStackTrace();
}
}
간단하게 위 처럼 구현하면, google 제공 무료 smtp 서버를 통해 메일을 발송 할 수 있다.
반응형