Develop/Spring

[Springboot] Gmail SMTP 서버 연결하기

롱하 2025. 3. 7. 08:39

Gmail SMTP용 앱 비밀번호 생성 방법 (2025년 기준 최신 방법)

Gmail SMTP를 사용하려면 **앱 비밀번호(App Password)**를 설정해야 한다.
앱 비밀번호는 Google이 보안 강화를 위해 제공하는 특별한 16자리 비밀번호로,
SMTP 인증을 위해 일반 비밀번호 대신 사용해야 함.


📌 1. 2단계 인증(2FA) 활성화

앱 비밀번호를 사용하려면 먼저 2단계 인증을 활성화해야 해.

  1. Google 계정 보안 설정으로 이동
  2. "2단계 인증"을 클릭
  3. 화면 안내에 따라 2단계 인증 설정 진행
    • 본인 휴대폰으로 인증받거나, 다른 인증 옵션을 설정할 수 있음.
  4. 2단계 인증이 활성화되면, 앱 비밀번호를 생성할 수 있음.

📌 2. 앱 비밀번호 생성

2단계 인증을 설정한 후, 앱 비밀번호를 생성할 수 있어.

  1. 앱 비밀번호 생성 페이지로 이동
    • Gmail 계정으로 로그인해야 함.
  2. 앱 선택:
    • "메일"을 선택
  3. 기기 선택:
    • "Windows 컴퓨터" 또는 "기타(맞춤 이름 입력 가능)" 선택
  4. "생성" 버튼 클릭
  5. 화면에 16자리 앱 비밀번호가 표시됨
    • 예: abcd efgh ijkl mnop
    • 이 비밀번호를 복사해서 application.properties에 입력하면 됨.

📌 3. application.properties에 적용

생성된 앱 비밀번호를 application.properties에 설정하면 돼.

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your-email@gmail.com
spring.mail.password=abcd efgh ijkl mnop  # 앱 비밀번호 사용
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
 

💡 중요: 앱 비밀번호는 한 번만 표시되므로, 복사해 두고 바로 사용해야 해!


📌 4. 테스트 (SMTP 연결 확인)

SMTP 설정이 정상적으로 동작하는지 확인하려면, 메일 발송 테스트를 해보는 게 좋아.

🔹 Java 코드 예제 (Spring Boot에서 메일 전송)

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

@Service
public class EmailService {

    @Autowired
    private JavaMailSender mailSender;

    public void sendTestEmail() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo("receiver@example.com"); // 받는 사람 이메일
        message.setSubject("SMTP 설정 테스트");
        message.setText("Gmail SMTP 설정이 정상적으로 동작합니다!");

        mailSender.send(message);
    }
}

이 코드를 실행하면 설정한 SMTP를 통해 테스트 메일이 발송될 거야.
에러가 나면 콘솔 로그를 확인해서 디버깅하면 돼!


📌 5. 자주 발생하는 문제 해결

🚨 앱 비밀번호 입력해도 메일이 안 보내질 때

  1. Google 계정에서 "보안 수준이 낮은 앱 액세스" 허용 필요
    • 현재 Google 정책상 필요 없지만, 일부 계정에서는 제한될 수도 있음.
    • 보안 설정 페이지에서 확인 가능.
  2. Gmail SMTP 서버 차단
    • Google이 SMTP 사용을 차단했을 수 있음. Google 계정 보안 설정에서
      "보안 경고" 또는 "비정상적인 로그인 시도"가 있는지 확인.
  3. Gmail 계정 비밀번호를 변경한 경우
    • 비밀번호를 변경하면, 앱 비밀번호도 다시 생성해야 함.
  4. 포트(port) 확인
    • 587 (STARTTLS) 또는 465 (SSL) 중 하나를 시도.

✅ 정리

  1. 2단계 인증 활성화
  2. 앱 비밀번호 생성 (16자리)
  3. application.properties에 설정
  4. 테스트 메일 발송 (Java 코드)
  5. SMTP 연결 문제 발생 시 보안 설정 확인