[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