예전에 이메일 발송 기능을 정리해둔 글이 있지만, 조금 중구난방으로 작성된 부분이 있어서 이번에 Gradle 기반으로 다시 정리해 보려고 한다.
[발송용 이메일 계정 준비]
우선, 이메일을 발송에 사용할 이메일 계정이 있어야한다. 이 기능을 위해 새로운 이메일을 만들었고 2단계 인증까지 해주었다. 아래의 글을 따라 인증 후 비밀번호까지 생성해 보자.
[SMTP] Gmail을 이용한 초 간단 이메일 인증 구현 - 비밀번호 발급
우리가 회원가입을 할 때 자주 마주하게 되는 이메일 인증! 가끔 가짜 이메일로 가입 하려고 하면 꼭 이메일 인증을 하라고 해서 귀찮게만 느껴졌는데 이걸 내가 하고 있다니~~~ 아무튼! 메일을
henniee.tistory.com
[환경설정 및 빌드파일 설정]
application.properties
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=가입한이메일@gmail.com
spring.mail.password=발급비밀번호
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-mail'
}
[이메일 서비스 만들기]
send 매서드를 정의해서 메일을 보낼 수 있게 구현한다.
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Service
public class EmailService {
private static final Logger log = LoggerFactory.getLogger(EmailService.class); // 로거 추가
private final JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
public EmailService(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
public void send(String subject, String body, String... to) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setFrom(from);
message.setSubject(subject);
message.setText(body);
mailSender.send(message);
log.info("메일 전송 완료: 제목={}, 수신자={}", subject, String.join(", ", to));
}
}
[메일 보내기]
private final EmailService emailService;
emailService.send("OS 업데이트 알림", "내용", "메일 받을 주소1", "메일받을 주소2");
'spring 스프링' 카테고리의 다른 글
| 안드로이드 업데이트 자동 확인: 웹 크롤링으로 이메일 알림 만들기 (0) | 2025.08.26 |
|---|---|
| iOS 업데이트 자동 확인: 웹 크롤링으로 이메일 알림 만들기 (0) | 2025.08.21 |
| Spring CORS 설정: WebConfig 작성부터 wildcard '*', withCredentials 문제 해결까지 (1) | 2025.06.26 |
| Spring Data JPA 페이징 구현하기 (SpringBoot 적용) (0) | 2025.06.02 |
| The method builder() is undefined for the type 오류 (해결2) (0) | 2025.04.05 |