개발자 Q&A

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

2025.05.24 21:38

imap_savebody 함수 사용 방법에 대한 질문

목록
  • SOLID원칙수호자 11시간 전 2025.05.24 21:38 새글
  • 2
    1
선생님, imap_savebody 함수를 사용하여 이메일 본문을 저장하는 방법을 알려주세요.

imap_savebody 함수를 사용할 때, 저장할 파일의 경로를 지정하는 방법은 어떻게 되나요?

예를 들어, 'C:\temp\email_body.txt' 경로에 저장하고 싶은데 어떻게 해야 하나요?

imap_savebody 함수가 이메일 본문을 읽어 들여 저장할 때, 특정한 이메일 주소를 읽어들일 수 있는 방법이 있나요?

imap_savebody 함수를 사용하여 이메일 본문을 저장할 때, 이메일 본문이 너무 큰 경우에 어떻게 해야 하나요?

선생님, imap_savebody 함수를 사용하여 이메일 본문을 저장하는 방법에 대한 자세한 설명 부탁드립니다.

imap_savebody 함수를 사용하여 이메일 본문을 저장할 때, 에러가 발생하는 경우를 대비하여 어떻게 해야 하나요?

imap_savebody 함수를 사용하여 이메일 본문을 저장하는 방법에 대한 자세한 예제 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  11시간 전



    imap_savebody 함수는 이메일 본문을 저장하는 데 사용되는 함수입니다. 이 함수를 사용하여 이메일 본문을 저장하는 방법에 대해 설명하겠습니다.

    ### 저장할 파일의 경로를 지정하는 방법



    imap_savebody 함수를 사용할 때, 저장할 파일의 경로를 지정하는 방법은 다음과 같습니다.

    #hostingforum.kr
    python
    
    import imaplib
    
    import email
    
    from email.parser import BytesParser
    
    
    
    # 이메일 서버 정보
    
    mail = imaplib.IMAP4('imap.gmail.com')
    
    mail.login('your_email@gmail.com', 'your_password')
    
    mail.select('inbox')
    
    
    
    # 이메일 메시지 ID
    
    msg_id = 'your_email_id'
    
    
    
    # 이메일 본문을 읽어 들여 저장할 파일 경로
    
    save_path = 'C:\temp\email_body.txt'
    
    
    
    # 이메일 본문을 읽어 들여 저장
    
    status, msg = mail.fetch(msg_id, '(RFC822)')
    
    raw_email = msg[0][1]
    
    email_message = BytesParser().parsebytes(raw_email)
    
    with open(save_path, 'wb') as f:
    
        f.write(email_message.get_payload(decode=True))
    
    


    ### 특정 이메일 주소를 읽어들일 수 있는 방법



    imap_savebody 함수를 사용하여 특정 이메일 주소를 읽어들일 수 있는 방법은 다음과 같습니다.

    #hostingforum.kr
    python
    
    import imaplib
    
    import email
    
    from email.parser import BytesParser
    
    
    
    # 이메일 서버 정보
    
    mail = imaplib.IMAP4('imap.gmail.com')
    
    mail.login('your_email@gmail.com', 'your_password')
    
    mail.select('inbox')
    
    
    
    # 특정 이메일 주소
    
    email_address = 'your_email@gmail.com'
    
    
    
    # 이메일 본문을 읽어 들여 저장할 파일 경로
    
    save_path = 'C:\temp\email_body.txt'
    
    
    
    # 이메일을 검색하여 메시지 ID를 얻습니다.
    
    status, search_data = mail.search(None, '(FROM "%s")' % email_address)
    
    if search_data:
    
        # 메시지 ID를 사용하여 이메일 본문을 읽어 들여 저장
    
        msg_id = search_data[0].decode('utf-8').split()[0]
    
        status, msg = mail.fetch(msg_id, '(RFC822)')
    
        raw_email = msg[0][1]
    
        email_message = BytesParser().parsebytes(raw_email)
    
        with open(save_path, 'wb') as f:
    
            f.write(email_message.get_payload(decode=True))
    
    


    ### 이메일 본문이 너무 큰 경우



    이메일 본문이 너무 큰 경우, 이메일 본문을 작은 크기의 파일로 나누어 저장할 수 있습니다. 예를 들어, 이메일 본문을 10KB씩 나누어 저장할 수 있습니다.

    #hostingforum.kr
    python
    
    import imaplib
    
    import email
    
    from email.parser import BytesParser
    
    
    
    # 이메일 서버 정보
    
    mail = imaplib.IMAP4('imap.gmail.com')
    
    mail.login('your_email@gmail.com', 'your_password')
    
    mail.select('inbox')
    
    
    
    # 이메일 메시지 ID
    
    msg_id = 'your_email_id'
    
    
    
    # 이메일 본문을 읽어 들여 저장할 파일 경로
    
    save_path = 'C:\temp\email_body.txt'
    
    
    
    # 이메일 본문을 읽어 들여 저장
    
    status, msg = mail.fetch(msg_id, '(RFC822)')
    
    raw_email = msg[0][1]
    
    email_message = BytesParser().parsebytes(raw_email)
    
    
    
    # 이메일 본문을 10KB씩 나누어 저장
    
    chunk_size = 10 * 1024
    
    with open(save_path, 'wb') as f:
    
        for i in range(0, len(email_message.get_payload(decode=True)), chunk_size):
    
            chunk = email_message.get_payload(decode=True)[i:i + chunk_size]
    
            f.write(chunk)
    
    


    ### 에러가 발생하는 경우



    imap_savebody 함수를 사용하여 이메일 본문을 저장할 때, 에러가 발생하는 경우를 대비하여 다음과 같이 처리할 수 있습니다.

    #hostingforum.kr
    python
    
    import imaplib
    
    import email
    
    from email.parser import BytesParser
    
    
    
    # 이메일 서버 정보
    
    mail = imaplib.IMAP4('imap.gmail.com')
    
    mail.login('your_email@gmail.com', 'your_password')
    
    mail.select('inbox')
    
    
    
    # 이메일 메시지 ID
    
    msg_id = 'your_email_id'
    
    
    
    # 이메일 본문을 읽어 들여 저장할 파일 경로
    
    save_path = 'C:\temp\email_body.txt'
    
    
    
    try:
    
        # 이메일 본문을 읽어 들여 저장
    
        status, msg = mail.fetch(msg_id, '(RFC822)')
    
        raw_email = msg[0][1]
    
        email_message = BytesParser().parsebytes(raw_email)
    
        with open(save_path, 'wb') as f:
    
            f.write(email_message.get_payload(decode=True))
    
    except Exception as e:
    
        print(f'에러 발생: {e}')
    
    


    ### 자세한 예제



    imap_savebody 함수를 사용하여 이메일 본문을 저장하는 방법에 대한 자세한 예제는 다음과 같습니다.

    #hostingforum.kr
    python
    
    import imaplib
    
    import email
    
    from email.parser import BytesParser
    
    
    
    # 이메일 서버 정보
    
    mail = imaplib.IMAP4('imap.gmail.com')
    
    mail.login('your_email@gmail.com', 'your_password')
    
    mail.select('inbox')
    
    
    
    # 이메일 메시지 ID
    
    msg_id = 'your_email_id'
    
    
    
    # 이메일 본문을 읽어 들여 저장할 파일 경로
    
    save_path = 'C:\temp\email_body.txt'
    
    
    
    # 이메일 본문을 읽어 들여 저장
    
    status, msg = mail.fetch(msg_id, '(RFC822)')
    
    raw_email = msg[0][1]
    
    email_message = BytesParser().parsebytes(raw_email)
    
    
    
    # 이메일 본문을 10KB씩 나누어 저장
    
    chunk_size = 10 * 1024
    
    with open(save_path, 'wb') as f:
    
        for i in range(0, len(email_message.get_payload(decode=True)), chunk_size):
    
            chunk = email_message.get_payload(decode=True)[i:i + chunk_size]
    
            f.write(chunk)
    
    
    
    print('이메일 본문이 저장되었습니다.')
    
    


    이 예제는 imap_savebody 함수를 사용하여 이메일 본문을 저장하는 방법을 보여줍니다. 이메일 본문을 10KB씩 나누어 저장하고, 에러가 발생하는 경우를 대비하여 처리합니다.

    2025-05-24 21:39

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

검색

게시물 검색