The imapautofiler.rules Module

class imapautofiler.rules.And(rule_data, cfg)

Bases: imapautofiler.rules.Rule

True if all of the sub-rules are true.

The rule data must contain a rules list with other rules specifications.

Actions on the sub-rules are ignored.

NAME = 'and'
check(message)

Test the rule on the message.

Parameters:
  • conn (imapclient.IMAPClient) – connection to IMAP server
  • message (email.message.Message) – the message object to process
class imapautofiler.rules.HeaderExactValue(rule_data, cfg)

Bases: imapautofiler.rules._HeaderMatcher

class imapautofiler.rules.HeaderExists(rule_data, cfg)

Bases: imapautofiler.rules.Rule

Looks for a message to have a given header.

NAME = 'header-exists'
check(message)

Test the rule on the message.

Parameters:
  • conn (imapclient.IMAPClient) – connection to IMAP server
  • message (email.message.Message) – the message object to process
class imapautofiler.rules.HeaderRegex(rule_data, cfg)

Bases: imapautofiler.rules._HeaderMatcher

Implements regular expression matching for headers.

class imapautofiler.rules.HeaderSubString(rule_data, cfg)

Bases: imapautofiler.rules._HeaderMatcher

Implements substring matching for headers.

class imapautofiler.rules.Headers(rule_data, cfg)

Bases: imapautofiler.rules.Rule

True if all of the headers match.

The rule data must contain a headers list of mappings containing a name for the header itself and either a substring key mapped to a simple string or a regex key mapped to a regular expression to be matched against the value of the header.

NAME = 'headers'
check(message)

Test the rule on the message.

Parameters:
  • conn (imapclient.IMAPClient) – connection to IMAP server
  • message (email.message.Message) – the message object to process
class imapautofiler.rules.IsMailingList(rule_data, cfg)

Bases: imapautofiler.rules.HeaderExists

Looks for a message to have a given header.

NAME = 'is-mailing-list'
class imapautofiler.rules.Or(rule_data, cfg)

Bases: imapautofiler.rules.Rule

True if any one of the sub-rules is true.

The rule data must contain a rules list with other rules specifications.

Actions on the sub-rules are ignored.

NAME = 'or'
check(message)

Test the rule on the message.

Parameters:
  • conn (imapclient.IMAPClient) – connection to IMAP server
  • message (email.message.Message) – the message object to process
class imapautofiler.rules.Recipient(rule_data, cfg)

Bases: imapautofiler.rules.Or

True if any recipient sub-rule matches.

The rule data must contain a recipient mapping containing either a substring key mapped to a simple string or a regex key mapped to a regular expression.

NAME = 'recipient'
class imapautofiler.rules.Rule(rule_data, cfg)

Bases: object

Base class

NAME = None
check(message)

Test the rule on the message.

Parameters:
  • conn (imapclient.IMAPClient) – connection to IMAP server
  • message (email.message.Message) – the message object to process
get_action()
class imapautofiler.rules.TimeLimit(rule_data, cfg)

Bases: imapautofiler.rules.Rule

True if message is older than the specified ‘age’ measured in number of days.

NAME = 'time-limit'
check(message)

Test the rule on the message.

Parameters:
  • conn (imapclient.IMAPClient) – connection to IMAP server
  • message (email.message.Message) – the message object to process
imapautofiler.rules.factory(rule_data, cfg)

Create a rule processor.

Parameters:
  • rule_data (dict) – portion of configuration describing the rule
  • cfg (dict) – full configuration data

Using the rule type, instantiate a rule processor that can check the rule against a message.