728x90
반응형
IMAP COMMAND 정리
1. 접속
telnet XXX.XXX.XXX.XXX 143
2. 로그인
확인할 사용자 확인
a LOGIN [사용자] 0000
3. 박스 선택하기
a SELECT INBOX
4. 리스트 보기
a FETCH 0:[최대UID|*] (UID RFC822.SIZE FLAGS BODY[HEADER.FIELDS (FROM TO SUBJECT DATE MESSAGE-ID)])
5. 메시지 가져오기
a UID FETCH [해당 UID] BODY.PEEK[]
유용한 COMMAND
1. 전체 메시지의 X-MMS-MESSAGE-ID 출력
  a fetch 0:* (BODY[HEADER.FIELDS (X-MMS-MESSAGE-ID)])
2. 특정 X-MMS-MESSAGE-ID를 가진 UID 검색
a search HEADER "X-MMS-MESSAGE-ID" "검색하려고 하는값"
3. 메일 삭제
a store [UID] +flags (\deleted)
  a expunge
4. 첨부 컨텐츠만 확인
  a fetch [UID] rfc822.text
5. 메일의 모든 헤더값 출력
  a fetch [UID] BODY[HEADER]

1.       SELECT Command

A.      설명

메일 박스를 선택 한다. ( <-> CLOSE )

B.      사용예

A1 SELECT INBOX

<-> A1 CLOSE

2.       EXAMINE Command

A.      설명

SELECT 명령과 같다그러나 the selected mailbox is identified as read-only.

B.      사용예

A1 EXAMINE INBOX

3.       CREATE Command

A.      설명

메일 박스를 생성 한다.

B.      사용예

A1 CREATE OUTBOX1

4.       DELETE Command

A.      설명

메일 박스를 삭제 한다.

B.      사용예

A1 DELETE OUTBOX1

5.       RENAME Command

A.      설명

메일박스의 이름을 변경한다.

B.      사용예

A1 RENAME OUTBOX1 OUTBOX3

6.       SUBSCRIBE Command

A.      설명

LSUB Command에 의해 리턴되는 메일박스의 서버측 세팅인 ACTIVE, SUBSCRIBED 명시된 메일박스의 이름을 이 명령으로 추가 한다. (등록)

B.      사용예

A1 SUBSCRIBE OUTBOX1

7.       UNSUBSCRIBE Command

A.      설명

SUBSCRIBE의 반대 작업 (등록해제).

B.      사용예

A1 UNSUBSCRIBE OUTBOX1

8.       LIST Command

A.      설명

리스팅 기능.

B.      사용예

A1 LIST “” *

9.       LSUB Command

A.      설명

LIST와 기능이 비슷함

B.      사용예

a1 lsub "#news." "comp.mail.*"

a1 OK LSUB completed

10.   STATUS Command

A.      설명

메일박스의 상태 정보를 리턴 함.

Parameter

MESSAGES : 메일박스에 메세지의 수를 리턴    

RECENT : 최근에 등록된 메시지의 수 리턴

UIDNEXT : 새로운 메시지에 부여될 UID의 번호 리턴

UIDVALIDITY : 메일박스에서 unique identifier validity value 리턴

UNSEEN : The number of messages which do not have the \Seen flag set.

B.      사용예

A1 STATUS INBOX (MESSAGES)

A1 STATUS INBOX (MESSAGES UIDNEXT UIDVALIDITY)

11.   APPEND Command

A.      설명

명시된 메일박스의 끝에 새로운 메시지를 추가 할 수 있는 명령이다.

B.      사용예

A003 APPEND outbox1 (\Seen) {310}

Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)

From: Fred Foobar

Subject: afternoon meeting

To: sjjung@mdminc.net

Message-Id:

MIME-Version: 1.0

Content-Type: TEXT/PLAIN; CHARSET=US-ASCII

C:

Hello Joe, do you think we can meet at 3:30 tomorrow?

C:

C:

C:

S: A003 OK APPEND completed

12.   CHECK Command

A.      설명

현재 선택된 메일박스의 체크포인트를 요구 한다.

B.      사용예

a1 check

a1 OK CHECK completed

13.   CLOSE Command

A.      설명 (좀더 읽어 봐야 함)

현재 선택된 메일박스의 close, 메시지중 \Deleted flag 로 세팅 되어 있는 것들은 영구적으로 삭제 해버린다.

B.      사용예

a1 close

14.   EXPUNGE Command

A.      설명

현재 선택된 메일박스의 메시지중 \Deleted flag 로 세팅 되어 있는 것들은 영구적으로 삭제 해버린다.

B.      사용예

a1 expunge

15.   SEARCH Command

A.      설명 (argument가 많음 다시 읽어 보기)

메일박스에서 given searching criteria 를 찾는다.

Searching criteria consist of one or more search keys.

B.      사용예

A282 SEARCH FLAGGED SINCE 1-Feb-1994 NOT FROM "Smith"

16.   FETCH Command

A.      설명

fetch 명령은 메일박스안의 메시지에 첨부된 데이터를 가져온다.

Fetch data single atom 또는 parenthesized list 로 할 수 있다.

사용해본 결과 아래와 같이도 됨

* 7 FETCH (FLAGS (\Seen) BODY[HEADER.FIELDS ("DATE" "FROM" "SUBJECT")] {118}

Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)

From: Fred Foobar

Subject: afternoon meeting

B.      사용예

A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)])

A654 FETCH 1:7 (FLAGS BODY[HEADER.FIELDS (DATE FROM)])

A654 FETCH 1:7 (FLAGS BODY[HEADER.FIELDS (DATE FROM SUBJECT)])

17.   STORE Command

A.      설명

메일박스안의 메시지에 첨부된 데이터를 바꾼다.

STORE가 플래그의 설정을 할 수 있음

B.      사용예

A003 STORE 2:4 +FLAGS (\Deleted)

18.   COPY Command

A.      설명

명시된 목적지 메일박스의 끝에 명시된 메시지를 복사 할 수 있다.

Flag  internal date는 복사본 에서도 유지 된다.

B.      사용예

A003 COPY 2:4 inbox

19.   UID Command

A.      설명

UID는 두개의 폼을 가지고 있다.

첫번째

복합 명령을 위해 적당한 argument copy, fetch, store 명령과 함께 쓸수 있다그러나 message set argument 의 수는 message sequence numbers 대신에 유일하게 인식 한다.

두번째

search 폼과 같이 쓸 수 있다. Argument의 해석은 SEARCH 명령과 같다그러나 UID SEARCH command를 위해 SEARCH 응답안데 돌려 보내는 수는 message sequence numbers 대신에 유일하게 인식 한다.

For example, the command UID SEARCH

1:100 UID 443:557 returns the unique identifiers corresponding to

the intersection of the message sequence number set 1:100 and the

UID set 443:557.

B.      사용예

A999 UID FETCH 2:6 FLAGS

* 1 FETCH (UID 4 FLAGS (\Seen))

A999 OK UID FETCH completed


/* (0) call login - Login ID, Login Password, Login Prompt */
cmd_struct tel_login[] = {
{"* OK", "login login %s %s", NULL, NULL},
{"login OK", "~", NULL, NULL},
};

/* (1) call logout*/
cmd_struct tel_logout[] = {
{"~", "logout logout", NULL, NULL},
{"logout OK", "~", NULL, NULL},
};

/* (2) close message sequence of MMBox */
cmd_struct close_mmbox_cmd_list[] = {
{"~", "MMBox close", NULL, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (3) noop MMBox */
cmd_struct noop_mmbox_cmd_list[] = {
{"~", "MMBox noop", NULL, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (4) create MMBox */
cmd_struct create_mmbox_cmd_list[] = {
{"~", "MMBox create %s", NULL, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (5) remove MMBox */
cmd_struct remove_mmbox_cmd_list[] = {
{"~", "MMBox delete %s", NULL, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (6) upload MMBox */
cmd_struct upload_mmbox_cmd_list[] = {
{"~", "MMBox append %s (\\Seen) {%s}", NULL, NULL},
{"+ OK", "%s", append_proc, NULL},
// {"+ Ready", "%s", append_proc, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (7) move Mail in MMBox to other MMBox */
cmd_struct move_mmbox_cmd_list[] = {
{"~", "MMBox select %s", NULL, NULL},
{"MMBox ", "MMBox search HEADER Message-ID %s", NULL, parse_error_detect},
{"MMBox ", "MMBox copy %s %s", NULL, parse_search_sqn},
{"MMBox ", "MMBox store %s +FLAGS (\\Deleted)",
  NULL, parse_error_ignore},
{"MMBox ", "MMBox expunge", NULL, NULL},
{"MMBox ", "MMBox close", NULL, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (8) copy Mail in MMBox to other MMBox */
cmd_struct copy_mmbox_cmd_list[] = {
{"~", "MMBox select %s", NULL, NULL},
{"MMBox ", "MMBox search HEADER Message-ID %s", NULL, parse_error_detect},
{"MMBox ", "MMBox copy %s %s", NULL, parse_search_sqn},
{"MMBox ", "MMBox close", NULL, parse_error_ignore},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (9) del Mail in MMBox */
cmd_struct del_mmbox_cmd_list[] = {
{"~", "MMBox select %s", NULL, NULL},
{"MMBox ", "MMBox search HEADER Message-ID %s", NULL, parse_error_detect},
{"MMBox ", "MMBox store %s +FLAGS (\\Deleted)",
  NULL, parse_search_sqn},
{"MMBox ", "MMBox expunge", NULL, NULL},
{"MMBox ", "MMBox close", NULL, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (10) get Mail in MMBox */
cmd_struct get_mmbox_cmd_list[] = {
{"~", "MMBox select %s", NULL, NULL},
{"MMBox ", "MMBox search HEADER Message-ID %s", NULL, parse_error_detect},
{"MMBox ", "MMBox fetch %s RFC822.TEXT", NULL, parse_search_sqn},
{"MMBox ", "MMBox close", NULL, parse_get_mm},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (11) get Mail header in MMBox */
cmd_struct get_header_cmd_list[] = {
{"~", "MMBox select %s", NULL, NULL},
{"MMBox ", "MMBox search HEADER Message-ID %s", NULL, parse_error_detect},
{"MMBox ", "MMBox fetch %s BODY[HEADER]", NULL, parse_search_sqn},
{"MMBox ", "MMBox close", NULL, parse_get_mm},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (12) view Mail list in MMBox */
cmd_struct view_mmbox_cmd_list[] = {
{"~", "MMBox select %s", NULL, NULL},
{"MMBox ", "MMBox fetch 1:* (FLAGS BODY[HEADER])", NULL, parse_error_detect}, /* UID FETCH 1:* (FLAGS) */
{"MMBox ", "MMBox close", NULL, parse_fetch_mmbox_list},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (13) status MMBox */
cmd_struct status_mmbox_cmd_list[] = {
{"~", "MMBox status %s (MESSAGES)", NULL, NULL},
{"MMBox ", "~", NULL, parse_error_detect},
};

/* (14) store flags of MM of MMBox */
cmd_struct set_status_mmbox_cmd_list[] = {
{"~", "MMBox select %s", NULL, NULL},
{"MMBox ", "MMBox search HEADER Message-ID %s", NULL, parse_error_detect},
{"MMBox ", "MMBox store %s flags %s", NULL, parse_search_sqn},
{"MMBox ", "MMBox close", NULL, parse_error_detect},
{"MMBox ", "~", NULL, parse_error_detect},
};



출처 : http://blog.naver.com/neptune4781/90002644797

728x90
반응형

+ Recent posts