환경설정

의존성 추가

implementation 'org.springframework.boot:spring-boot-starter-mail'

properties 설정

spring.mail.host=smtp.gmail.com # 메일 서버 주소를 지정 -> Gmail 계정을 통해 메일 발송 가능
spring.mail.port=587            # SMTP 서버와 통신할 포트 번호
spring.mail.default-encoding=UTF-8  # 이메일 문자 인코딩 지정
spring.mail.properties.mail.smtp.auth=true  # SMTP 서버 인증 사용 여부
spring.mail.properties.mail.smtp.starttls.enable=true # TLS 암호화 사용 여부 -> 전송 중 데이터를 암호화 -> 보안강화
spring.mail.properties.mail.smtp.ssl.enable=false  # SSL 암호화 사용 여부 -> 연결 자체를 암호화 -> 포트 587 + STARTTLS 조합에서는 false로 설정해야 충돌 안남
spring.mail.username={[email protected]} # 본인 메일
spring.mail.password={your-app-password} # 앱 비밀번호

app-password를 받는 방법

스프링에서 메일 전송 기능을 제공하는 인터페이스

JavaMail API 위에 추상화를 제공

SimpleMailMessage나 MimeMessage를 사용해 메일 전송

private final JavaMailSender mailSender;

사용 예시

SimpleMailMessage message = new SimpleMailMessage();
message.setTo("[email protected]");
message.setSubject("테스트 메일");
message.setText("안녕하세요!");

mailSender.send(message);  // 실제 메일 전송