正在尝试在 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