IMAP, POP3, NNTP

IMAP, POP3, NNTP

메일함을 읽고 쓰는 코드를 직접 짜다 보면 IMAP, POP3, NNTP 같은 프로토콜에 손대게 돼요. PHP의 IMAP 확장이 이런 프로토콜 및 로컬 메일함 접근을 지원해 줘요. 다만 PHP 8.4.0부터 deprecated·unbundled 되었다는 점을 먼저 짚어둘게요.

출처: IMAP, POP3 and NNTP

본문

IMAP 관련 함수들은 IMAP 프로토콜뿐 아니라 NNTP, POP3, 그리고 로컬 메일함 접근 방법까지 다룰 수 있게 해 줘요.

주의할 점이 몇 가지 있어요.

  • 일부 IMAP 함수는 POP 프로토콜과는 제대로 동작하지 않아요.
  • IMAP 확장은 스레드 안전(thread-safe)하지 않아요. ZTS 빌드에서는 사용하지 않는 게 좋아요.
  • 이 확장은 PHP 8.4.0부터 DEPRECATED(폐기)UNBUNDLED(코어에서 분리) 처리되었어요.

IMAP 함수들

  • imap_8bit — 8비트 문자열을 quoted-printable 문자열로 변환
  • imap_alerts — 발생한 모든 IMAP 경고 메시지 반환
  • imap_append — 지정된 메일함에 문자열 메시지 추가
  • imap_base64 — BASE64 인코딩된 텍스트 디코딩
  • imap_binary — 8비트 문자열을 base64 문자열로 변환
  • imap_body — 메시지 본문 읽기
  • imap_bodystruct — 특정 메시지의 지정된 본문 섹션 구조 읽기
  • imap_check — 현재 메일함 확인
  • imap_clearflag_full — 메시지의 플래그 지우기
  • imap_close — IMAP 스트림 닫기
  • imap_createimap_createmailbox 의 별칭
  • imap_createmailbox — 새 메일함 생성
  • imap_delete — 현재 메일함에서 메시지를 삭제 대상으로 표시
  • imap_deletemailbox — 메일함 삭제
  • imap_errors — 발생한 모든 IMAP 오류 반환
  • imap_expunge — 삭제 표시된 모든 메시지 삭제
  • imap_fetch_overview — 주어진 메시지 헤더 정보의 개요 읽기
  • imap_fetchbody — 메시지 본문의 특정 섹션 가져오기
  • imap_fetchheader — 메시지의 헤더 반환
  • imap_fetchmime — 메시지 특정 섹션의 MIME 헤더 가져오기
  • imap_fetchstructure — 특정 메시지의 구조 읽기
  • imap_fetchtextimap_body 의 별칭
  • imap_gc — IMAP 캐시 정리
  • imap_get_quota — 메일함별 할당량 수준 설정과 사용 통계 조회
  • imap_get_quotaroot — 사용자별 할당량 설정 조회
  • imap_getacl — 주어진 메일함의 ACL 가져오기
  • imap_getmailboxes — 메일함 목록을 읽어 각각의 상세 정보 반환
  • imap_getsubscribed — 구독한 모든 메일함 목록
  • imap_headerimap_headerinfo 의 별칭
  • imap_headerinfo — 메시지의 헤더 읽기
  • imap_headers — 메일함의 모든 메시지 헤더 반환
  • imap_is_open — IMAP 스트림이 여전히 유효한지 확인
  • imap_last_error — 이 페이지 요청 중 발생한 마지막 IMAP 오류 가져오기
  • imap_list — 메일함 목록 읽기
  • imap_listmailboximap_list 의 별칭
  • imap_listscan — 주어진 텍스트와 일치하는 메일함 목록 반환
  • imap_listsubscribedimap_lsub 의 별칭
  • imap_lsub — 구독한 모든 메일함 목록
  • imap_mail — 이메일 메시지 보내기
  • imap_mail_compose — 주어진 envelope와 본문 섹션을 기반으로 MIME 메시지 생성
  • imap_mail_copy — 지정된 메시지를 메일함으로 복사
  • imap_mail_move — 지정된 메시지를 메일함으로 이동
  • imap_mailboxmsginfo — 현재 메일함에 대한 정보 가져오기
  • imap_mime_header_decode — MIME 헤더 요소 디코딩
  • imap_msgno — 주어진 UID에 대한 메시지 시퀀스 번호 가져오기
  • imap_mutf7_to_utf8 — 수정된 UTF-7 문자열을 UTF-8로 디코딩
  • imap_num_msg — 현재 메일함의 메시지 수 가져오기
  • imap_num_recent — 현재 메일함의 최근 메시지 수 가져오기
  • imap_open — 메일함에 IMAP 스트림 열기
  • imap_ping — IMAP 스트림이 여전히 활성인지 확인
  • imap_qprint — quoted-printable 문자열을 8비트 문자열로 변환
  • imap_renameimap_renamemailbox 의 별칭
  • imap_renamemailbox — 이전 메일함을 새 메일함으로 이름 변경
  • imap_reopen — 새 메일함으로 IMAP 스트림 다시 열기
  • imap_rfc822_parse_adrlist — 주소 문자열 파싱
  • imap_rfc822_parse_headers — 문자열에서 메일 헤더 파싱
  • imap_rfc822_write_address — 메일함·호스트·개인 정보가 주어졌을 때 올바른 형식의 이메일 주소 반환
  • imap_savebody — 특정 본문 섹션을 파일로 저장
  • imap_scanimap_listscan 의 별칭
  • imap_scanmailboximap_listscan 의 별칭
  • imap_search — 주어진 검색 조건과 일치하는 메시지 배열 반환
  • imap_set_quota — 주어진 메일함에 할당량 설정
  • imap_setacl — 주어진 메일함의 ACL 설정
  • imap_setflag_full — 메시지에 플래그 설정
  • imap_sort — 메시지 정렬 가져오기
  • imap_status — 메일함의 상태 정보 반환
  • imap_subscribe — 메일함 구독
  • imap_thread — 스레드된 메시지 트리 반환
  • imap_timeout — IMAP 타임아웃 설정 또는 가져오기
  • imap_uid — 주어진 메시지 시퀀스 번호에 대한 UID 반환
  • imap_undelete — 삭제 표시된 메시지의 표시 해제
  • imap_unsubscribe — 메일함 구독 해제
  • imap_utf7_decode — 수정된 UTF-7 인코딩 문자열 디코딩
  • imap_utf7_encode — ISO-8859-1 문자열을 수정된 UTF-7 텍스트로 변환
  • imap_utf8 — MIME 인코딩된 텍스트를 UTF-8로 변환
  • imap_utf8_to_mutf7 — UTF-8 문자열을 수정된 UTF-7로 인코딩

IMAP\Connection 클래스

  • IMAP\Connection — IMAP\Connection 클래스

더 알아보기

  • IMAP은 서버 연결을 유지하는 스트림 기반으로 동작해요. 연결 하나를 만들고 여러 메일함 작업을 수행한 뒤 imap_close()로 정리하는 흐름이 일반적이에요.