module grabber.mailboximap

Inheritance diagram of pymmails.grabber.mailboximap

Short summary

module pymmails.grabber.mailboximap

Defines a mailbox using IMAP

source on GitHub

Classes

class

truncated documentation

MailBoxImap

Defines a mail box with :epkg:`IMAP` interface.

Methods

method

truncated documentation

__init__

enumerate_mails_in_folder

Enumerates all mails in folder folder.

enumerate_search_person

Enumerates all mails in folder folder from a user or sent to a user.

enumerate_search_subject

Enumerates all mails in folder folder with a subject verifying a regular expression.

folders

Returns the list of folder of the mail box.

login

login

logout

logout

Documentation

Defines a mailbox using IMAP

source on GitHub

class pymmails.grabber.mailboximap.MailBoxImap(user, pwd, server, ssl=False, fLOG=<function noLOG>)

Bases: object

Defines a mail box with :epkg:`IMAP` interface.

Fetch mails from a gmail account

user = "address no domain"
pwd = "password"
server = "imap.gmail.com"

box = MailBoxImap(user, pwd, server, ssl=True)
box.login()

# ... fetch emails

box.logout()

source on GitHub

Parameters
  • user – user

  • pwd – password

  • server – server something like imap.domain.ext

  • ssl – select IMPA_SSL or IMAP

  • fLOG – logging function

For gmail, it is imap.gmail.com and ssl must be true.

source on GitHub

__init__(user, pwd, server, ssl=False, fLOG=<function noLOG>)
Parameters
  • user – user

  • pwd – password

  • server – server something like imap.domain.ext

  • ssl – select IMPA_SSL or IMAP

  • fLOG – logging function

For gmail, it is imap.gmail.com and ssl must be true.

source on GitHub

enumerate_mails_in_folder(folder, skip_function=None, date=None, pattern='ALL', body=True)

Enumerates all mails in folder folder.

Parameters
  • folder – folder name

  • skip_function – if not None, use this function on the header/body to avoid loading the entire message (and skip it)

  • pattern – search pattern (see below)

  • date – add a date to the pattern

  • body – add body

Returns

iterator on (message)

The search pattern can be used to look for a subset of email. It follows these specifications. If a folder is a subfolder, the syntax should be folder/subfolder.

Search pattern

pattern='FROM "xavier" SINCE 1-Feb-2013'
pattern='FROM "xavier" SINCE 1-Feb-2013 BEFORE 5-May-2013'
pattern='FROM "xavier" SINCE 1-Feb-2013 BEFORE 5-May-2013 (UNANSWERED)'
pattern='CC "jacques" FROM "xavier" (DELETED)'
pattern='TEXT "github"'
pattern='LARGER 10000 SMALLER 1000000'
pattern='SUBJECT "programmation"'
pattern='TO "student" (FLAGGED)'
pattern='(UNSEEN)'

If the function generates an error such as:

imaplib.error: command: SEARCH => got more than 10000 bytes

The keyword RECENT will be added to the search pattern in order to retreive the newest mails.

source on GitHub

enumerate_search_person(person, folder, skip_function=None, date=None, max_dest=5, body=True)

Enumerates all mails in folder folder from a user or sent to a user.

Parameters
  • person – person to look for or persons to look for

  • folder – folder name

  • skip_function – if not None, use this function on the header/body to avoid loading the entire message (and skip it)

  • pattern – search pattern (see below)

  • max_dest – maximum number of receivers

  • body – get the body

Returns

iterator on (message)

If person is a list, the function iterates on the list of persons to look for. It returns only unique mails.

source on GitHub

enumerate_search_subject(subject, folder, skip_function=None, date=None, max_dest=5)

Enumerates all mails in folder folder with a subject verifying a regular expression.

Parameters
  • subject – subject to look for

  • folder – folder name

  • skip_function – if not None, use this function on the header/body to avoid loading the entire message (and skip it)

  • pattern – search pattern (see below)

  • max_dest – maximum number of receivers

Returns

iterator on (message)

source on GitHub

folders()

Returns the list of folder of the mail box.

source on GitHub

login()

source on GitHub

logout()

source on GitHub