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.
Благодарю.
1 ответ
Я настоятельно рекомендую использовать один из парсеров MIME, встроенный в Python, для обработки электронной почты. Это относительно сложный формат, и выполнение наивных действий, подобных тем, что вы делаете выше, может привести к ошибкам. Например, строки заголовка могут занимать несколько строк, и вы просто получите некоторые из них с помощью своего кода.
это должно быть простым делом:
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])