본문 바로가기

Spring Boot

[Springboot] smtp email 보내기 구현

반응형

JavaMail API를 사용하여 SMTP 서버를 사용하여 Spring Boot 응용 프로그램에서 전자 메일을 보낼 수 있습니다. 다음은 Spring Boot 응용 프로그램에서 이메일을 보내는 방법의 예입니다.

1. JavaMail API 종속성을 프로젝트에 추가합니다: Maven 또는 Gradle과 같은 패키지 관리자를 사용하여 JavaMail API를 프로젝트에 추가할 수 있습니다.

2. Spring Boot 응용 프로그램에서 SMTP 서버 설정을 구성하는 구성 클래스를 생성합니다.

@Configuration
public class EmailConfig {
  @Value("${spring.mail.host}")
  private String host;
  @Value("${spring.mail.port}")
  private int port;
  @Value("${spring.mail.username}")
  private String username;
  @Value("${spring.mail.password}")
  private String password;

  @Bean
  public JavaMailSender javaMailSender() {
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
    mailSender.setHost(host);
    mailSender.setPort(port);
    mailSender.setUsername(username);
    mailSender.setPassword(password);

    Properties props = mailSender.getJavaMailProperties();
    props.put("mail.transport.protocol", "smtp");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.debug", "true");

    return mailSender;
  }
}

 

3. Spring Boot 애플리케이션에서 이메일을 보낼 서비스 클래스를 만듭니다.

@Service
public class EmailService {
  private final JavaMailSender javaMailSender;

  public EmailService(JavaMailSender javaMailSender) {
    this.javaMailSender = javaMailSender;
  }

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

 

4. Spring Boot 응용 프로그램에서 EmailService 클래스를 사용하여 이메일을 보냅니다.

@RestController
public class EmailController {
  private final EmailService emailService;

  public EmailController(EmailService emailService) {
    this.emailService = emailService;
  }

  @GetMapping("/send-email")
  public void sendEmail() {
    emailService.sendEmail("recipient@example.com", "Example Subject", "Example Text");
  }
}

 

5. Spring Boot 응용 프로그램을 시작하고 http://localhost:8080/send-email로 요청하여 이메일을 보냅니다.

반응형