[java] 스프링 부트에서 메일 발송 처리 방법

이번 포스트에서는 스프링 부트 애플리케이션에서 이메일을 보내는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저, pom.xml 파일에 이메일 발송을 위한 의존성을 추가해야 합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

의존성을 추가한 후에는 Maven이나 Gradle을 통해 프로젝트를 다시 빌드해야 합니다.

2. 이메일 설정

애플리케이션의 설정 파일(application.properties 또는 application.yaml)에 다음과 같이 이메일 관련 설정을 추가합니다.

spring.mail.host=smtp.example.com
spring.mail.port=587
spring.mail.username=your-email@example.com
spring.mail.password=your-email-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

3. 메일 발송 서비스 구현

이제 실제로 이메일을 발송하는 서비스를 구현해야 합니다.

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Service;

@Service
public class EmailService {
    @Autowired
    private JavaMailSender emailSender;

    public void sendSimpleEmail(String to, String subject, String text) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setSubject(subject);
        message.setText(text);
        emailSender.send(message);
    }
}

위의 코드에서 JavaMailSender 인터페이스를 사용하여 메일을 발송합니다.

4. 메일 발송 테스트

마지막으로, 메일을 발송하는 기능이 제대로 동작하는지 확인하기 위해 테스트 코드를 작성해보겠습니다.

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class EmailServiceTest {
    
    @Autowired
    private EmailService emailService;

    @Test
    void testSendSimpleEmail() {
        emailService.sendSimpleEmail("recipient@example.com", "Test Subject", "This is a test email");
    }
}

이제 스프링 부트 애플리케이션에서 메일 발송 기능을 구현하고 테스트할 수 있는 준비가 되었습니다.

이제 이메일 발송이 정상적으로 작동하고 있는지 확인해보세요!

참고 자료