팀프로젝트_PetHarmony

🌈 임시 비밀번호 발급 _SMTP

이채림 2024. 8. 14. 00:09

 

우리 프로젝트는 비밀번호을 잊어버렸을 때

회원가입 시 작성했던 이메일을 인증하면 새로운 임시 비밀번호를 보내준다.

 

임시 비밀번호 발급은 SMTP를 통한 이메일 발송이 가장 일반적인 방법이기에 

그 방법을 사용해보려고 한다.

1. 이메일 인증
2. 임시 비밀번호 생성
3. 임시 비밀번호 저장
4. 임시 비밀번호 발송

 

Google 약관이 변경되어 2단계 인증 및 앱 비밀번호 사용을 설정해야 SMTP를 사용 가능하다고 한다.

1.  [계정] - [보안] - 2단계 인증
2. 앱 비밀번호 생성 : 앱 키(16자리) 필요 
uvpv odrz levy tlzw
3. Gmail에 접속 - [라벨 관리] - [전달 및 POP/IMAP] - IMAP 액세스 : IMAP 사용

SMTP (Simple Mail Transfer Protocol)

역할

이메일을 발송하기 위한 프로토콜로, 작성된 이메일을 수신자에게 전달하는 역할을 한다.

특징

- 이메일 송신 : 이메일 발송 시에 사용되며, 이메일 서버 간의 전송도 이 프로토콜을 통해 이루어진다.

- 연계 : 이메일을 보낼 때 클라이언트는 SMTP 서버와 연결되어야 한다.

POP (Post Office Protocol)

역할

이메일을 서버에서 다운로드하여 로컬에 저장하며, 다운로드 후 서버에서 이메일을 삭제하는 프로토콜이다.

특징

- 다운로드 후 삭제 : 기본 설정에서 이메일을 다운로드하면 서버에서 삭제되어, 다른 기기에서는 해당 이메일에 접근할 수 없다.

- 오프라인 사용 : 다운로드된 이메일은 인터넷 연결 없이도 볼 수 있다.

IMAP (Internet Message Access Protocol)

역할

서버에 이메일을 저장하며, 여러 기기에서 이메일을 동기화하고 관리할 수 있는 프로토콜이다. 클라이언트가 이메일을 열거나 관리할 때, 이메일은 서버에 남아 있고, 클라이언트는 그 사본을 가져온다.

특징 

- 서버 동기화 : 여러 기긱에서 이메일을 동기화할 수 있어, 하나의 기기에서 이메일을 읽으면 다른 기기에서도 해당 이메일이 읽음으로 표시

- 서버 상 관리 : 이메일은 서버에 저장되므로, 클라이언트에서 삭제해도 서버에 남아 있을 수 있다.

- 폴더 지원 : 이메일을 서버 상의 폴더로 분류하여 관리할 수 있다.


 

1) build.gradle

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-mail'
}

 

2) application.properties

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username='내 이메일'
spring.mail.password='내 앱키'
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

 

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/mail/javamail/JavaMailSender.html

 

JavaMailSender (Spring Framework 6.1.11 API)

Extended MailSender interface for JavaMail, supporting MIME messages both as direct arguments and through preparation callbacks. Typically used in conjunction with the MimeMessageHelper class for convenient creation of JavaMail MimeMessages, including atta

docs.spring.io

 

코드는 깃허브를 참고!!

https://github.com/Lucky-Vicky-PetHarmony

 

Lucky-Vicky-PetHarmony

Lucky-Vicky-PetHarmony has 2 repositories available. Follow their code on GitHub.

github.com