본문 바로가기

개발/JAVA

[Spring] MailService 사용법

반응형

Java에서 이메일을 보내기 위해서는 JavaMail API를 사용하거나 Spring Framework에서 제공하는 MailService를 활용할 수 있습니다. 이번 글에서는 Spring의 MailService를 이용한 이메일 발송 방법에 대해 설명합니다.

1. 의존성 추가

Spring에서 이메일을 보내기 위해서는 먼저 필요한 라이브러리를 pom.xml에 추가해야 합니다. Maven을 사용하는 경우 아래 의존성을 추가합니다:

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

2. 이메일 설정

Spring Boot에서는 `application.properties` 또는 `application.yml` 파일을 사용하여 이메일 서버 설정을 할 수 있습니다. SMTP 서버 설정 예시는 다음과 같습니다:

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

3. MailService 설정

Spring Boot에서는 `JavaMailSender`를 이용하여 이메일을 전송할 수 있습니다. 아래는 `JavaMailSender`를 사용하여 이메일을 보내는 `MailService` 클래스의 예시입니다.

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.MessagingException;
import org.springframework.mail.internet.MimeMessage;
import org.springframework.stereotype.Service;
@Service
public class MailService {
@Autowired
private JavaMailSender javaMailSender;
public void sendEmail(String to, String subject, String text) throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(text, true); // HTML 이메일로 전송
javaMailSender.send(mimeMessage);
}
}

4. 이메일 발송 테스트

이제 이메일을 보내는 메서드를 호출하여 실제 이메일을 발송할 수 있습니다. 아래는 `MailService`를 사용하여 이메일을 보내는 테스트 코드입니다:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class EmailTestRunner implements CommandLineRunner {
@Autowired
private MailService mailService;
@Override
public void run(String... args) throws Exception {
String to = "recipient@example.com";
String subject = "테스트 이메일";
String text = "안녕하세요!이것은 Spring MailService를 사용하여 보낸 테스트 이메일입니다.";
mailService.sendEmail(to, subject, text);
System.out.println("이메일 전송 완료!");
}
}

5. 결론

Spring의 MailService를 사용하면 JavaMail API를 직접 사용할 필요 없이 간편하게 이메일을 발송할 수 있습니다. 이메일 설정과 서비스 클래스를 구성한 후, `JavaMailSender`를 사용하여 손쉽게 이메일을 전송할 수 있습니다.

반응형