如何在 python 中保存使用 exchangelib 库生成的电子邮件消息项
How to save email messge item generated using exchangelib library in python
我已经使用 exchangelib 库从我的收件箱下载电子邮件。
这些消息最终是 exchangelib.items.Message 的实例。
我想将这整封电子邮件保存为 .msg 文件,以便以后可以将其附加到某些应用程序。
有人可以告诉我如何在 python 中执行此操作吗?
在下面的代码中,我想保存消息列表的每个元素。目前我只处理一封电子邮件。
'''
from exchangelib import Account, Configuration, Credentials, DELEGATE
def connect(server, email, username, password):
"""
Get Exchange account cconnection with server
"""
creds = Credentials(username=username, password=password)
config = Configuration(server=server, credentials=creds)
return Account(primary_smtp_address=email, autodiscover=False, config = config, access_type=DELEGATE)
def get_recent_emails(account, folder_name, count):
"""
Retrieve most emails for a given folder
"""
# Get the folder object
folder = account.inbox / folder_name
# Get emails
return folder.all().order_by('-datetime_received')[:count]
account = connect(server, email, username, password)
emails = get_recent_emails(account, 'BSS_IT', 1)
msgs = []
for msg in emails:
msgs.append(msg)
'''
我不确定 .eml
文件的格式是否有公认的标准,但至少一些电子邮件客户端会转储原始 MIME 内容,这些内容在 exchangelib 中可用 Message.mime_content
。
我已经使用 exchangelib 库从我的收件箱下载电子邮件。 这些消息最终是 exchangelib.items.Message 的实例。 我想将这整封电子邮件保存为 .msg 文件,以便以后可以将其附加到某些应用程序。 有人可以告诉我如何在 python 中执行此操作吗? 在下面的代码中,我想保存消息列表的每个元素。目前我只处理一封电子邮件。
'''
from exchangelib import Account, Configuration, Credentials, DELEGATE
def connect(server, email, username, password):
"""
Get Exchange account cconnection with server
"""
creds = Credentials(username=username, password=password)
config = Configuration(server=server, credentials=creds)
return Account(primary_smtp_address=email, autodiscover=False, config = config, access_type=DELEGATE)
def get_recent_emails(account, folder_name, count):
"""
Retrieve most emails for a given folder
"""
# Get the folder object
folder = account.inbox / folder_name
# Get emails
return folder.all().order_by('-datetime_received')[:count]
account = connect(server, email, username, password)
emails = get_recent_emails(account, 'BSS_IT', 1)
msgs = []
for msg in emails:
msgs.append(msg)
'''
我不确定 .eml
文件的格式是否有公认的标准,但至少一些电子邮件客户端会转储原始 MIME 内容,这些内容在 exchangelib 中可用 Message.mime_content
。