Imap-CLI
  • Installation
  • Configuration
    • Loading default config
    • Loading config from configuration file
    • Loading config from python code
  • Connection
  • Status
  • Search
  • IMAP Shell
    • Available commands
  • Roadmap
    • v0.1
    • v0.2
    • v0.3
    • v0.4
    • v0.5 (current)
  • How to contribute
    • Submit a patch
    • If you’re not a developper
    • There are a lot to do
 
Imap-CLI
  • Docs »
  • Search
  • View page source

Search¶

This module aim to provide all search options available in IMAP protocoles without having to read the entire IMAP RFC.

For now, you can do following searches

  • Simple listing of all mails
  • Search by tag
  • Search by flag
  • Search full text in mails body
  • search by subject
  • search by mail adresse, in bcc, cc, from or to header fields
  • search by date, before, after or on a particular date
  • search by header, given a pair of haeder name and header value to search
  • search by size, larger or smaller than given value

Moreover, a few logical combination of the above

  • Not
  • Or
create_search_criterion(tags=None, text=None):
Keywords arguments:
tags: An iterable of tags string text: A string to search trhough all mails

Return a list of IMAP search criterion

Example:

import imap_cli
from imap_cli import search

print search.create_search_criterion(ctx, directory="Perso", tags=["family", "unseen"])

New in version 0.2.

fetch_uids(imap_account, search_criterion=None):
Keywords arguments:
imap_account: Imap lib object search_criterion: A list of IMAP criterion produced by search module helpers

Return a list of mail uid

Example:

import imap_cli
from imap_cli import search

imap_account = imap_cli.connect('hostname', 'username', 'password')
search_criterion = search.create_search_criterion(tags=["family", "unseen"])

mails_uid = search.fetch_uids(imap_account, search_criterion=search_criterion)

New in version 0.2.

fetch_mails_info(imap_account, mail_set=None, decode=True, limit=None):
Keywords arguments:
imap_account: Imap lib object mail_set: A list of mail uid to retrieve decode: Decode mail content limit: Return a limited number of mails

Return a list of dict with minimal information about mails

Example:

import imap_cli
from imap_cli import search

imap_account = imap_cli.connect('hostname', 'username', 'password')
search_criterion = search.create_search_criterion(tags=["family", "unseen"])

mails_uid = search.fetch_uids(imap_account, search_criterion=search_criterion)
mails_info = search.fetch_mails_info(imap_account, mails_uid)

New in version 0.2.

Next Previous

© Copyright 2014, Romain Soufflet (Gentux).

Sphinx theme provided by Read the Docs