Python电子邮件头ex

2024-10-03 09:09:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的代码,它将查看电子邮件头并拉出电子邮件头的日期、开始时间、结束时间和主题。要做到这一点,我必须把电子邮件标题到一个.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中编写代码。你知道吗

谢谢。你知道吗


Tags: csv代码namefromimportparser标题fields
1条回答
网友
1楼 · 发布于 2024-10-03 09:09:23

我强烈建议使用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])

相关问题 更多 >