개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.11 13:04

imap_fetchstructure의 사용법을 알려주세요

목록
  • Unity마법사 8일 전 2025.07.11 13:04
  • 47
    1
제가 imap_fetchstructure 함수를 사용하여 메일의 구조를 가져오려고 합니다. 하지만, 이 함수의 리턴값으로 받은 구조를 어떻게 해석해야 하는지 모르겠습니다.

imap_fetchstructure 함수의 리턴값은 어떤 형태로 받을 수 있을까요? 그리고 이 값을 어떻게 해석해야 메일의 구조를 알 수 있을까요?

아래의 코드를 보겠습니다.

python

import imaplib



mail = imaplib.IMAP4_SSL('imap.gmail.com')

mail.login('내 이메일', '내 비밀번호')

mail.select('inbox')



status, messages = mail.search(None, 'ALL')



for num in messages[0].split():

    status, msg = mail.fetch(num, '(RFC822)')

    raw_message = msg[0][1]



    # imap_fetchstructure 함수 사용

    status, structure = mail.fetch(num, '(BODY[STRUCTURE])')

    print(structure)



imap_fetchstructure 함수를 사용하여 메일의 구조를 가져오고 싶은데, 어떻게 해야할까요?

    댓글목록

    profile_image
    나우호스팅  8일 전



    imap_fetchstructure 함수의 리턴값은 메일의 구조를 나타내는 데이터를 포함하는 tuple입니다. 이 tuple에는 메일의 헤더, 본문, 첨부 파일, 등과 같은 메일의 구성 요소에 대한 정보가 포함되어 있습니다.

    이 값을 해석하기 위해서는 imap4 모듈의 구조 데이터를 분석해야 합니다. 구조 데이터는 다음과 같은 형태로 구성됩니다.

    - TYPE: 메일의 타입 (예: TEXT, Multipart, MESSAGE)
    - DESC: 메일의 설명
    - ENCODING: 메일의 인코딩 타입
    - SIZE: 메일의 크기
    - PARAMETERS: 메일의 파라미터
    - BODY: 메일의 본문
    - CHILDREN: 메일의 하위 항목

    이러한 구조 데이터를 분석하여 메일의 구조를 알 수 있습니다.

    해당 코드를 수정하여 메일의 구조를 분석하는 예제를 살펴보겠습니다.

    #hostingforum.kr
    python
    
    import imaplib
    
    
    
    mail = imaplib.IMAP4_SSL('imap.gmail.com')
    
    mail.login('내 이메일', '내 비밀번호')
    
    mail.select('inbox')
    
    
    
    status, messages = mail.search(None, 'ALL')
    
    
    
    for num in messages[0].split():
    
        status, msg = mail.fetch(num, '(RFC822)')
    
        raw_message = msg[0][1]
    
    
    
        # imap_fetchstructure 함수 사용
    
        status, structure = mail.fetch(num, '(BODY[STRUCTURE])')
    
        structure_data = structure[0][1]
    
    
    
        # 구조 데이터를 분석하여 메일의 구조를 알 수 있습니다.
    
        print('메일의 타입:', structure_data[0].decode('utf-8'))
    
        print('메일의 설명:', structure_data[1].decode('utf-8'))
    
        print('메일의 인코딩 타입:', structure_data[2].decode('utf-8'))
    
        print('메일의 크기:', structure_data[3])
    
        print('메일의 파라미터:', structure_data[4])
    
        print('메일의 본문:', structure_data[5])
    
        print('메일의 하위 항목:', structure_data[6])
    
    


    이 예제에서는 imap_fetchstructure 함수의 리턴값을 분석하여 메일의 구조를 알 수 있습니다. 메일의 타입, 설명, 인코딩 타입, 크기, 파라미터, 본문, 하위 항목과 같은 메일의 구성 요소에 대한 정보를 출력합니다.

    2025-07-11 13:05

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,358건 / 2 페이지

검색

게시물 검색