[python] zpracování unixovských emailů
David Rohleder
davro na ics.muni.cz
Středa Srpen 3 14:24:34 CEST 2011
On Wed, 03 Aug 2011 12:44:03 +0200 "Ing. Vladislav Ludík"
<vlada na ludik.cz> wrote:
> Zdravím všechny znalce Pythonu a Linuxu !
>
> Při zpracování došlých emailů používám konstrukci:
>
> def zpracovaniMailboxu(inbox):
> 'Zpracuje emaily dosle do inbox'
>
> import email, mailbox
>
> fp = open(inbox, 'rb')
> mbox = mailbox.UnixMailbox(fp, email.message_from_file)
>
> for msg in mbox:
> for part in msg.walk():
> odkoho = msg['from']
> isodatum = msg['date']
> predmet = msg['subject']
> if part.get_content_maintype() == 'multipart':
> continue
> if part.get_content_maintype() == 'text':
> text = part.get_payload(decode=True)
> #zpracuji text)
> fp.close()
>
> Moje otázky:
>
> 1) Jak zajistit, aby se inbox během zpracování neměnil, emaily
> přicházejí asynchonně kdykoli. Neumím použít funkci lock(), unlock().
>
> 2) Jak případně vymazat email po jeho zpracování ve složce inbox
>
Osobně bych to udělal tak, že bych tomu skriptu předřadil procmail a
skript napsal jako filtr. Tím pádem budou maily docházet postupně do
trubky a není nutné se zalamovat s otevíráním souborů a podobnými věcmi.
David
--
David Rohleder <davro na ics.muni.cz>
Další informace o konferenci Python