Разобрать журнал почты в PythonPython

Программы на Python
Anonymous
Разобрать журнал почты в Python

Сообщение Anonymous »

Я немного застрял в своей задаче. У меня есть журнал почты типа:

Код: Выделить всё

Oct  3 15:30:18 mail1 postfix/lmtp[5369]: DB10242054: to=, orig_to=, relay=ip[ip]:port, delay=1.4, delays=0.04/0/0.01/1.4, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[iP]:port): 250 2.0.0 Ok: queued as 4580B4208C)
Oct  3 15:30:18 mail1 postfix/smtp[5175]: 4580B4208C: to=, relay=XXXXX[IP]:port, delay=0.52, delays=0.02/0.01/0.27/0.22, dsn=2.0.0, status=sent (250 2.0.0 OK 1412343018 rr9si6866736lbb - gsmtp)
Oct  3 15:33:57 mail1 amavis[5542]: (05542-09) Passed CLEAN {RelayedInbound}, [ip]:port [ip]  -> , Message-ID: , mail_id: XXXXX, Hits: -1.899, size: 6483, queued_as: 806A24207B, 1483 ms
Oct  3 15:33:57 mail1 postfix/lmtp[6694]: F1FDD41F9D: to=, orig_to=, relay=ip[ip]:port, delay=1.7, delays=0.18/0/0.01/1.5, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 806A24207B)
Мне нужно распечатать:

Код: Выделить всё

message from:
message to:
sent at:
status:
Одна «транзакция» в журнале почты имеет уникальный идентификатор, но этот идентификатор может появляться в разных местах файла.
Моя идея:
  • сначала выполните поиск по одному адресу электронной почты в файле;
  • "сохраните" все совпавшие строки в новом списке (чтобы тогда я смогу перебирать меньший список);
Я понятия не имею, как мне дальше анализировать.
Мой код теперь выглядит:

Код: Выделить всё

lines = []
queue_id = []
f_h = open('/path_to_/maillog', 'r')

def Find_Email(pattern,text):
email = re.search(pattern, text)
if email:
lines.append(text)
q_id = re.search('[A-F0-9]{10}', text)
print text,
if q_id:
queue_id.append(q_id.group())

for line in f_h:
Find_Email(r'recipient@gmil.com',line)
Я не прошу кода, но не могли бы вы поделиться некоторыми идеями, если у вас есть такой опыт?


Подробнее здесь: https://stackoverflow.com/questions/262 ... -in-python

Вернуться в «Python»