궁금/아무거나

[아무거나] 1. SMTP, POP Protocol

네른 2017. 9. 20. 14:33

[아무거나] 1. SMTP, POP Protocol





학창시절에 컴퓨터실에 가면 종종 갑작스레 켜지는 이 프로그램을 볼 수 있었다.

그땐 이게 뭔지 궁금하지도 않았고, 단지 자꾸 무슨 창을 띄워서 짜증날 뿐이었다.

그치만 오늘은 이 Outlook Express에 대해 알아보려 한다. 조금 더 자세히 말하자면 "E-mail"에 대해 알아보려 한다.

저번에 작성한 글을 읽어보니 의식의 흐름대로 써 내려간 것 같은데, 이번에도 그렇게 진행될 것 같아 미리 양해를 구하도록 하겠다!


이메일을 사용하는 데 있어 필요한 프로토콜은 크게 두가지가 있다고 한다. SMTP와 POP ( 혹은 IMAP ) 이 그 두 프로토콜이다.

이들이 각각 송신과 수신에 필요하다~ 라는 건 제쳐두고, 그 둘이 각각 어떻게 작동하는 것인지 그리고 왜 프로토콜이 두개나 필요한 것인지에 대해 알아보자.


SMTP 프로토콜은 "메일의 송신" 에 사용된다고 한다. 여기서의 "송신"은 타 클라이언트에 직접 메일을 보내는 송신이 아닌, "메일 서버"로의 송신을 의미한다.

Outlook Express를 사용 해 본사람이 얼마나 되는지는 모르겠지만, 해당 프로그램으로 메일을 보낼 때 "메일 서버" 를 입력하는 란이 존재한다.

이 "메일 서버"로 내가 작성한 "메시지"를 전송할 때 필요한 프로토콜이 바로 SMTP 인 것이다. 

다시 말해, SMTP는 클라이언트가 서버로 메일을 전송할 때 필요한 프로토콜 인 것이다.


반대로 "메일의 수신"에는 위에서 이야기한 POP와 같은 프로토콜이 사용되는 것이다.

마찬가지로 이때의 수신은 SMTP로 메일을 전송한 "메일 서버" 에서 클라이언트로 원하는 "메시지"를 가져오는 과정을 의미한다. 


++ 이 때 POP 프로토콜로 "수신" 한 메일은 서버에서 삭제된다고 한다!



그런데 만약 메시지의 목적지가 물리적으로 너무 먼 거리에 위치 해 있다면 어떻게 해당 서버까지 메시지를 전송해야 하는 것일까.

이때는 메일 서버가 "라우터"의 개념과 비슷하게 작동한다.

A 메일 서버는 B라는 다른 메일 서버와 SMTP 통신을 통해 메일 을 전송하고, B는 C에게.. C는 D에게.. 순차적으로 전송되는 것이다.

이 때 보내는 서버는 "클라이언트"가 되는것이고, 받는 서버는 "메일 서버"가 되는 것이다.

일련의 과정을 SMTP에서는 "Relay"라고 부른다.


여기서 궁금했던건, 그렇다면 우리가 POP 프로토콜을 이용해 "네이버"와 같은 곳에서 메일을 긁어올 수 있냐는 것이다.

결론부터 말하자면 가능 할 수도, 불가능 할 수도 있다. 일부 서버들은 자신들의 서비스의 안전성과 수익을 위해 POP 서버를 외부에 공개시키지 않기때문에, 이러한 경우라면 우리가 메일을 직접 읽어올 수는 없다.

( 참고로 네이버는 메일의 환경설정 란에 POP와 SMTP를 활성화 하는 기능이 존재한다. )


SMTP/POP 프로토콜을 일반인이 이용하기에는 포트, 프로토콜과 같은 개념이 생소하기 때문에,

메일 서비스들은 이러한 과정들을 외부에 공개하지 않고 우리에게 "메일함" 만을 공개하는 것이다.

자신만의 특별한 메일주소를 가지신 분들은 이러한 서버를 구축하고 있는 분들인 것이다. 언젠가 나도 그런 서버를 만들 날이 오지 않을까.


++ 네이버 메일의 "수신 확인" 기능은 어떻게 구현되어있는 것인지 궁금하여 찾아보았는데, 참 기발하다는 생각이 들었다.

우리가 메일을 송신할 때, 메일에 작은 사진을 하나 첨부하여 전송하도록 하는데,

해당 메일을 수신자가 여는 순간, 해당 사진을 서버로부터 다운받게 되므로, 서버에 남아있는 로그를 바탕으로 수신자가 메일을 읽었는 지 여부를 확인하는 것이다.



왜 프로토콜을 두개나 사용해서 메일을 송수신 해야하는 지 에 대해서는 아직 알아내지 못했다.

애초에 SMTP는 서버-서버간 송신 / 클라이언트 -> 서버 로의 송신에 사용되도록 설계되었고,

POP의 경우 메일을 서버로부터 다운로드 하는 기능만을 가지고 있다 라는 답변이 대부분이었는데, 뭔가 심오한 이유가 있지 않을까 싶다.

이에 대해서는 여기저기 여쭙고 다니다가 알게 되면 추가적으로 기술하도록 하겠다!