0

我有一段简单的代码,它将查看电子邮件标题并提取电子邮件标题的日期、发件人、收件人和主题。为此,我必须将电子邮件标题放入 .txt 文档中,以便代码读取标题。

from email.parser import BytesHeaderParser
from glob import glob
import csv

fields = ['Date', 'From', 'To', 'Subject']

out = csv.writer(open('output.csv', 'w'))
out.writerow(["File name"]+fields)

parser = BytesHeaderParser()

for name in glob('*.msg'):
with open(name, 'rb') as fd:
msg = parser.parse(fd)
out.writerow([name]+[msg[f] for f in fields])

我希望能够大量执行此操作,因此在处理来自同一“网络钓鱼活动”的大量电子邮件时,我可以将所有 .msg 放入一个文件夹并运行脚本以提取我需要的数据。

这是否也可能愿意在powershell中做代码。

谢谢。

4

1 回答 1

0

我强烈建议使用 Python 内置的 mime 解析器之一来处理电子邮件。这是一种相对复杂的格式,像上面那样做一些幼稚的事情往往会给你带来错误的结果。例如,标题行可以跨越多行,您只需在代码中获取其中的一些。

这应该是一件简单的事情:

from email.parser import HeaderParser
from glob import glob
import csv

fields = ['Date', 'From', 'To', 'Subject']

out = csv.writer(open('output.csv', 'w'))
out.writerow(["File name"]+fields)

parser = HeaderParser()

for name in glob('*.msg'):
  with open(name) as fd:
    msg = parser.parse(fd)
  out.writerow([name]+[msg[f] for f in fields])
于 2018-12-02T20:29:48.227 回答