작성
·
657
0
문제는 아래에서 IF문 첫번째 조건인 SenderEmailAddress에서 발생합니다.
이상한 건... 기존에 잘 실행이 되다가 며칠 뒤에 해보니 에러가 난다는 점입니다.ㅠㅠ
혹시나 해서 아나콘다, 파이썬 삭제/설치 반복했지만 안 되네요ㅠ
"에러구문"
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\OutlookProject\main.py", line 32, in <module>
if ((ms.SenderEmailAddress == "crm@ecredible.co.kr" and
File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\win32com\client\dynamic.py", line 639, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.SenderEmailAddress
""
import pandas as pd
import win32com.client as cli # outlook API
from tabulate import tabulate
from datetime import datetime, time
tabulate.WIDE_CHARS_MODE = False
outlook = cli.Dispatch("Outlook.Application").GetNamespace("MAPI") # 아웃룩
inbox = outlook.GetDefaultFolder(6) # 받은편지함
msg = inbox.Items # 메세지 정보
msg_counter = msg.count # 전체 메세지 수
ms_counter = 0 # 검색된 메세지 수
print("전체 메세지 수 : " + str(msg_counter))
now = datetime.today().strftime("%Y-%m-%d %H:%M:%S")
fromdate = input("From (ex 2023-01-01 00:00:00) :")
todate = input("To (ex 2023-01-01 00:00:00) :")
# 협력사 DB 불러오기
supplierdf = pd.read_csv("SupplierDB.csv", encoding="cp949")
# print(supplierdf)
# 협력사 DB와 본문 매칭된 협력사 리스트 생성
findList = list()
findList_Rate_before = list()
findList_Rate_after = list()
ms = 0
for ms in msg:
if ((ms.SenderEmailAddress == "crm@ecredible.co.kr" and
str(ms.ReceivedTime) >= fromdate and
str(ms.ReceivedTime) <= todate)
):
# 특정 메일주소, 기간만!
ms_counter = ms_counter + 1
print("받은시간 : " + str(ms.ReceivedTime))
print("보낸사람 : " + str(ms.SenderName))
print("내용 : " + str(ms.Body))
print("\n ================================================ \n")
print("검색된 메세지 수 : " + str(ms_counter))
답변 1
0
ms.Class == 43 and ms.SenderEmailType == 'EX' and ms.Sender.GetExchangeUser() != None
위 조건일 때,
ms.Sender.GetExchangeUser().PrimarySmtpAddress == "crm@ecredible.co.kr"
이고,
ms.Class == 43 and ms.SenderEmailType == 'EX' and ms.Sender.GetExchangeUser() != None
위 조건이 아닐 때,
ms.SenderEmailAddress == "crm@ecredible.co.kr"
인 것으로 수정해서 해보세요.