Re: [python] email headers
Dne 27.7.2011 5:14, "Ing. Vladislav Ludík" napsal(a): > 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'] ? jestli myslíte seznam hlaviček, tak ten lze zjistit msg.keys() > 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'); >>> import datetime >>> d=datetime.strptime('Mon, 25 Jul 2011 12:07:26 +0200', '%a, %d %b %Y >>> %H:%M:%S +0200') >>> d=d.replace(hour=d.hour+2) >>> d.isoformat(' ') '2011-07-25 14:07:26' (ale v zásadě nevidím důvod, proč to nenechat na databázi, ty funkce STR_TO_DATE ap. lze přece volat rovnou při INSERTu) -- Zdraví, Michal Molhanec ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] email headers
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
Re: [python] email headers
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
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
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
[python] email headers
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