현재 프로젝트 중에 메일을 보내서 그 메일로 인증하여 비밀번호를 바꾸는 시스템을 구현하려고 하는데 'SMTP 서버' 라는 개념이 나왔다

이왕이면 제대로 알아보자

SMTP 서버(Server)란?

메일 서비스를 제공하는 서버를 말한다

메일을 수신하는 서버는 POP3 서버라고 한다

메일 전송 과정

  1. 메일을 송신하는 소프트웨어에서 SMTP 서버로 메일을 보낸다
  2. SMTP 서버가 "@" 뒤에 적힌 도메인 주소를 보고 해당 IP주소를 찾는다
  3. 찾은 IP 주소에 메일 데이터를 전송한다
  4. 메일 데이터를 받은 POP3 서버가 "@" 앞의 유저명을 찾아서 해당 유저의 메일 상자에 데이터를 저장한다

SMTP 보안

SMTP는 따로 인증 기능을 갖고 있지 않기 때문에, 다른 사용자로 위장하여 메일을 보내여 악용하는 것이 가능하다

이러한 문제를 막기위해 SMTP_AUTH(인증)POP before SMTP의 두가지 대책이 있다

SMTP AUTH

메일을 송신하기 전에 SMTP 서버의 사용자 ID/PW 로 인증하는 방법이다

POP before SMTP

메일을 수신하기 POP3 서버의 사용자 ID/PW 로 인증하는 방법이다