尝试在Excel中导出电子邮件正文

时间:2019-06-04 14:22:11

标签: python win32com

我有一个电子邮件列表,我想导出主题和身体信息以对其执行其他操作。我已经能够提取主题,但是身体仍然是空的。

我想看一下身体,了解如何将其输入到excel文件中。

if( !is_object( $this->request ) ) {
        $this->request = new StdClass;
    }
    if(!property_exists($this->request, 'method')) {
        $this->request->method = new StdClass;
    }
    // How is this request being made? POST, DELETE, GET, PUT?
    $this->request->method = $this->_detect_method();

1 个答案:

答案 0 :(得分:0)

您的代码看起来不错,因此您必须具有某种防病毒软件,才能阻止对电子邮件正文的访问。您可能必须先禁用电子邮件模块或整个防病毒功能(但后果自负!),否则,将数据迁移到没有防病毒功能的脱机或虚拟机中。

要获取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