View Single Post
Old 06-02-2017, 08:32   #1
psimem
Senior Member
 
L'Avatar di psimem
 
Iscritto dal: Jan 2006
Messaggi: 1525
[Python] Script per estrarre testo da mail

Come da titolo avrei bisogno di una mano per creare uno script in grado di:
1- accedere ad una determinata etichetta in una casella di posta gmail
2- elencarne il contenuto (titoli mail)
3- selezionare solo le mail nuove
4- estrarre una parte di testo dal corpo delle mail nuove
5- salvare tale parte di testo in modo ricorsivo in un file di testo
6- segnare le mail aperte come lette

Premetto che python non lo conosco pero' mi e' stato consigliato come soluzione migliore.
Seguendo alcuni esempi sono riuscito a mettere assieme il seguente codice che soddisfa i punti 1-2-3-6.

Codice:
#!/usr/bin/env python

import datetime
import email
import imaplib
import mailbox

print '----------------------------'
print 'Login...'
mail = imaplib.IMAP4_SSL('imap.gmail.com')
(retcode, capabilities) = mail.login('emailaddress',password')
mail.list()
mail.select('inbox')
print 'Success.'
print '----------------------------'

n=0
(retcode, messages) = mail.search(None, '(UNSEEN)')
if retcode == 'OK':

   for num in messages[0].split() :
      #print 'Processing...'
      n=n+1
      typ, data = mail.fetch(num,'(RFC822)')

      for response_part in data:
         if isinstance(response_part, tuple):
             original = email.message_from_string(response_part[1])
	     print original['From']
             print original['Subject']
             typ, data = mail.store(num,'+FLAGS','\\Seen')
             print '----------------------------'

print "Unread: "
print n
print '----------------------------'
Il prossimo passo sarebbe estrarre anche il corpo della mail e processarlo...
__________________
-)(- debian -)(-
psimem è offline   Rispondi citando il messaggio o parte di esso