본문 바로가기
MS OFFICE 자동화/python+outlook 기초

파이썬+아웃룩으로 파일첨부 단체메일 보내기

by 일코 2022. 12. 17.

MS 오피스를 주로 사용하는 회사들, 혹은 개인 중에는

아웃룩을 사용하시는 분들이 많은 것으로 알고 있습니다.

메일 보내기 뿐만 아니라 캘린더나 투두리스트 등을 연동한 스케줄링, 메모, 작업관리 등

오랜 업데이트를 거듭하며 다듬어져서 

직장인을 위한 일정관리 프로그램들 중에서는

명실공히 최고의 프로그램 중 하나로 굳건히 자리잡고 있다고 생각합니다.

 

 

이번 포스팅에서는 간단한 파이썬 코드로 아웃룩 단체메일을 보내는 파이썬 코드를 공유합니다.

파이썬과 pywin32 패키지, 그리고 아웃룩이 PC에 설치되어 있어야 합니다.

코드가 굉장히 짧으므로.. 코드에 주석을 넣는 것으로 설명을 대체합니다.

<주의사항>
절대 아래 서식으로 실무 메일을 보내지 마세요!
이 포스팅은, 문제를 하나씩 해결해 가는 방식으로 진행하는 연재물 중 일부입니다.

단, 본인에게 테스트 메일을 보내보는 것은 괜찮습니다. 부족한 대로 작동은 하니까요.
# 모듈 임포트
import win32com.client as win32
from datetime import date

# 아웃룩 인스턴스 생성
outlook = win32.gencache.EnsureDispatch('Outlook.Application')

# 새 메일 쓰기창 열기
new_mail = outlook.CreateItem(0)

# 제목
new_mail.Subject = f"{date.today().strftime('%Y년 %m월 %d일자 일일보고서 송부')}"

# 수신자와 참조
to_list = ["partner1@mail.com", "partner2@mail.com", "partner3@mail.com"]
cc_list = ["boss@mail.com", "friend@mail.com", "executive@mail.com"]


new_mail.To = ";".join(to_list)
new_mail.CC = ";".join(to_list)

# 파일첨부
attachment1 = r"C:\Users\smj02\Desktop\빈 문서 1.hwpx"
new_mail.Attachments.Add(Source=attachment1)
new_mail.Body = f"안녕하세요?\n" \
                f"{date.today().strftime('%Y년 %m월 %d일')}자 실적보고서를 송부드리오니\n" \
                f"검토하여 주시기 바랍니다.\n\n" \
                f"감사합니다.\n\n" \
                f"행복한 하루 되세요!!\n" \
                f"일코 배상"

# 메일 송부
new_mail.Send()


# 아웃룩 종료
outlook.Quit()


# 과정 어디서든 작성상태를 눈으로 확인하고 싶다면
# new_mail.Display(True)  # 대신 다시 숨기기는 안 됨

 

위 코드는 실행하는 데 1초 정도 걸립니다.

그리고 아무 메시지도 리턴하지 않는데요.

여러분 메일로 테스트해보시면

몇 초 후 메일이 도착하는 걸 확인하실 수 있습니다.

메일 확인해보셨나요?

제목도 수신자도, 파일첨부도 다 잘 되었는데..

본문이 어째 조금 이상합니다?

읭? 우리가 입력하지 않은 글자들이 중간중간에 섞여 있네요?

영문으로 다시 보내보면 어떨까요?

영문으로만 메일을 작성하니 문제가 사라졌네요?

이게 어찌된 일일까요?

 

그럼 다음 포스팅에서는 폰트태그가 깨지는 문제를 해결하는 방법을 알려드리겠습니다.

댓글