imaplib 모듈을 사용하여 Python 3.x에서 이메일을 받는 방법
Python 3.x에서 imaplib 모듈을 사용하여 이메일을 받는 방법
소개:
현대 사회에서 이메일은 사람들의 일과 생활에 필수적인 부분이 되었습니다. 개발자로서 우리는 때때로 수신 이메일을 수신하고 처리하기 위한 프로그램을 작성해야 합니다. Python은 이 기능을 구현하기 위한 풍부한 라이브러리를 제공하며, 그중 imaplib 모듈은 매우 유용한 도구입니다. 이 기사에서는 Python 3.x에서 imaplib 모듈을 사용하여 이메일을 받는 방법을 소개합니다.
1단계: imaplib 모듈 설치
시작하기 전에 imaplib 모듈이 Python 환경에 설치되어 있는지 확인하세요. 설치되어 있지 않은 경우 다음 명령을 실행하여 설치할 수 있습니다.
pip install imaplib
2단계: 필요한 라이브러리 가져오기
프로그램을 작성하기 전에 먼저 imaplib 모듈과 기타 관련 라이브러리를 가져와야 합니다.
import imaplib import email from email.header import decode_header
3단계: 메일 서버에 연결
메일을 받으려면 메일 서버에 연결해야 합니다. 암호화된 IMAP 연결은 imaplib 모듈의 IMAP4_SSL 기능을 사용하여 설정할 수 있습니다.
# 设置IMAP服务器地址和端口 imap_server = "imap.example.com" imap_port = 993 # 建立与IMAP服务器的连接 imap_connection = imaplib.IMAP4_SSL(imap_server, imap_port)
4단계: 메일함에 로그인
IMAP 서버에 성공적으로 연결한 후 메일함에 로그인해야 합니다. 이를 달성하려면 IMAP 객체의 login() 메소드를 사용하십시오.
# 输入邮箱账户和密码 email_address = "your_email@example.com" password = "your_password" # 登录到邮箱 try: imap_connection.login(email_address, password) except Exception as e: print("登录失败:", str(e)) exit(1) # 退出程序
5단계: 처리할 이메일 주소 선택
로그인에 성공한 후 이메일을 받을 이메일 주소를 선택해야 합니다. IMAP 개체의 select() 메서드를 사용하여 메일함을 선택할 수 있습니다.
# 选择收件箱 mailbox = "INBOX" try: imap_connection.select(mailbox) except Exception as e: print("选择邮箱失败:", str(e)) exit(1) # 退出程序
6단계: 메일 검색
편지함이 선택되면 search() 메소드를 사용하여 메일을 검색할 수 있습니다. 검색 기준을 지정하여 필요한 이메일을 필터링할 수 있습니다.
# 搜索条件 search_criteria = 'ALL' # 搜索邮件 try: status, message_ids = imap_connection.search(None, search_criteria) except Exception as e: print("搜索邮件失败:", str(e)) exit(1) # 退出程序 # 将邮件ID列表拆分为单独的邮件ID message_id_list = message_ids[0].split()
7단계: 이메일 및 프로세스 순환
이메일을 검색한 후 이메일을 순환하고 각 이메일을 처리할 수 있습니다.
# 遍历邮件ID列表并处理每封邮件 for message_id in message_id_list: try: status, message_data = imap_connection.fetch(message_id, "(RFC822)") except Exception as e: print("获取邮件失败:", str(e)) continue # 邮件内容 raw_email = message_data[0][1] email_message = email.message_from_bytes(raw_email) # 解析邮件头部 subject = decode_header(email_message["Subject"])[0][0] sender = decode_header(email_message["From"])[0][0] recipient = decode_header(email_message["To"])[0][0] # 打印邮件信息 print("邮件主题:", subject) print("发件人:", sender) print("收件人:", recipient) # 如果邮件有附件 if email_message.get_content_maintype() == "multipart": for part in email_message.walk(): content_type = part.get_content_type() if "application" in content_type: save_attachment(part)
8단계: 첨부 파일 저장(선택 사항)
이메일에 첨부 파일이 있는 경우 다음 코드를 사용하여 첨부 파일을 저장할 수 있습니다.
def save_attachment(part): filename = part.get_filename() if filename: with open(filename, "wb") as f: f.write(part.get_payload(decode=True)) print("保存附件:", filename)
9단계: IMAP 서버 연결 끊기
메일 처리가 끝나면 IMAP 서버 연결을 끊어야 합니다.
# 关闭与IMAP服务器的连接 try: imap_connection.logout() except Exception as e: print("退出登录失败:", str(e)) exit(1) # 退出程序
요약:
이 글에서는 Python 3.x에서 imaplib 모듈을 사용하여 이메일을 받는 방법을 소개합니다. IMAP 서버에 연결하고, 사서함에 로그인하고, 사서함을 선택하고, 메일을 검색하고, 메일을 탐색하고, 메일을 처리하여 작업을 완료합니다. imaplib 모듈은 이메일 수신에 대한 다양한 요구 사항을 충족하는 풍부한 기능과 방법을 제공합니다. 이 지식을 익히면 강력하고 효율적인 메일 처리 프로그램을 작성할 수 있습니다.
위 내용은 imaplib 모듈을 사용하여 Python 3.x에서 이메일을 받는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows 11 제어판에 Outlook 메일 아이콘이 없나요? 이러한 예상치 못한 상황은 통신 요구를 위해 OutlookMail을 사용하는 일부 개인들 사이에 혼란과 우려를 불러일으켰습니다. 내 Outlook 이메일이 제어판에 표시되지 않는 이유는 무엇입니까? 제어판에 Outlook 메일 아이콘이 없는 데에는 여러 가지 이유가 있을 수 있습니다. Outlook이 올바르게 설치되지 않았습니다. Microsoft Store에서 Office 응용 프로그램을 설치해도 메일 애플릿이 제어판에 추가되지 않습니다. 제어판에 mlcfg32.cpl 파일 위치가 없습니다. 레지스트리의 mlcfg32.cpl 파일 경로가 올바르지 않습니다. 현재 운영 체제가 이 애플리케이션을 실행하도록 구성되어 있지 않습니다.

PHP는 이메일을 비동기식으로 보냅니다. 이메일이 전송될 때까지 오래 기다리지 마세요. 소개: 웹 개발에서 이메일 보내기는 일반적인 기능 중 하나입니다. 하지만 이메일을 보내려면 서버와의 통신이 필요하기 때문에 사용자가 이메일이 전송될 때까지 오랜 시간을 기다려야 하는 경우가 많습니다. 이 문제를 해결하기 위해 PHP를 사용하여 이메일을 비동기적으로 보내 사용자 경험을 최적화할 수 있습니다. 이 기사에서는 특정 코드 예제를 통해 비동기적으로 이메일을 보내고 오랜 대기 시간을 피하기 위해 PHP를 구현하는 방법을 소개합니다. 1. 비동기식 이메일 전송 이해

Word를 사용하여 편지 병합 문서를 인쇄할 때 빈 페이지가 나타나는 경우 이 문서가 도움이 될 것입니다. 메일 병합은 개인화된 문서를 쉽게 작성하여 여러 수신자에게 보낼 수 있는 편리한 기능입니다. Microsoft Word에서 메일 병합 기능은 사용자가 각 수신자에 대해 동일한 콘텐츠를 수동으로 복사하는 데 소요되는 시간을 절약해 주기 때문에 높은 평가를 받고 있습니다. 편지 병합 문서를 인쇄하려면 우편물 탭으로 이동하세요. 그러나 일부 Word 사용자는 메일 병합 문서를 인쇄하려고 할 때 프린터에서 빈 페이지가 인쇄되거나 전혀 인쇄되지 않는다고 보고했습니다. 이는 잘못된 형식이나 프린터 설정 때문일 수 있습니다. 문서 및 프린터 설정을 확인하고 인쇄하기 전에 문서를 미리 확인하여 내용이 올바른지 확인하세요. 만약에

PHP 이메일 추적 기능: 이메일에 대한 사용자 행동 및 피드백 이해 현대 사회에서 이메일은 사람들의 일상 생활과 업무에서 없어서는 안될 부분이 되었습니다. 기업의 경우 이메일 전송은 고객과 소통하고 제품이나 서비스를 홍보하는 중요한 방법 중 하나입니다. 그러나 이메일이 전송된 후 이메일이 수신되었는지, 읽었는지 또는 사용자가 이메일 내용에 어떻게 반응했는지 어떻게 알 수 있습니까? 이때 이메일 추적 기능이 특히 중요해집니다. 이메일 추적 기능은 이메일에 대한 사용자 행동과 피드백을 이해하는 데 도움이 될 수 있습니다.

실시간 음성 메일 전사란 무엇입니까? 실시간 음성 메일 전사는 iOS 16에 도입된 혁신적인 기능으로, iPhone 사용자는 음성 메일을 남기는 동안 음성 메일의 실시간 전사를 볼 수 있습니다. 이 기능은 고급 음성 인식 기술을 활용하여 음성 단어를 텍스트로 변환하므로, 전체 내용을 듣지 않고도 최신 뉴스를 확인할 수 있는 편리하고 접근 가능한 방법을 제공합니다. 실시간 음성 메일 전사 사용의 이점 실시간 음성 메일 전사는 iPhone 사용자에게 다음과 같은 여러 가지 이점을 제공합니다. 생산성 향상: 실시간 음성 메일 전사는 전체 음성 메일을 들을 필요가 없도록 하여 사용자의 시간과 노력을 절약합니다. 이를 통해 사용자는 음성 메일의 내용을 빠르게 검색하고 응답의 우선 순위를 지정할 수 있습니다. 청각 장애가 있는 사용자를 위한 접근성

win10 메일함은 win10과 함께 제공되는 시스템에 존재합니다. 기본 설정으로 인해 사용자에게 많은 문제가 발생할 수 있습니다. 예를 들어, 이 계정을 사용할 때 이 문제를 해결하는 방법은 무엇입니까? 아래를 살펴보겠습니다. Win10 메일이 이 계정에 액세스할 수 없는 경우 수행할 작업: 1. "Win+I"를 눌러 "Windows 설정"을 엽니다. 2. "개인 정보"를 클릭합니다. 3. 왼쪽 작업 표시줄에서 "이메일"을 찾습니다. 4. 그림의 옵션을 켭니다.

Java14에서 유형 패턴 일치를 위해 PatternMatching을 사용하는 방법 소개: Java14에는 컴파일 시 유형 패턴 일치에 사용할 수 있는 강력한 도구인 PatternMatching이라는 새로운 기능이 도입되었습니다. 이 기사에서는 Java14에서 유형 패턴 일치를 위해 PatternMatching을 사용하는 방법을 소개하고 코드 예제를 제공합니다. PatternMatchingPattern의 개념 이해

Python2.x에서 write() 함수를 사용하여 파일에 내용을 쓰는 방법 Python2.x에서는 write() 함수를 사용하여 파일에 내용을 쓸 수 있습니다. write() 함수는 파일 객체의 메서드 중 하나이며 문자열이나 이진 데이터를 파일에 쓰는 데 사용할 수 있습니다. 이 기사에서는 write() 함수를 사용하는 방법과 몇 가지 일반적인 사용 사례를 자세히 설명합니다. 파일 열기 write() 함수를 사용하여 파일에 쓰기 전에
