[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");
}
}
이제 스프링 부트 애플리케이션에서 메일 발송 기능을 구현하고 테스트할 수 있는 준비가 되었습니다.
이제 이메일 발송이 정상적으로 작동하고 있는지 확인해보세요!