我有一段简单的代码,它将查看电子邮件标题,并提取电子邮件标题的日期,起始时间,起始日期和主题。为此,我必须将电子邮件标头放入.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中编写代码。
谢谢。
答案 0 :(得分: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])