회사에서 파이썬으로 메일 업무를 자동화하고 싶은데 MFA 2차 인증이나 OTP 때문에 자동화를 못하신다구요?
그렇다면 이 글이 도움 될 수 있습니다.
해결 방법
해결 방법은 Python을 통해 메일 모듈(smtplib)을 활용하는게 아니라 win32com 모듈을 활용하면 됩니다
win32com 모듈은 Windows에 있는 애플리케이션을 조작할 수 있는 기능이 있어서 이 모듈을 통해 Outlook 앱을 직접 조작할 수 있습니다.
1. win32 모듈 설치
pip 명령어를 통해 win32 모듈을 설치합니다.
# ---------- 1. 필수 모듈 설치 ---------- #
pip install pywin32
2. Outlook 앱 연결 테스트 코드
[★중요★]
전제조건 : 반.드.시. 코드 편집기 프로그램과 Outlook, 이렇게 2개 프로그램은 모두 관리자 권한으로 실행해야 합니다!
저의 경우는 코드 편집기로 Visual Studio Code를 사용하였습니다.
# ---------- 2. Outlook 연결 테스트 ---------- #
import win32com.client
try:
outlook = win32com.client.Dispatch('outlook.application')
print("Outlook 연결 성공")
except Exception as e:
print("Outlook 연결 실패:", e)
Outlook과 Visual Studio Code를 모두 관리자 권한으로 실행 후 연결 테스트 코드를 실행하보면 정상적으로 연결 됩니다.
참고로 Outlook은 구버전 신버전 모두 테스트 해봤는데 두 버전 모두 정상적으로 연결 되었습니다.
3. 메일 발송 테스트
"Outlook 연결 성공" 메시지를 확인했다면 이제는 아래 코드를 통해 메일 발송을 테스트 해봐야 합니다.
아래 코드에서 수신자 메일 주소를 넣어 테스트 합니다.
# ---------- 3. Outlook 간단한 메시지 전송 테스트 ---------- #
import win32com.client as win32
# Outlook 앱 실행 연결
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0) # 0: MailItem
# 메일 작성
mail.To = '<수신자 메일 주소>'
mail.Subject = 'Python을 통해 Outlook 앱으로 보낸 메일'
mail.Body = '이 메일은 Python 코드가 로컬 Outlook 앱을 제어해 전송한 것입니다.'
# 첨부파일 추가 (선택)
# mail.Attachments.Add('C:\\path\\to\\file.txt')
# 메일 발송
mail.Send()
print("메일 발송 완료")
이 글이 도움이 되셨기를 바랍니다.
내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!
caul334@gmail.com
'IT > Python' 카테고리의 다른 글
[파이썬] Python 어플리케이션 레벨 격리 환경 만드는 방법 (0) | 2025.01.15 |
---|---|
[Poetry] 포어트리 설치 및 유용한 기본 명령어 모음 (0) | 2025.01.14 |
[파이썬] Python 패키지 설치 시 error: externally-managed-environment 에러 (0) | 2025.01.09 |
[Python] 파이썬으로 특정 폴더 내 다수의 메일 내용 가져오기 (0) | 2024.12.30 |
[Python] 파이썬으로 Elasticsearch 접속하고 검색하는 방법 (필수 기능) (0) | 2024.12.04 |