- Java/Springboot 메일을 보내는 방법
- 구글 smtp 서버 이용하는 방법 정리 잘 되어있음
- 이메일 인증 코드 보내기 & 검증[슬랙 예시]
- [ Github ] SpringBoot: JavaMailSender를 이용한 메일전송 설정
의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-mail'
application.yaml 설정 — 아래와 같이 설정 시, JavaMailSender Bean 자동으로 등록되서 활용 가능함
spring: mail: default-encoding: UTF-8 port: 465 protocol: smtp host: "smtp.gmail.com" username: rlfrmsdh1@gmail.com password: ****** properties: mail: debug: true # 해당 옵션이 있으면 디버그 로그 찍힘 smtp: socketFactory: port: 465 fallback: false class: javax.net.ssl.SSLSocketFactory auth: true starttls: enabled: true required: true
- MailSenderAutoConfiguration에 의해 자동으로 JavaMailSender등록됨
/** * {@link EnableAutoConfiguration Auto configuration} for email support. * * @author Oliver Gierke * @author Stephane Nicoll * @author Eddú Meléndez * @since 1.2.0 */ @AutoConfiguration @ConditionalOnClass({ MimeMessage.class, MimeType.class, MailSender.class }) @ConditionalOnMissingBean(MailSender.class) @Conditional(MailSenderCondition.class) @EnableConfigurationProperties(MailProperties.class) @Import({ MailSenderJndiConfiguration.class, MailSenderPropertiesConfiguration.class }) public class MailSenderAutoConfiguration { /** * Condition to trigger the creation of a {@link MailSender}. This kicks in if either * the host or jndi name property is set. */ static class MailSenderCondition extends AnyNestedCondition { MailSenderCondition() { super(ConfigurationPhase.PARSE_CONFIGURATION); } @ConditionalOnProperty(prefix = "spring.mail", name = "host") static class HostProperty { } @ConditionalOnProperty(prefix = "spring.mail", name = "jndi-name") static class JndiNameProperty { } } }