이메일 인증 코드 발송 프로그램을 구현하기 위해서는 SMTP 설정이 필요하다.
이번에는 Gmail SMTP를 통해 구현했지만, 기회가 된다면 네이버나 다음 등 다른 SMTP 또한 다뤄볼 예정이다.
순서대로만 진행한다면 큰 어려움 없이 설정을 끝마칠 수 있을 것이다.
* STS4 Legacy Project로 진행
1. Gmail 톱니바퀴 아이콘 -> 모든 설정 보기
2. 전달 및 POP/IMAP -> 사진과 동일하게 설정
3. 보안 -> 2단계 인증
4. 앱 비밀번호 클릭
5. 앱 비밀번호 생성
6. pom.xml에 dependency 설정
<!-- 이메일 인증을 위한 라이브러리 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.3.30</version>
</dependency>
7. src/main/resources에 mailConfig.xml 생성
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- JavaMailSender 설정 -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com"/>
<property name="port" value="587"/>
<property name="username" value=""/> <!-- 발신자 이메일 -->
<property name="password" value=""/> <!-- 앱 비밀번호 -->
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop> <!-- STARTTLS 활성화 -->
<prop key="mail.smtp.starttls.required">true</prop> <!-- STARTTLS 필요 -->
<prop key="mail.debug">true</prop> <!-- 디버그 출력 활성화 -->
<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop> <!-- 버전은 따로 체크 -->
<prop key="mail.mime.charset">UTF-8</prop>
</props>
</property>
</bean>
</beans>
8. root-context.xml에 mailConfig.xml 등록
<import resource="classpath:mailConfig.xml"/>