토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

스프링 부트 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.


7.18. Sending Email

스프링 프레임워크는 JavaMailSender 인터페이스를 통해 이메일 전송 로직을 추상화해주며, 스프링 부트는 이를 위한 자동 설정과 스타터 모듈을 제공한다.

JavaMailSender 사용법에 대한 자세한 내용은 레퍼런스 문서를 참고해라.

spring.mail.host와 관련 라이브러리(spring-boot-starter-mail로 정의해 뒀다)가 있을 땐, JavaMailSender가 없으면 디폴트 JavaMailSender를 생성한다. sender는 spring.mail 네임스페이스를 통해 설정을 좀 더 커스텀할 수 있다. 자세한 내용은 MailProperties를 참고해라.

특히, 디폴트 타임아웃 값들은 무제한으로 설정돼 있으며, 다음 예제처럼 메일 서버에서 응답이 없을 때 스레드가 블로킹되지 않도록 변경해두는 게 좋다:

properties yaml
spring.mail.properties[mail.smtp.connectiontimeout]=5000
spring.mail.properties[mail.smtp.timeout]=3000
spring.mail.properties[mail.smtp.writetimeout]=5000
spring:
  mail:
    properties:
      "[mail.smtp.connectiontimeout]": 5000
      "[mail.smtp.timeout]": 3000
      "[mail.smtp.writetimeout]": 5000

JNDI에 있는 기존 Session으로도 JavaMailSender를 설정할 수 있다:

properties yaml
spring.mail.jndi-name=mail/Session
spring:
  mail:
    jndi-name: "mail/Session"

jndi-name을 설정하게 되면, 다른 모든 Session 관련 설정보다 우선시한다.


전체 목차는 여기에 있습니다.

<< >>

TOP