728x90
반응형
1. build.gradle 추가
implementation 'org.springframework.boot:spring-boot-starter-mail'
2. Service 작성
JavaMailSenderImpl 을 불러와 설정을 적용시키고 보내는 방식이다.
@Service
@Slf4j
@RequiredArgsConstructor
public class EmailService {
public void sendMail(String subject, String text) {
try {
String mailServer = "메일서버";
int port = "포트";
String from = "보내는사람";
String to = "받는사람";
String username = "메일 아이디";
String password = "메일 비밀번호";
Boolean useTls = TLS를 쓸 경우 true;
TlsVersion tlsVersion = TLS 버전(ex. TLSv1.2);
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(mailServer);
javaMailSender.setPort(port);
javaMailSender.setDefaultEncoding("UTF-8");
if (!Objects.equals(username, "")) {
javaMailSender.setUsername(username);
}
if (!Objects.equals(password, "")) {
javaMailSender.setPassword(password);
}
Properties pt = new Properties();
if (Objects.equals(username, "") && Objects.equals(password, "")) {
pt.put("mail.smtp.auth", false);
} else {
pt.put("mail.smtp.auth", true);
}
if (useTls) {
pt.put("mail.smtp.socketFactory.port", port);
pt.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
pt.put("mail.smtp.starttls.enable", true);
pt.put("mail.smtp.starttls.required", true);
pt.put("mail.smtp.ssl.protocols", tlsVersion);
}
javaMailSender.setJavaMailProperties(pt);
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(text);
javaMailSender.send(message);
} catch (Exception e) {
log.error(e.getMessage());
}
}
}
3. 구글에서 보안 설정을 해준다.
설정-> 계정 -> 2단계 인증을 설정하고 앱 비밀번호를 사용하면 된다.
참고 Spring Mail AuthenticationFailedException 해결하기 | Be an Overachiever (ivvve.github.io)
728x90
반응형
'Back-End > Spring Boot' 카테고리의 다른 글
Spring Boot | Java List -> Map List로 만들기 (0) | 2023.07.19 |
---|---|
Spring Boot | Java Enum name List 만들기 ( get names ) (0) | 2023.07.18 |
Spring Boot | Querydsl 에서 Json Column to String 쿼리 만들기 ( feat.Postgresql ) (0) | 2023.06.22 |
Spring Boot | Slf4j 로그 파일로 저장하기 (0) | 2023.06.14 |
Spring Boot | Converter 사용법 (0) | 2023.05.30 |