[python] email headers

2011-07-26 Tema obsahu Ing. Vladislav Ludík

Zdravím všechny znalé pythonu.

Může mi někdo poradit s dekódováním hlaviček emailů ?

Jde o toto:

Ve složce /var/mail/ na linuxu přicházející emaily potřebuju elegantně 
zdekódovat.

Co se týká vlastních zpráv, nemám problém:

def ebox(inbox):
   'Zpracuje email inbox'
  
   fp = open(inbox, 'rb')

   mbox = mailbox.UnixMailbox(fp, email.message_from_file)

   for msg in mbox:
   for part in msg.walk():
   if part.get_content_maintype() == 'text':
   data = part.get_payload(decode=True)
   # zpracuju data

Problém mám jen s hlavičkama. Když použiju například
headers = Parser().parse(fp)
tak ten ve výsledku dává při více zprávách za sebou vždy první nalezený 
objekt, ale další už ne:


   print 'To: %s' % headers['to']
   print 'From: %s' % headers['from']
   print 'Subject: %s' % headers['subject']

Můj dotaz tedy je: jak skloubit jednoduše obě funkce?
Složitě to umím.

Děkuji za váš čas.

Zdraví V.L.



___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] email headers

2011-07-26 Tema obsahu Michal Molhanec
Dne 26.7.2011 17:40, Ing. Vladislav Ludík napsal(a):
 Zdravím všechny znalé pythonu.
 
 Může mi někdo poradit s dekódováním hlaviček emailů ?
 
 Jde o toto:
 
 Ve složce /var/mail/ na linuxu přicházející emaily potřebuju elegantně 
 zdekódovat.
 Co se týká vlastních zpráv, nemám problém:
 
 def ebox(inbox):
'Zpracuje email inbox'
  fp = open(inbox, 'rb')
mbox = mailbox.UnixMailbox(fp, email.message_from_file)
 
for msg in mbox:
for part in msg.walk():
if part.get_content_maintype() == 'text':
data = part.get_payload(decode=True)
# zpracuju data
 
 Problém mám jen s hlavičkama. Když použiju například
 headers = Parser().parse(fp)
 tak ten ve výsledku dává při více zprávách za sebou vždy první nalezený 
 objekt, ale další už ne:
 
print 'To: %s' % headers['to']
print 'From: %s' % headers['from']
print 'Subject: %s' % headers['subject']
 
 Můj dotaz tedy je: jak skloubit jednoduše obě funkce?
 Složitě to umím.

Něco jako

 def ebox(inbox):
'Zpracuje email inbox'
 fp = open(inbox, 'rb')
mbox = mailbox.UnixMailbox(fp, email.message_from_file)

for msg in mbox:
print 'To: %s' % msg['to']
print 'From: %s' % msg['from']
print 'Subject: %s' % msg['subject']

for part in msg.walk():
if part.get_content_maintype() == 'text':
data = part.get_payload(decode=True)
# zpracuju data

by nefungovalo?
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] email headers

2011-07-26 Tema obsahu Tomas Brabenec

Ahoj,

mrkni na https://github.com/marrow/marrow.mailer
Původní myšlenka toho projektu je trochu někde jinde, ale myslím, že by 
se z toho dalo ledacos využít.


T.


Dne 26.7.2011 17:40, Ing. Vladislav Ludík napsal(a):

Zdravím všechny znalé pythonu.

Může mi někdo poradit s dekódováním hlaviček emailů ?

Jde o toto:

Ve složce /var/mail/ na linuxu přicházející emaily potřebuju elegantně 
zdekódovat.

Co se týká vlastních zpráv, nemám problém:

def ebox(inbox):
   'Zpracuje email inbox'
 fp = open(inbox, 'rb')
   mbox = mailbox.UnixMailbox(fp, email.message_from_file)

   for msg in mbox:
   for part in msg.walk():
   if part.get_content_maintype() == 'text':
   data = part.get_payload(decode=True)
   # zpracuju data

Problém mám jen s hlavičkama. Když použiju například
headers = Parser().parse(fp)
tak ten ve výsledku dává při více zprávách za sebou vždy první 
nalezený objekt, ale další už ne:


   print 'To: %s' % headers['to']
   print 'From: %s' % headers['from']
   print 'Subject: %s' % headers['subject']

Můj dotaz tedy je: jak skloubit jednoduše obě funkce?
Složitě to umím.

Děkuji za váš čas.

Zdraví V.L.



___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] email headers

2011-07-26 Tema obsahu

Michal Molhanec napsal(a):

Dne 26.7.2011 17:40, Ing. Vladislav Ludík napsal(a):
  

Zdravím všechny znalé pythonu.

Může mi někdo poradit s dekódováním hlaviček emailů ?

Jde o toto:

Ve složce /var/mail/ na linuxu přicházející emaily potřebuju elegantně 
zdekódovat.
Co se týká vlastních zpráv, nemám problém:

def ebox(inbox):
   'Zpracuje email inbox'
 fp = open(inbox, 'rb')
   mbox = mailbox.UnixMailbox(fp, email.message_from_file)

   for msg in mbox:
   for part in msg.walk():
   if part.get_content_maintype() == 'text':
   data = part.get_payload(decode=True)
   # zpracuju data

Problém mám jen s hlavičkama. Když použiju například
headers = Parser().parse(fp)
tak ten ve výsledku dává při více zprávách za sebou vždy první nalezený objekt, 
ale další už ne:

   print 'To: %s' % headers['to']
   print 'From: %s' % headers['from']
   print 'Subject: %s' % headers['subject']

Můj dotaz tedy je: jak skloubit jednoduše obě funkce?
Složitě to umím.



Něco jako

 def ebox(inbox):
'Zpracuje email inbox'
 fp = open(inbox, 'rb')
mbox = mailbox.UnixMailbox(fp, email.message_from_file)

for msg in mbox:
print 'To: %s' % msg['to']
print 'From: %s' % msg['from']
print 'Subject: %s' % msg['subject']

for part in msg.walk():
if part.get_content_maintype() == 'text':
data = part.get_payload(decode=True)
# zpracuju data

by nefungovalo?
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

__ Informace od NOD32 6322 (20110725) __

Tato zprava byla proverena antivirovym systemem NOD32.
http://www.nod32.cz



  

Toto funguje skvěle.

Díky V.L.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] email headers

2011-07-26 Tema obsahu

A ještě toto mi nedá spát:


jak zjistit obecně, které parametry se tak dají načíst z výše uvedené 
konstrukce z instance msg['parametr'] ?


a dále:
msg['date'] mi dá například výsledek:  Mon, 25 Jul 2011 12:07:26 +0200

Je v Pythonu funkce na převod do formátu pro zapsání do tabulky mysql, v 
tomto příkladu by to mělo být: 2011-07-25 14:07:26


Zatím to dělám dvěma dotazy sql:

SELECT STR_TO_DATE('Mon, 25 Jul 2011 12:07:26', '%a, %d %b %Y  %T ');
a následně z jeho výsledku:
SELECT CONVERT_TZ('2011-07-25 12:07:26','+00:00','+02:00');

Děkuji za inspiraci

V.L.


Michal Molhanec napsal(a):

Dne 26.7.2011 17:40, Ing. Vladislav Ludík napsal(a):
  

Zdravím všechny znalé pythonu.

Může mi někdo poradit s dekódováním hlaviček emailů ?

Jde o toto:

Ve složce /var/mail/ na linuxu přicházející emaily potřebuju elegantně 
zdekódovat.
Co se týká vlastních zpráv, nemám problém:

def ebox(inbox):
   'Zpracuje email inbox'
 fp = open(inbox, 'rb')
   mbox = mailbox.UnixMailbox(fp, email.message_from_file)

   for msg in mbox:
   for part in msg.walk():
   if part.get_content_maintype() == 'text':
   data = part.get_payload(decode=True)
   # zpracuju data

Problém mám jen s hlavičkama. Když použiju například
headers = Parser().parse(fp)
tak ten ve výsledku dává při více zprávách za sebou vždy první nalezený objekt, 
ale další už ne:

   print 'To: %s' % headers['to']
   print 'From: %s' % headers['from']
   print 'Subject: %s' % headers['subject']

Můj dotaz tedy je: jak skloubit jednoduše obě funkce?
Složitě to umím.



Něco jako

 def ebox(inbox):
'Zpracuje email inbox'
 fp = open(inbox, 'rb')
mbox = mailbox.UnixMailbox(fp, email.message_from_file)

for msg in mbox:
print 'To: %s' % msg['to']
print 'From: %s' % msg['from']
print 'Subject: %s' % msg['subject']

for part in msg.walk():
if part.get_content_maintype() == 'text':
data = part.get_payload(decode=True)
# zpracuju data

by nefungovalo?


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python