gpt4 book ai didi

python - Exchangelib Python 将电子邮件提取为 HTML,但我想要纯文本

转载 作者:行者123 更新时间:2023-12-01 14:45:34 26 4
gpt4 key购买 nike

我不熟悉使用 Python 接收电子邮件,除了使用 ArcGIS 的东西。但是,我被分配了一项任务,即持续查看电子邮件地址,以查找具有特定主题的传入电子邮件,并从该电子邮件中提取一些内容。我想我可以很容易地做到这一点。但是,我正在使用 Exchangelib for Python,当我提取电子邮件并生成文本时,我会得到一大堆 HTML 代码。它在我从 Python 提取的所有电子邮件中。有没有办法使用 BeautifulSoup 之类的东西来做到这一点?如果是怎么办?

from exchangelib import DELEGATE, Account, Credentials
from bs4 import BeautifulSoup

credentials = Credentials(
username='user.name@company.com', #Microsoft Office 365 requires you to use user.name@domain for username
password='MyS3cretP@$$w0rd' #Others requires DOMAIN\User.Name
)
account = Account(
primary_smtp_address='primary.email@company.com',
credentials=credentials,
autodiscover=True,
access_type=DELEGATE
)

# Print first <number selected> inbox messages in reverse order
for item in account.inbox.all().order_by('-datetime_received')[:1]:
print(item.subject, item.body)

我还附上了两张图片。一个是电子邮件的样子,另一个是 python 吐出来的。

同样,我想学习的是让 python 输出的内容成为纯文本。

更新:这只是一封测试电子邮件,用于向您展示使用 Exchangelib 生成的所有 HTML。最终,电子邮件将看起来像这样

Outage Request Number:  1-001111
Outage Request Status: Completed
Status Updated By: Plant
Requested Equipment: Hose
Planned Start: Outage: 01/01/2000 01:00
Planned End: Outage: 01/01/2000 02:00
Actual Start: 01/01/2000 01:00
Actual Completion: 01/01/2000 02:00
Duration: Exactly 1.00 Hour(s)
Continuous
Outage Request Priority: Forced
Request Updated: 01/01/2000 00:01

Python Output

最佳答案

exchangelib 在某些 Exchange 服务器版本上支持 text_body。这是服务器尝试清理 HTML 并呈现电子邮件消息的文本版本。您可能会发现它很有用。

如果没有,作者只是向您发送了一封 HTML 电子邮件,您必须处理它并提取您需要的信息。 BeautifulSoup 非常适合。只需解析消息体并开始提取:

item = my_account.inbox.get(subject='My special email')
soup = BeautifulSoup(item.body)
soup.find_all('p')

关于python - Exchangelib Python 将电子邮件提取为 HTML,但我想要纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46736229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com