Smtp

gdhi·2024년 4월 4일

Spring에서 SMTP를 이용하여 이메일을 보내는 기능은 JavaMailSender 인터페이스를 사용하여 구현할 수 있습니다. 이메일 발송 기능을 구현하려면 다음 단계를 따라야 합니다.

  1. 의존성 추가: pom.xml에 메일 관련 의존성을 추가합니다.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
  2. SMTP 설정: application.properties 또는 application.yml 파일에 SMTP 서버 설정을 추가합니다. Gmail을 사용한다면 다음과 같은 설정을 추가할 수 있습니다.

    spring.mail.host=smtp.gmail.com
    spring.mail.port=587
    spring.mail.username=이메일
    spring.mail.password=여러분의비밀번호
    spring.mail.properties.mail.smtp.auth=true
    spring.mail.properties.mail.smtp.starttls.enable=true
  3. 메일 발송 서비스 구현: 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("이메일주소");
            message.setTo(to); 
            message.setSubject(subject); 
            message.setText(text);
            mailSender.send(message);
        }
    }
  4. 이메일 발송: 필요한 곳에서 위에서 구현한 EmailServicesendSimpleMessage 메소드를 호출하여 이메일을 발송합니다. 예를 들어, 직원의 상세 정보를 메일로 발송하고자 한다면, 해당 정보를 문자열 형태로 만들어 text 파라미터로 전달하면 됩니다.

    emailService.sendSimpleMessage("이메일주소", "직원 상세 정보", "여기에 직원의 상세 정보를 포함시킨 내용을 적습니다.");

SMTP 서버로 Gmail을 사용할 때는 Gmail 계정의 보안 수준을 낮추거나 앱 비밀번호를 생성하여 사용해야 할 수도 있습니다. 보안과 관련하여 Gmail 설정을 확인해 보시기 바랍니다.

이러한 단계를 통해 Spring Boot 애플리케이션에서 SMTP를 사용하여 이메일을 발송하는 기능을 구현할 수 있습니다. 필요에 따라 메일 내용에 HTML을 사용하려면 MimeMessage를 사용하는 방법도 고려해 보세요.

0개의 댓글