正在尝试在 excel 中导出电子邮件 body
Trying to export email body in excel
我有一个电子邮件列表,我想导出主题和 body 信息以对其执行其他操作。我已经能够提取主题,但是 body 仍然是空的。
我想查看 body 并了解如何将其输入到 excel 文件中。
import win32com.client
outlook =
win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6).Folders.Item("Mystatsonline")
messages = inbox.Items
message = messages.GetFirst()
while message:
print(message.Subject)
print(message.Body)
message = messages.GetNext()
您的代码看起来不错,因此您必须安装某种防病毒软件来阻止对电子邮件正文的访问。您可能必须先禁用电子邮件模块或整个防病毒软件(但风险自负!),否则将数据迁移到没有防病毒软件的离线或虚拟机。
要获取 Excel 格式的主题和主体列表,请使用 list of tuples
并使用 csv
模块将其写入 csv 文件:
import win32com.client
import csv
msglst = [('Subject', 'Body')] # initialize the list and set the headers
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6).Folders.Item("Mystatsonline")
messages = inbox.Items
message = messages.GetFirst()
while message:
msglst.append((message.Subject, message.Body)) # append each subject/body pair to the list
message = messages.GetNext()
with open('messages_list.csv','w', newline='', encoding='utf-8') as f:
wrt = csv.writer(f, dialect='excel')
wrt.writerows(msglst) # write each subject/body pair as a new line of the csv file
我有一个电子邮件列表,我想导出主题和 body 信息以对其执行其他操作。我已经能够提取主题,但是 body 仍然是空的。
我想查看 body 并了解如何将其输入到 excel 文件中。
import win32com.client
outlook =
win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6).Folders.Item("Mystatsonline")
messages = inbox.Items
message = messages.GetFirst()
while message:
print(message.Subject)
print(message.Body)
message = messages.GetNext()
您的代码看起来不错,因此您必须安装某种防病毒软件来阻止对电子邮件正文的访问。您可能必须先禁用电子邮件模块或整个防病毒软件(但风险自负!),否则将数据迁移到没有防病毒软件的离线或虚拟机。
要获取 Excel 格式的主题和主体列表,请使用 list of tuples
并使用 csv
模块将其写入 csv 文件:
import win32com.client
import csv
msglst = [('Subject', 'Body')] # initialize the list and set the headers
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6).Folders.Item("Mystatsonline")
messages = inbox.Items
message = messages.GetFirst()
while message:
msglst.append((message.Subject, message.Body)) # append each subject/body pair to the list
message = messages.GetNext()
with open('messages_list.csv','w', newline='', encoding='utf-8') as f:
wrt = csv.writer(f, dialect='excel')
wrt.writerows(msglst) # write each subject/body pair as a new line of the csv file