Mailparse

Mailparse

이메일 메시지를 파싱하거나 처리해야 할 때, mailparse 확장이 유용해요. 특히 대용량 메시지를 다뤄야 할 때 메모리를 아끼면서 처리할 수 있는 구조를 갖추고 있어요.

출처: Mailparse

본문

mailparse는 이메일 메시지를 파싱하고 다루기 위한 확장이에요. » RFC 822 및 » RFC 2045(MIME) 규격을 준수하는 메시지를 처리할 수 있어요.

mailparse는 스트림 기반이라서, 처리하는 파일을 메모리에 복사해 두지 않아요. 그래서 큰 메시지를 다룰 때 리소스 효율이 매우 좋아요.

한 가지 주의할 점은, mailparse는 mbstring 확장이 필요하고, mbstring이 mailparse보다 먼저 로드되어 있어야 한다는 거예요.

Mailparse 함수들

  • mailparse_determine_best_xfer_encoding — 가장 좋은 인코딩 방식 찾기
  • mailparse_msg_create — mime 메일 리소스 생성
  • mailparse_msg_extract_part — 메시지 섹션 추출·디코딩
  • mailparse_msg_extract_part_file — 메시지 섹션 추출·디코딩
  • mailparse_msg_extract_whole_part_file — 전송 인코딩 디코딩 없이 헤더를 포함한 메시지 섹션 추출
  • mailparse_msg_free — MIME 리소스 해제
  • mailparse_msg_get_part — mimemessage에서 특정 섹션의 핸들 반환
  • mailparse_msg_get_part_data — 메시지에 대한 정보를 담은 연관 배열 반환
  • mailparse_msg_get_structure — 주어진 메시지의 mime 섹션 이름 배열 반환
  • mailparse_msg_parse — 데이터를 버퍼에 점진적으로 파싱
  • mailparse_msg_parse_file — 파일 파싱
  • mailparse_rfc822_parse_addresses — RFC 822 규격 주소 파싱
  • mailparse_stream_encode — 원본 파일 포인터에서 데이터를 스트리밍하고 인코딩을 적용해 destfp에 기록
  • mailparse_uudecode_all — fp의 데이터를 스캔해 포함된 uuencoded 파일을 각각 추출

더 알아보기

  • mailparse는 MIME 구조를 계층으로 파악할 수 있어 첨부 파일 처리에 자주 쓰여요. 다만 스트림 기반 특성 때문에 사용 흐름을 먼저 이해하는 게 좋아요.