如何解决如何使用 Python 在 Outlook 中提取电子邮件正文的一小部分?
我正在尝试从 Outlook 中的标准邮件正文中自动提取信息。 我需要提取以下信息:
- 代码
- 编号 1
- number3
然后转成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] = 'answers@gmail.com'")
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。