내 전망에서 표준 메일 본문에서 정보 추출을 자동화하려고합니다. 다음 정보를 추출해야합니다.
그런 다음 Excel 파일로 전송하십시오.
그러나 지금은 메일 본문에서이 정보에 액세스하는 방법을 알고 싶습니다.
다음은 표준 메일의 예입니다.
Subject: Test1
Hi,
You got a new answer from user Alex.
Code: alex123fj
Number1: 0611111111
Number2: 1020
Number3: 3032
이것은 내 코드입니다 (1 일 이내에받은 메일에만 액세스 할 수 있도록 메일을 필터링했습니다).
import win32com.client
from datetime import datetime, timedelta
outlook = win32com.client.Dispatch('outlook.application')
mapi = outlook.GetNamespace("MAPI")
inbox = mapi.GetDefaultFolder(6)
messages = inbox.Items
received_dt = datetime.now() - timedelta(days=1)
received_dt = received_dt.strftime('%m/%d/%Y %H:%M %p')
messages = messages.Restrict("[ReceivedTime] >= '" + received_dt + "'")
messages = messages.Restrict("[SenderEmailAddress] = '[email protected]'")
messages = messages.Restrict("[Subject] = 'Test1'")
message = messages.GetLast()
body_content = message.body
정규식 예제 사용
https://regex101.com/r/b2t5iw/1
선택한 이메일이 포함 된 코드 예제
import re
import win32com.client
def get_body(Item):
try:
print(Item.Subject)
body = Item.body
matches = re.finditer(r"Code:\s(.*)$", body, re.MULTILINE)
for match in matches:
print("Code: ", match.group(1))
except Exception as e:
print(e)
if __name__ == '__main__':
Outlook = win32com.client.Dispatch("Outlook.Application")
Items = Outlook.ActiveExplorer().Selection
Item = Items(1)
get_body(Item)
인쇄해야
Code: alex123fj
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다