Programming/Java

[Spring] Gmail SMTP를 이용하여 이메일 인증 구현 - 설정

mar1po5a 2025. 3. 21. 13:07

이메일 인증 코드 발송 프로그램을 구현하기 위해서는 SMTP 설정이 필요하다.

이번에는 Gmail SMTP를 통해 구현했지만, 기회가 된다면 네이버나 다음 등 다른 SMTP 또한 다뤄볼 예정이다.

순서대로만 진행한다면 큰 어려움 없이 설정을 끝마칠 수 있을 것이다.

* STS4 Legacy Project로 진행

 

1. Gmail 톱니바퀴 아이콘 -> 모든 설정 보기

 

2. 전달 및 POP/IMAP -> 사진과 동일하게 설정

IMAP 상태 : 사용 / 사용안함이 보인다면 사용으로 체크해주자.

 

3. 보안 -> 2단계 인증

2단계 인증은 필수적으로 설정되어야 한다.

 

4. 앱 비밀번호 클릭

2단계 인증 페이지 하단에 위치

 

 

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"/>