Python电子邮件标头提取器

时间:2018-12-02 20:01:00

标签: python powershell email-spam phishing mass-emails

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

谢谢。

1 个答案:

答案 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])