Python

imap 방식으로 메일의 첨부파일 다운 받기

앗사비 2022. 7. 6. 11:34
728x90

그냥 imap 은 불편하기 때문에

imap-tools를 설치해서 이용한다

from imap_tools import MailBox #pip install imap-tools

EMAIL_ADDRESS = "test@gmail.com" # 나의 메일 주소
EMAIL_PASSWORD = "asdfasdf" # 앱 비밀번호 https://support.google.com/mail/answer/185833?hl=ko

mailbox = MailBox("imap.gmail.com", 993)
mailbox.login(EMAIL_ADDRESS, EMAIL_PASSWORD, initial_folder="INBOX")
downloads_path = "./pdf_dn/" #임의의 하위 폴더로 지정

# limit : 최대 개수
# reverse=True : 최근 메일부터 
for msg in mailbox.fetch(limit=2, reverse=True):
    print("="*100)
    print("제목", msg.subject)
    print("발신자", msg.from_)
    # print("수신자", msg.to)
    print("날짜", msg.date)
    # print("본문", msg.text)
    # print("HTML 메시지", msg.html)  
    for att in msg.attachments:
        # print("첨부파일 이름", att.filename)
        # print("타입", att.content_type)
        # print("크기", att.size)
        if att.content_type == "application/pdf":
            with open(downloads_path + att.filename, "wb") as f:
                f.write(att.payload)
                print("첨부 파일 {} 다운로드 완료".format(att.filename))

print("="*100)
mailbox.logout()

 

 

아래 영상에서 참고

https://www.youtube.com/watch?v=exgO1LFl9x8 

 

728x90