파이썬을 이용해서 이메일 본문을 확인하는 방법은 이전에도 정리했었는데(여기에), 여기에 기록하는 이 두번째 방법이 좀 더 괜찮은 것 같다. 이전에 정리했던 "파이썬(python)을 이용해서 이메일(eml) 파일의 보낸 사람, 받는 사람, 제목 확인 - 2"의 연장선상에 있는 방법이다.
이메일의 내용은 본문 하나만 있을 수도 있고 여러 부분으로 분할되어 있을 수도 있는데(multipart), 아래의 예제처럼 텍스트 또는 html일 경우에만 출력하도록 해 주면 되겠다.
import email.parser
import email.policy
# 파일 열기
f = open('my_mail.eml', 'r')
# 파일로부터 메일 데이터 가져오기
mail_data = email.parser.Parser(policy=email.policy.default).parse(f)
# multipart 여부 확인
if mail_data.is_multipart():
print("::MULTIPART::")
# 각 부분을 순차적으로 확인하여 처리
for part in mail_data.walk():
# text/plain 또는 text/html인 경우에 내용을 가져와 출력
if part.get_content_type() in ["text/plain", "text/html"]:
print('-----')
print(part.get_content())
print('-----')
else:
print(mail_data.get_content())
728x90
'파이썬(python)' 카테고리의 다른 글
파이썬 딕셔너리(dict) 원소의 순서 보존 여부 (0) | 2025.04.05 |
---|---|
파이썬 배포판 아나콘다(anaconda)/미니콘다(miniconda) 과거 버전 다운로드하기 (1) | 2025.04.03 |
파이썬(python)을 이용해서 이메일(eml) 파일의 보낸 사람, 받는 사람, 제목 확인 - 2 (0) | 2025.03.06 |
파이썬(python)에서 리스트에 저장된 문자열들을 하나로 합치기 (0) | 2025.02.06 |
파이썬(python)에서 텍스트 파일을 열 때 UnicodeDecodeError 발생 문제 해결 (0) | 2025.01.11 |