관리 메뉴

nkdk의 세상

콘솔로 pop3 대화 하기 본문

My Programing/ETC

콘솔로 pop3 대화 하기

nkdk 2008. 3. 9. 22:37
메일과 관련된 가장 중요한 두 가지의 프로토콜은 POP3와 SMTP이다.
보통 javamail API를 이용하는 경우 보내는 서버인 SMTP만을 이용하는 것이 대부분이다. javamail API를 이용하여 메일을 보내는 것은 다른 세션이나 글을 통해서 알아보면 좋겠다.
여기서는 POP3를 콘솔(윈도우이면 명령 프롬프트) 상에서 커맨드를 통한 간단한 예를 보여주고자 한다.

먼저, POP3의 포트는 110, SMTP 포트는 25라는 것은 기본적으로 알고 있을 필요가 있다. 대부분은 알고 있으리라 생각된다.

다음은 콘솔의 telnet 명령어를 통해서 POP3에 접속하여 로그인 한 후, 메시지의 리스트 갯수를 얻어오는 과정을 설명한 것이다. 참고로 "파란색"은 클라이언트(콘솔)에서 입력하는 것이고 "주황색"은 서버의 응답을 표시한다.

console>telnet mail.wiseant.net 110

그러면 콘솔이 telnet 으로 바뀌면서 다음과 같은 POP3 서버가 보내는 메시지를 볼 수 있다.

+OK Welcome to POP3 Server

즉, 접속은 POP3 서버에 정상적으로 접속을 했다는 말이다. 이제부터 POP3와의 대화를 시도한다고 생각하면 된다.

대화의 첫 시도에서는 사용자 아이디와 패스워드를 입력하여 인증을 받아야 한다.

USER wiseant
+OK
PASS user-password
+OK

해당하는 POP3 서버가 OK 메시지를 보낸 것을 확인할 수 있다. 이제 내 메일 계정의 상태를 알아보자.

STATE
+OK 45 23788250

총 45개의 메시지를 보관하고 있는데, 용량이 23788250 byte 라고 응답한다. 다음은 LIST 명령어를 내려보자.

LIST
+OK 45 messages:
1 134268
2 2522
3 15290277
4 185246
5 64591
6 3425
7 9285
8 1658899
9 4447
10 3107
11 37775
12 11400
13 199801
14 39669
15 4404
16 58860
17 5568
18 6572
19 2532742
20 36726
21 8345
22 485500
23 10774
24 2349
25 919516
26 7470
27 1327001
28 126218
29 19088
30 3028
31 2756
32 3585
33 15647
34 4574
35 2682
36 1383
37 1033
38 2568
39 5214
40 173646
41 158514
42 160119
43 43596
44 13259
45 801

45개의 메시지에 대해서 각각의 용량을 알려준다. 이제 실제로 메시지(메일)의 내용을 살펴보자.

RETR 1
.
..
...
------=_NextPart_000_0003_01C8497C.77820080--

번호에 해당하는 메시지를 쭈욱 보여준다. 그렇다면 삭제는 어떻게 할까? 다음과 같이 해 주면 된다.

DELE 1
+OK message 1 deleted

보통은 메일 클라이언트를 이용하여 POP3 설정을 하여 메일을 읽기 때문에 이와 같은 방법은 잘 사용하지 않는다. command 시대의 전유물이라고 생각하는 경우가 있기도 한데, 메일에 대한 RFC 문서나 메일 솔루션의 개발, 디버깅 시에는 유용한 방법이 될 것이다.