Downloading your Google e-mail with POP3

You would like to download your Google (or virtually any other e-mail provider's) e-mail via the POP3 protocol.

Getting ready

To run this recipe, you should have an e-mail account with Google or any other service provider.

How to do it...

Here, we attempt to download the first e-mail message from a user's Google e-mail account. The username is supplied from a command line, but the password is kept secret and not passed from the command line. This is rather entered while the script is running and kept hidden from display.

Listing 5.4 shows how to download our Google e-mail via POP3 as follows:

#!/usr/bin/env python
# Python Network Programming Cookbook -- Chapter - 5
# This program is optimized for Python 2.7.
# It may run on any other version with/without modifications.

import argparse
import getpass
import poplib
GOOGLE_POP3_SERVER = 'pop.googlemail.com'

def download_email(username): 
    mailbox = poplib.POP3_SSL(GOOGLE_POP3_SERVER, '995') 
    mailbox.user(username)
    password = getpass.getpass(prompt="Enter you Google password: ") 
    mailbox.pass_(password) 
    num_messages = len(mailbox.list()[1])
    print "Total emails: %s" %num_messages
    print "Getting last message" 
    for msg in mailbox.retr(num_messages)[1]:
        print msg
    mailbox.quit()

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Email Download Example')
    parser.add_argument('--username', action="store", dest="username", default=getpass.getuser())
    given_args = parser.parse_args() 
    username = given_args.username
    download_email(username)

If you run this script, you will see an output similar to the following one. The message is truncated for the sake of privacy.

$ python 5_4_download_google_email_via_pop3.py --username=<USERNAME>
Enter your Google password: 
Total emails: 333
Getting last message
...[TRUNCATED]

How it works...

This recipe downloads a user's first Google message via POP3. The download_email() method creates a mailbox object with Python, the POP3_SSL() class of poplib. We passed the Google POP3 server and port address to the class constructor. The mailbox object then sets up a user account with the user() method call. The password is collected from the user securely using the getpass module's getpass() method and then passed to the mailbox object. The mailbox's list() method gives us the e-mail messages as a Python list.

This script first displays the number of e-mail messages stored in the mailbox and retrieves the first message with the retr() method call. Finally, it's safe to call the quit() method on the mailbox to clean up the connection.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.225.57.164