Thanks Bruno Rocha!

Yes, it helps...






On 03/25/2011 06:42 AM, Bruno Rocha wrote:

> may be this can help you
>
> |import email, getpass, imaplib, os
>
>
>
>
> detach_dir = '.' # directory where to save attachments (default: current)
>
>
>
> user = raw_input("Enter your GMail username:")
>
>
>
> pwd = getpass.getpass("Enter your password: ")
>
>
>
>
> # connecting to the gmail imap server
>
>
>
> m = imaplib.IMAP4_SSL("imap.gmail.com <http://imap.gmail.com/>")
>
>
>
> m.login(user,pwd)
>
>
>
> m.select("[Gmail]/All Mail") # here you a can choose a mail box like INBOX 
> instead
>
>
>
> # use m.list() to get all the mailboxes
>
>
>
>
> resp, items = m.search(None, "ALL") # you could filter using the IMAP rules 
> here (check http://www.example-code.com/csharp/imap-search-critera.asp)
>
>
>
> items = items[0].split() # getting the mails id
>
>
>
>
> for emailid in items:
>
>
>
>     resp, data = m.fetch(emailid, "(RFC822)") # fetching the mail, 
> "`(RFC822)`" means "get the whole stuff", but you can ask for headers only, 
> etc
>
>
>
>     email_body = data[0][1] # getting the mail content
>
>
>
>     mail = email.message_from_string(email_body) # parsing the mail content 
> to get a mail object
>
>
>
>
>     #Check if any attachments at all
>
>
>
>     if mail.get_content_maintype() != 'multipart':
>
>
>
>         continue
>
>
>
>
>     print "["+mail["From"]+"] :" + mail["Subject"]
>
>
>
>
>     # we use walk to create a generator so we can iterate on the parts and 
> forget about the recursive headach
>
>
>
>     for part in mail.walk():
>
>
>
>         # multipart are just containers, so we skip them
>
>
>
>         if part.get_content_maintype() == 'multipart':
>
>
>
>             continue
>
>
>
>
>         # is this part an attachment ?
>
>
>
>         if part.get('Content-Disposition') is None:
>
>
>
>             continue
>
>
>
>
>         filename = part.get_filename()
>
>
>
>         counter = 1
>
>
>
>
>         # if there is no filename, we create one with a counter to avoid 
> duplicates
>
>
>
>         if not filename:
>
>
>
>             filename = 'part-%03d%s' % (counter, 'bin')
>
>
>
>             counter += 1
>
>
>
>
>         att_path = os.path.join(detach_dir, filename)
>
>
>
>
>         #Check if its already there
>
>
>
>         if not os.path.isfile(att_path) :
>
>
>
>             # finally write the stuff
>
>
>
>             fp = open(att_path, 'wb')
>
>
>
>             fp.write(part.get_payload(decode=True))
>
>
>
>             fp.close()|
>
> --
> Bruno Rocha
> [ About me: http://zerp.ly/rochacbruno ]
>
>
>
> On Fri, Mar 25, 2011 at 12:24 AM, Ahmed Bani <[email protected]
> <mailto:[email protected]>> wrote:
>
>
>     Hello everyone,
>
>     I have found enough resources on how to send messages from my
>     web2py application.
>
>     Now, I need some information that could help me to  successfully
>     unpack a MIME message and parse the results from Gmail.com.
>
>     Any ideas or suggestion are welcome.
>
>     Thanks,
>     Bani
>
>
>
>
>
>
>
>
>
>
>
>

-- 
Best regards,
Bani

Reply via email to