우체국 프로토콜을 통해 메일을 가져 오는 방법

A Behind the Scenes 우체국 프로토콜을 통해 메일을 가져 오는 방법 살펴보기

원격 서버에서 메일을 검색하는 데 사용되는 POP (Post Office Protocol) 는 매우 간단한 프로토콜입니다. 기본 기능을 간단하게 정의하고 구현하기 쉽습니다. 물론 이해하기 쉽습니다.

이메일 프로그램이 POP 계정에서 메일을 가져올 때 어떤 일이 발생하는지 알아 보겠습니다. 첫째, 서버에 연결해야합니다.

안녕, 나

일반적으로 POP 서버는 들어오는 연결을 포트 110 에서 수신합니다. POP 클라이언트 (귀하의 전자 메일 프로그램)로부터 연결되면 + OK pop.philo.org 또는 이와 유사한 것으로 응답 할 것으로 기대됩니다. + OK 는 모든 것이 OK 임을 나타냅니다. 그것의 부정적인 등가물은 뭔가 잘못되었다는 것을 의미하는 -ERR 입니다. 어쩌면 귀하의 이메일 클라이언트가 이미 이러한 부정적인 서버 응답 중 하나를 보여줬을 것입니다.

로그온하기

서버가 우리를 맞이 했으므로 사용자 이름 을 사용하여 로그온해야합니다 (사용자 이름이 "platoon"이고 서버가 말하는 내용은 기울임 꼴로 표시되어 있습니다).

+ OK pop.philo.org 준비 완료
사용자 소대

이 이름을 가진 사용자가 존재하기 때문에 POP 서버는 + OK로 응답하고 우리가 정말로 신경 쓰지 않는 횡설수설을합니다. 서버에 그러한 사용자가 없었 으면 물론, -ERR 사용자를 알 수없는 상태로 우리를 당황스럽게 만들 것입니다.

인증을 완료하려면 암호도 제공해야합니다. 이것은 "pass"명령으로 수행됩니다 :

+ OK 암호를 보내십시오.
노 플랫토를 지나치다

암호를 올바르게 입력하면 서버는 + OK 큰 암호 또는 POP 서버의 프로그래머가 염두에 두었던 것으로 응답합니다. 중요한 부분은 다시 + OK 입니다. 불행하게도 암호가 틀릴 수도 있습니다. 서버는 건조한 -ERR 사용자 이름과 암호가 일치하지 않음을 알립니다 (예 : 사용자 이름을 암호 로 사용하는 경우).

그래도 모든 일이 정상적으로 이루어진다면 우리는 서버에 연결되어 있으며 우리가 누구인지 알고 있으므로 새로 도착한 메일을 들여다 볼 준비가 된 것입니다.

메일이 도착했습니다!

서버의 POP 계정에 성공적으로 로그인 한 후에는 새로운 메일이 있는지 그리고 얼마만큼의 정보가 있는지 알고 싶을 수 있습니다.

이러한 기본 사서함 통계를 검색하는 데 사용되는 명령은 STAT 입니다.

가능한 서버 응답은 + OK 18 67042 입니다. 이 경우 + OK 기호 뒤에 오는 것이 중요합니다. 바로 다음에 오는 메일 함의 메일 수가 공백으로 구분되며 메일 함의 크기는 8 진수입니다 (한 옥텟은 8 비트입니다).

STAT
+ OK 18 67042

메일이 없으면 서버는 + OK 0 0으로 응답합니다. 그러나 서버에 18 개의 새 메시지가 있기 때문에 LIST 명령을 사용하여이를 나열 할 수 있습니다. 이에 대한 응답으로 서버는 다음과 같은 형식으로 메시지를 나열합니다.

명부
+ 확인 메시지 18 개 (67042 옥텟)
1 2552
2 3297
...
18 3270
.

메시지는 한 번에 하나씩 나열되며 각 메시지의 크기는 8 진수로 표시됩니다. 목록은 한 줄에 마침표로 끝납니다.

LIST 명령은 메시지의 수를 선택적 인수 (예 : LIST 2) 로 취할 수 있습니다. 이 요청에 대한 서버의 응답은 + OK 2 3297 이며, 메시지 번호 뒤에 메시지 크기가옵니다. LIST 23 과 같이 존재하지 않는 메시지를 나열하려고하면 서버는 상상력을 발휘 하지 않고 -ERR 해당 메시지를 표시하지 않습니다 .

큰 검색 (및 삭제)

이제는 얼마나 많은 메시지가 우리 계정에 있고 얼마나 큰지 알게 되었으니 마침내 우리가 읽을 수 있도록 메시지를 검색 할 차례입니다.

자, 우리가 새 우편물을 가지고 있는지 여부를 알아 낸 후에, 진짜가옵니다. 메시지는 메시지 번호를 RETR 명령의 인수로 하나씩 검색합니다.

서버는 + OK 와 메시지를 여러 줄로 응답합니다. 메시지는 한 줄에 마침표로 끝납니다. 예 :

RETR 1
+ OK 2552 옥텟
어쩌구!
.

존재하지 않는 메시지를 얻으려고하면 --ERR에 그런 메시지가 없습니다 .

이제 DELE 명령을 사용하여 메시지를 삭제할 수 있습니다. (물론 우리는 그 날 중 하나 인 경우 메시지를 검색하지 않고 삭제할 수 있습니다.)

서버가 메시지를 즉시 삭제하지 않는다는 것을 알고있는 것이 좋습니다. 단순히 삭제 표시 만됩니다. 실제 삭제는 Google이 정기적으로 서버에 대한 연결을 종료하는 경우에만 발생합니다. 예를 들어, 갑자기 연결이 끊어지면 메일이 손실되지 않습니다.

DELE 명령에 대한 서버의 응답은 + OK 메시지가 삭제되었습니다 .

DELE 1
+ OK 메시지 1이 삭제되었습니다.

실제로 그 중 하나 일 경우 우리는 삭제하고 싶지 않은 삭제 메시지를 표시했습니다. 삭제 표시를 다시 설정하여 모든 메시지의 삭제를 취소 할 수 있습니다. RSET 명령은 로그인하기 전의 상태로 사서함을 반환합니다.

서버는 + OK 및 가능하면 메시지 수로 응답합니다.

RSET
+ OK 18 개의 메시지

모든 메시지를 검색하고 삭제 한 후에는 QUIT 명령을 사용하여 작별 인사 할 때입니다. 이렇게하면 삭제 표시된 메시지가 제거되고 연결이 닫힙니다. 서버는 + OK 및 작별 인사 메시지로 응답합니다.

떠나다
+ OK 안녕, 안녕

서버가 메시지를 삭제할 수 없었을 가능성이 있습니다. 그런 다음 -ERR 메시지 2가 삭제되지 않은 오류로 응답합니다.