반응형
회사 업무를 수행하다보면 종종 통계를 위해 메일 제목 또는 메일 내에 있는 특정 문구가 얼마나 있는지 필요한 경우가 있습니다.
아래 Python 코드로 그러한 어려움을 해결할 수 있습니다.
필요하신 분은 자유롭게 사용하시면 되겠습니다^^
Python 코드
# mail_extractor.py
import re
import os
import extract_msg
# pip install extract-msg
def extract_subjects_from_msg(folder_path):
# 메일에서 제목과 내용 return
# 결과를 저장할 리스트
objects = []
for file_name in os.listdir(folder_path):
tmp = []
if file_name.endswith(".msg"):
file_path = os.path.join(folder_path, file_name)
try:
# .msg 파일 열기
with extract_msg.Message(file_path) as message:
# 메일 제목
subject = message.subject
# 메일 본문
body = message.body
tmp.append(subject)
tmp.append(body)
objects.append(tmp)
except Exception as e:
print(f"Error reading {file_name}: {e}")
return objects
def find_content(pattern, body):
# 일치하는 내용 메일 본문에서 찾기
content = []
# 일치 여부
matches = re.findall(pattern, body)
# 결과 저장
for i, match in enumerate(matches, start=1):
content.append(i)
content.append(match)
return content
if __name__ == '__main__':
# 메일 들이 저장되어 있는 특정 폴더 경로
folder_path = r"C:\Users\<경로>"
# 제목, 내용 추출
results = extract_subjects_from_msg(folder_path)
# 결과 출력
for subject, body in results:
# 제목과 메일 본분만 출력
print(f"Subject: {subject}, Body: {body}")
# 찾을 특정패턴이 있는 경우 (아래 코드 활용)
# 패턴 정의
pattern = r"\[Rule\]\s*\n(.+)"
content = find_content(pattern, body)
print("Subject: {}, Content: {}".format(subject, content))
부족한 부분 또는 개선이 필요한 사항은 댓글 남겨주시기 바라면서
이 글이 도움이 되셨기를 바랍니다.
caul334@gmail.com
내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!
반응형
'IT > Python' 카테고리의 다른 글
[Poetry] 포어트리 설치 및 유용한 기본 명령어 모음 (0) | 2025.01.14 |
---|---|
[파이썬] Python 패키지 설치 시 error: externally-managed-environment 에러 (0) | 2025.01.09 |
[Python] 파이썬으로 Elasticsearch 접속하고 검색하는 방법 (필수 기능) (0) | 2024.12.04 |
[Python] 회사에서 Selenium과 Requests 모듈 사용 시 프록시 적용 방법 (3) | 2024.11.06 |
[Python] Selenium wire 사용 중 Post 요청 해야하는 경우 (0) | 2024.10.11 |