이메일 자동화에서 첨부파일까지 넣기 시작하면, 그다음으로 자주 필요한 기능은 날짜에 맞는 보고서 파일을 자동으로 선택하는 방식입니다. 실무에서는 매일 또는 매주 파일명이 바뀌는 경우가 많기 때문에, 매번 직접 파일을 찾아 첨부하면 시간도 오래 걸리고 다른 날짜 파일을 잘못 보내는 실수도 생깁니다.
이번 글에서는 파이썬으로 날짜별 보고서 파일을 자동으로 찾아 첨부하는 기본 흐름을 이해하기 쉽게 정리했습니다.
날짜별 보고서 파일 자동 첨부가 필요한 이유
이메일에 첨부파일을 자동으로 넣는 단계까지 익혔다면, 실제 업무에서는 곧바로 새로운 문제가 생깁니다. 바로 첨부할 파일명이 매번 달라진다는 점입니다. 예를 들어 일일 보고서는 2026-04-19_일일보고서.xlsx, 주간 보고서는 2026-04-3주차_주간보고.pdf처럼 날짜가 파일명에 포함되는 경우가 많습니다. 이럴 때 코드에 파일명을 고정으로 적어두면 한 번은 편하게 보낼 수 있어도, 다음 날이나 다음 주에는 다시 수정해야 합니다. 결국 자동화의 효율이 떨어지고, 수정 과정에서 날짜를 잘못 입력하거나 이전 파일을 그대로 보내는 문제가 생기기 쉽습니다.
이런 업무는 처음에는 단순해 보여도 반복될수록 피로가 쌓입니다. 보고 메일을 보내는 담당자는 메일 제목도 바꾸고, 본문도 수정하고, 파일 탐색기에서 오늘 날짜가 들어간 문서를 다시 찾아 첨부해야 합니다. 특히 폴더 안에 비슷한 이름의 파일이 여러 개 있을 경우 실수 확률이 높아집니다. 예를 들어 4월 18일 파일을 보내야 하는데 4월 17일 파일을 잘못 첨부하면, 메일은 정상적으로 보내졌더라도 내용은 잘못 전달되는 셈입니다.
파이썬으로 날짜별 보고서 파일을 자동 첨부하면 이런 문제를 많이 줄일 수 있습니다. 핵심은 오늘 날짜 또는 원하는 날짜를 기준으로 파일명을 자동으로 만들고, 그 이름에 맞는 파일을 찾아 메일에 붙이는 것입니다. 이렇게 하면 사람은 발송 자체보다 파일이 올바르게 준비되었는지 확인하는 데 집중할 수 있습니다. 즉, 날짜별 첨부 자동화는 단순한 편의 기능이 아니라 보고 업무의 정확도를 높이는 실무 확장 단계라고 볼 수 있습니다.

오늘 날짜에 맞는 파일을 찾아 자동 첨부하는 기본 코드 구조
날짜별 파일 자동 첨부의 핵심은 크게 두 단계입니다. 첫째, 오늘 날짜를 문자열로 만드는 일입니다. 둘째, 그 날짜를 이용해 파일명을 조합한 뒤 해당 파일을 첨부하는 일입니다. 초보자는 이 구조를 너무 복잡하게 생각할 필요가 없습니다. 결국 “오늘 날짜를 구한다 → 파일명을 만든다 → 그 파일을 첨부한다”라는 흐름만 이해하면 됩니다.
아래 코드는 예를 들어 2026-04-19_일일보고서.xlsx 같은 형식의 파일명을 자동으로 만들고, 그 파일을 이메일에 첨부하는 기본 예시입니다. 주석을 자세히 넣어 초보자가 읽기 쉽게 정리했습니다.
import smtplib
import os
from datetime import datetime
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
# 1. 오늘 날짜를 문자열로 만들기
today = datetime.today().strftime("%Y-%m-%d")
# 2. 파일명 규칙 만들기
# 예: 2026-04-19_일일보고서.xlsx
file_name = f"{today}_일일보고서.xlsx"
# 3. 보고서 파일이 저장된 폴더 경로
folder_path = "reports"
# 4. 전체 파일 경로 만들기
file_path = os.path.join(folder_path, file_name)
# 5. 보내는 사람과 받는 사람 정보
sender_email = "your_email@example.com"
sender_password = "your_password"
receiver_email = "receiver@example.com"
# 6. 메일 제목과 본문
subject = f"[일일보고] {today} 보고서 전달"
body = f"""
안녕하세요.
{today} 기준 일일보고서를 첨부하여 전달드립니다.
파일 확인 후 필요한 사항이 있으면 회신 부탁드립니다.
감사합니다.
"""
# 7. 파일이 실제로 있는지 먼저 확인
if not os.path.exists(file_path):
print(f"파일이 없습니다: {file_path}")
else:
# 8. 메일 전체 틀 만들기
message = MIMEMultipart()
message["Subject"] = subject
message["From"] = sender_email
message["To"] = receiver_email
# 9. 본문 추가
message.attach(MIMEText(body, _charset="utf-8"))
# 10. 첨부파일 추가
with open(file_path, "rb") as file:
part = MIMEBase("application", "octet-stream")
part.set_payload(file.read())
encoders.encode_base64(part)
part.add_header(
"Content-Disposition",
f'attachment; filename="{file_name}"'
)
message.attach(part)
# 11. 메일 서버 연결 후 발송
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login(sender_email, sender_password)
server.sendmail(sender_email, receiver_email, message.as_string())
print("날짜별 보고서 첨부 메일 발송 완료")
server.quit()
이 코드에서 꼭 익혀야 할 부분은 datetime.today().strftime("%Y-%m-%d")입니다. 이 줄이 오늘 날짜를 파일명에 넣기 좋은 형태로 바꿔줍니다. 그리고 file_name = f"{today}_일일보고서.xlsx"처럼 문자열을 조합하면, 날짜가 바뀔 때마다 파일명도 자동으로 바뀝니다. 초보자는 이 흐름만 이해해도 날짜별 자동 첨부의 핵심을 거의 익힌 것입니다.
여기서 특히 중요한 부분은 파일 존재 여부를 확인하는 코드입니다. if not os.path.exists(file_path): 구문은 파일이 없을 때 바로 오류로 끝나지 않고, 어떤 파일이 없는지 먼저 알려줍니다. 실무에서는 보고서가 아직 저장되지 않았거나 파일명이 예상과 다를 수 있기 때문에, 이런 확인 과정이 매우 중요합니다. 자동화는 단순히 빨리 보내는 기술이 아니라, 잘못된 발송을 막는 장치까지 함께 들어가야 실제 업무에서 안전하게 사용할 수 있습니다.
파일명 규칙을 자동화하면 보고 메일의 정확도와 편의성이 함께 올라갑니다
파이썬으로 날짜별 보고서 파일을 자동 첨부하는 방식은 첨부파일 자동화의 가장 실용적인 확장입니다. 파일을 하나 고정해서 보내는 수준을 넘어서, 매일 바뀌는 보고서 문서를 자동으로 선택하게 되면 비로소 반복 업무를 실제로 줄이고 있다는 느낌을 받을 수 있습니다. 특히 일일 보고, 주간 정리, 매출 현황, 출고 자료처럼 날짜가 곧 문서 구분 기준이 되는 업무에서는 효과가 분명합니다.
이번 글에서 다룬 구조는 비교적 단순하지만 실무에서 바로 응용하기 좋습니다. 날짜 형식만 바꾸면 월간 보고서나 주차별 보고서에도 활용할 수 있고, 폴더 경로를 조정하면 특정 부서 자료함이나 공유 폴더 기준으로도 적용할 수 있습니다. 수신자 목록을 엑셀에서 불러오는 방식과 결합하면, 특정 날짜의 보고서를 여러 사람에게 자동으로 보내는 구조까지도 자연스럽게 확장됩니다. 즉, 앞선 글들과 연결했을 때 자동화 흐름이 하나의 실무 체계로 이어집니다.
초보자라면 여기서 욕심을 내기보다 먼저 파일명 규칙을 정확히 맞추는 연습부터 하는 것이 좋습니다. 자동화는 복잡한 기능을 많이 넣는 것보다, 파일이 없을 때는 멈추고, 파일이 있으면 정확하게 첨부하는 구조를 만드는 것이 더 중요합니다. 날짜별 첨부 자동화는 그 원칙을 잘 보여주는 주제입니다. 사람이 매번 파일을 찾는 일을 줄이면서도, 잘못된 첨부를 예방할 수 있기 때문입니다. 이런 작은 자동화가 쌓이면 보고 업무 전체의 품질과 속도가 함께 좋아집니다.
함께 보면 좋을 글
업무 자동화. 파이썬 엑셀 수신자 메일 발송 - 실무
이메일 자동 발송을 어느 정도 익히면 다음으로 필요한 것은 수신자를 코드에 직접 적지 않고 엑셀에서 불러오는 방식입니다. 실무에서는 거래처, 팀원, 부서 담당자처럼 발송 대상이 자주 바뀌
heeday4753.com
'업무 자동화' 카테고리의 다른 글
| 업무 자동화. 파이썬 이메일 첨부파일 자동 넣기 - 실무 (1) | 2026.04.20 |
|---|---|
| 업무 자동화. 파이썬 엑셀 수신자 메일 발송 - 실무 (0) | 2026.04.19 |
| 업무 자동화. 파이썬 이메일 본문 내용 자동화 - 입문 (0) | 2026.04.10 |
| 업무 자동화. 파이썬 이메일 자동 발송 - 입문 (0) | 2026.04.09 |
| 파이썬 엑셀 열이름 통일법 (0) | 2026.04.06 |