반응형

POP3 구현 하기

우리는 POP3 를 이용하여 메일 서버로부터 메일을 가져 올 수 있습니다 . POP3 환경에서 메일은 메일 서버에 존재 하며 일반적인 클라이언트 프로그램은 메일 서버로 접속 한 다음 메일 메시지를 서버에서 클라이언트로 복사 합니다 . 일반적으로 클라이언트가 POP3 서버의 TCP 110 번 포트로 연결 되면서 POP 세션이 이루어 지면서 클라이언트가 서버에 접속을 성공 하면 POP3 서버는 접속 축하 메시지를 돌려 준다 . 그러면 다음 명령어를 수행 할 수 있으며 클라이언트와 서버가 서로 응답을 주고 받은 다음 연결이 종료 되면서 세션도 끝나게 되는 것이다 .

----------

POP 명령

----------

일반적인 명령어 규약은 다음과 같습니다 .

명령어는 CRLF 시퀀스로 종료 된다 .

키워드는 공백 문자로 구분 된다 .

키워드는 3~4 글자로 이루어져 있다 .

응답은 최대 512 자까지 된다 .

“+OK” 는 긍정적인 응답을 가리 킨다 .

“-ERR” 은 부정적인 응답이나 오류가 발생 한 경우를 나타낸다 .

필수명령

설명

USER [name]

서버에 접속하는 사용자 명

PASS [password[

서버에 접속하는 사용자의 비밀번호

QUIT

현재 세션의 종료

DELE [msg]

서버에서 메일을 삭제

RSET

현재 세션의 모든 변경 사항을 취소

STAT

서버에 존재하는 메시지의 개수를 돌려 준다 .

RETR [msg]

메시지의 컨텐츠를 가져 온다

LIST [msg]

파라미터로 넘어 오는 메시지에 대한 정보를 돌려 준다 . 예를들면 크기를 바이트 단위로 돌려준다 . 파라미터가 없다면 모든 메시지의 목록과 그 크기를 돌려 준다 .

NOOP

서버와 긍적적인 응답을 주고 받는 것 이외에 아무런 작업도 수행하지 않는다 .

TOP [msg] [n]

서버는 메시지의 헤더와 본문을 구분해 주는 빈 줄 , 그리고 메시지의 본문이 몇 개의 행으로 이루어 졌는지 알려 준다 . [msg] 에서 원하는 메시지의 번호를 지정하며 [n] 에서 가져오려는 메시지의 상위 행의 개수를 지정 한다 .

UIDL [msg]

인자가 주어 졌으면 서버는 지정된 메시지에 대한 정보를 담고 있는 행을 긍정적인 응답과 함께 표시 한다 . 이를 선택된 메시지에 대한 “ 고유 id” 목록이라 한다 . 메시지의 고유 id 는 서버에서 독자적으로 지정하는 문자열로 0x21 로부터 0x7e 까지 문자들 중의 하나로 이루어 진다 . 이는 메시지를 고유 하게 식별하기 위해 사용 한다 .

////////////////////////////////////////////////////////////////////////////////////
본문

사용자가 쉘 계정이 있는 호스트에 직접 접속하여 메일을 읽지 않고
자신의 PC에서 바로 로컬 메일 리더(유도라나 넷스케이프 ,outlook outlook express 등등)를 이용하여
자신의 메일을 다운로드 받아서 보여주는 것을 정의한 프로토콜이다.
POP2와 PO3과 함께 널리 사용된다.
POP2는 RFC 937에 정의되어 있으며 POP3는 RFC 1725에 정의되어 있다.
POP2는 포트번호 109를 사용하며 POP3는 포트번호 110을 사용한다.
이들은 다른 명령어를 사용하지만 기본적으로 같은 기능을 수행한다.

POP 프로토콜은 사용자의 로그인 이름과 패스워드를 식별하고,
서버로부터 사용자의 로컬 메일 리더(local mail reader)로 사용자의 메일을 이동시킨다.
POP2는 SMTP와 같이 단순한 요구/응답 프로토콜이다.
HELO 명령은 검색중인 메일박스의 계정을 위해서 사용자의 이름과 패스워드를 제공한다.
HELO 명령에 대한 응답으로 서버는 메일박스에 메시지의 수를 보낸다.
READ 명령에 의해 메일을 읽기 시작한다.
RETR 명령은 현재 메시지의 전체 텍스트를 검색한다.
ACKD는 메시지의 수신 확인 명령으로 서버로부터 해당 메시지를 삭제한다.
각각의 메일에 대한 수신 확인 후에 서버는 새로운 메시지에 바이트의 수를 보낸다.
만약 바이트가 0이라면 더이상 검색할 메시지가 없다라는 것을 가리키며
클라이언트는 QUIT 명령에 의해 세션을 종료한다.

POP3에 대한 명령은 POP2와 완전히 다르지만 유사한 기능을 수행한다.
POP3의 USER 명령은 사용자의 계정 이름을 제공하고 PASS 명령은 사용자의 패스워드를 제공한다.
STAT 명령은 읽지 않은 메시지의 수와 바이트 크기를 출력한다.
RETR 명령은 해당 번호의 메시지를 검색한다.
DELE 명령은 해당 번호의 메시지를 삭제한다.
LAST 명령은 가장 최근에 접근된 메시지의 번호를 출력한다.
LIST 명령은 모든 메시지나 해당 메시지의 크기를 출력한다.
QUIT 명령은 세션을 종료한다.

+ Recent posts