본문 바로가기
Back end/Spring

[Spring] 이메일 서비스 구현

by 더 이프 2024. 11. 25.
728x90

목차

    Spring Boot로 이메일 서비스 구현하기: 신속하고 간편한 메일 전송 방법 📧💻

    안녕하세요, 서버 사이드 개발에 관심 있는 개발자 여러분! 오늘은 Java의 인기 프레임워크인 Spring Boot를 사용하여 이메일 서비스를 구현하는 방법을 소개하겠습니다. 이메일 전송 기능은 사용자 인증, 알림 서비스, 마케팅 등 다양한 상황에서 필수적으로 사용되며, Spring Boot와 함께라면 이를 손쉽게 구현할 수 있습니다. 이 포스트를 통해 Spring Boot에서 이메일 서비스를 설정하고 구현하는 과정을 단계별로 알아보겠습니다.


    Spring Boot와 JavaMailSender 인터페이스

    Spring Boot는 JavaMailSender 인터페이스를 통해 메일 전송 기능을 제공합니다. 이 인터페이스는 JavaMail API 위에 구축된 추상화 레이어로, 메일 전송을 위한 다양한 메소드를 포함하고 있습니다.

     

    필요한 의존성 추가하기

    먼저, Spring Boot 프로젝트의 pom.xml 파일에 메일 전송을 위한 의존성을 추가합니다.

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

     

    application.properties 설정

    메일 서버와 관련된 설정은 application.properties 파일에 추가합니다. 아래 예시는 Gmail을 사용할 때의 설정입니다.

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

     

    메일 전송 서비스 구현하기

    JavaMailSender를 사용하여 메일을 전송하는 서비스 클래스를 구현합니다.

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.stereotype.Service;
    
    @Service
    public class EmailService {
    
        @Autowired
        private JavaMailSender mailSender;
    
        public void sendSimpleMessage(String to, String subject, String text) {
            SimpleMailMessage message = new SimpleMailMessage();
            message.setFrom("your-email@gmail.com");
            message.setTo(to);
            message.setSubject(subject);
            message.setText(text);
            mailSender.send(message);
        }
    }

     

    이메일 전송 테스트

    이제, 서비스를 사용하여 실제 이메일을 전송해 볼 수 있습니다. 컨트롤러를 생성하고 엔드포인트를 통해 메일 전송을 테스트할 수 있습니다.

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class EmailController {
    
        @Autowired
        private EmailService emailService;
    
        @GetMapping("/sendMail")
        public String sendMail(@RequestParam String to, @RequestParam String subject, @RequestParam String text) {
            emailService.sendSimpleMessage(to, subject, text);
            return "Email Sent!";
        }
    }

     

    마무리하며...

    Spring Boot를 사용한 이메일 서비스 구현은 간단하며 효과적입니다. 이 글을 통해 여러분이 자신의 프로젝트에 쉽게 이메일 기능을 추가할 수 있기를 바랍니다. 사용자 인증, 알림, 뉴스레터 등 다양한 상황에서 이메일 서비스를 활용해 보세요.

    안정적이고 효과적인 이메일 서비스 구축을 기원합니다!


    Reference:

     

    Spring Boot :: Spring Boot

    Spring Boot helps you to create stand-alone, production-grade Spring-based applications that you can run. We take an opinionated view of the Spring platform and third-party libraries, so that you can get started with minimum fuss. Most Spring Boot applicat

    docs.spring.io

     

     

    JavaMail

    The JavaMail API provides a platform-independent and protocol-independent framework to build mail and messaging applications. The JavaMail API is available as an optional package for use with the Java SE platform and is also included in the Java EE platfor

    javaee.github.io