Ingo_Script_Maildrop
extends Ingo_Script_Base
in package
The Ingo_Script_Maildrop class represents a maildrop script generator.
Tags
Table of Contents
- MAILDROP_STORAGE_ACTION_STOREANDFORWARD = 100
- Additional storage action since maildrop does not support the "c-flag" as in procmail.
- $_actions : array<string|int, mixed>
- The list of actions allowed (implemented) for this driver.
- $_categories : array<string|int, mixed>
- The categories of filtering allowed.
- $_categoryFeatures : array<string|int, mixed>
- Which form fields are supported in each category by this driver?
- $_features : array<string|int, mixed>
- A list of driver features.
- $_generated : bool
- Have the recipes been generated yet?
- $_params : array<string|int, mixed>
- The script class' additional parameters.
- $_recipes : array<string|int, mixed>
- The recipes that make up the code.
- $_special_types : array<string|int, mixed>
- A list of any special types that this driver supports.
- $_tests : array<string|int, mixed>
- The list of tests allowed (implemented) for this driver.
- $_types : array<string|int, mixed>
- The types of tests allowed (implemented) for this driver.
- __construct() : mixed
- Constructor.
- activate() : mixed
- Connects to the backend, uploads the scripts and sets them active.
- availableActions() : array<string|int, mixed>
- Returns the available actions for this driver.
- availableCategories() : array<string|int, mixed>
- Returns the available categories for this driver.
- availableCategoryFeatures() : array<string|int, mixed>
- Returns the supported form fields for this driver.
- availableTests() : array<string|int, mixed>
- Returns the available tests for this driver.
- availableTypes() : array<string|int, mixed>
- Returns the available test types for this driver.
- canPerform() : bool
- Is the perform() function available right now?
- excludeRegexp() : string
- Returns a regular expression that should catch mails coming from most daemons, mailing list, newsletters, and other bulk.
- generate() : array<string|int, mixed>
- Generates the scripts to do the filtering specified in the rules.
- hasFeature() : bool
- Returns whether the script driver supports a certain feature.
- perform() : mixed
- Performs the filtering specified in the rules.
- setParams() : Ingo_Script
- Updates the parameters.
- specialTypes() : array<string|int, mixed>
- Returns any test types that are special for this driver.
- _addItem() : mixed
- Adds an item to the recipe list.
- _generate() : mixed
- Generates the script to do the filtering specified in the rules.
- _generateBlacklist() : mixed
- Generates the maildrop script to handle the blacklist specified in the rules.
- _generateForward() : mixed
- Generates the maildrop script to handle mail forwards.
- _generateSpam() : mixed
- Generates the maildrop script to handle spam as identified by SpamAssassin.
- _generateVacation() : mixed
- Generates the maildrop script to handle vacation messages.
- _generateWhitelist() : mixed
- Generates the maildrop script to handle the whitelist specified in the rules.
- _insertItem() : mixed
- Inserts an item into the recipe list.
- _perform() : mixed
- _validRule() : bool
- Is this a valid rule?
Constants
MAILDROP_STORAGE_ACTION_STOREANDFORWARD
Additional storage action since maildrop does not support the "c-flag" as in procmail.
public
mixed
MAILDROP_STORAGE_ACTION_STOREANDFORWARD
= 100
Properties
$_actions
The list of actions allowed (implemented) for this driver.
protected
array<string|int, mixed>
$_actions
= array('Ingo_Rule_User_Discard', 'Ingo_Rule_User_Keep', 'Ingo_Rule_User_Move', 'Ingo_Rule_User_Redirect', 'Ingo_Rule_User_RedirectKeep', 'Ingo_Rule_User_Reject')
$_categories
The categories of filtering allowed.
protected
array<string|int, mixed>
$_categories
= array('Ingo_Rule_System_Blacklist', 'Ingo_Rule_System_Forward', 'Ingo_Rule_System_Spam', 'Ingo_Rule_System_Vacation', 'Ingo_Rule_System_Whitelist')
$_categoryFeatures
Which form fields are supported in each category by this driver?
protected
array<string|int, mixed>
$_categoryFeatures
= array()
This is an associative array with the keys taken from $_categories, each value is a list of strings with the supported feature names. An absent key is interpreted as "all features supported".
$_features
A list of driver features.
protected
array<string|int, mixed>
$_features
= array(
/* Can tests be case sensitive? */
'case_sensitive' => \true,
/* Does the driver support setting IMAP flags? */
'imap_flags' => \false,
/* Can this driver perform on demand filtering? */
'on_demand' => \false,
/* Does the driver require a script file to be generated? */
'script_file' => \true,
/* Does the driver support the stop-script option? */
'stop_script' => \false,
/* Does the driver support vacation start and end on time level? */
'vacation_time' => \true,
)
$_generated
Have the recipes been generated yet?
protected
bool
$_generated
= \false
$_params
The script class' additional parameters.
protected
array<string|int, mixed>
$_params
= array()
$_recipes
The recipes that make up the code.
protected
array<string|int, mixed>
$_recipes
= array()
$_special_types
A list of any special types that this driver supports.
protected
array<string|int, mixed>
$_special_types
= array()
$_tests
The list of tests allowed (implemented) for this driver.
protected
array<string|int, mixed>
$_tests
= array('contains', 'not contain', 'is', 'not is', 'begins with', 'not begins with', 'ends with', 'not ends with', 'regex', 'not regex', 'matches', 'not matches', 'exists', 'not exist', 'less than', 'less than or equal to', 'equal', 'not equal', 'greater than', 'greater than or equal to')
$_types
The types of tests allowed (implemented) for this driver.
protected
array<string|int, mixed>
$_types
= array(\Ingo_Rule_User::TEST_HEADER)
Methods
__construct()
Constructor.
public
__construct([array<string|int, mixed> $params = array() ]) : mixed
Parameters
- $params : array<string|int, mixed> = array()
-
A hash containing parameters needed.
Return values
mixed —activate()
Connects to the backend, uploads the scripts and sets them active.
public
activate([bool $activate = true ][, bool $auto_update = true ]) : mixed
Parameters
- $activate : bool = true
-
Activate the script?
- $auto_update : bool = true
-
Only update if auto_update is active?
Tags
Return values
mixed —availableActions()
Returns the available actions for this driver.
public
availableActions() : array<string|int, mixed>
Return values
array<string|int, mixed> —The list of available actions.
availableCategories()
Returns the available categories for this driver.
public
availableCategories() : array<string|int, mixed>
Return values
array<string|int, mixed> —The list of categories.
availableCategoryFeatures()
Returns the supported form fields for this driver.
public
availableCategoryFeatures(mixed $category) : array<string|int, mixed>
Parameters
- $category : mixed
Return values
array<string|int, mixed> —An array with the supported field names of the requested category.
availableTests()
Returns the available tests for this driver.
public
availableTests() : array<string|int, mixed>
Return values
array<string|int, mixed> —The list of tests actions.
availableTypes()
Returns the available test types for this driver.
public
availableTypes() : array<string|int, mixed>
Return values
array<string|int, mixed> —The list of test types.
canPerform()
Is the perform() function available right now?
public
canPerform() : bool
This is not a duplication of hasFeature() because drivers might override this to do real-time checks if on-demand filtering is not only available theoretically but practically in this very moment.
Return values
bool —True if perform() is available, false if not.
excludeRegexp()
Returns a regular expression that should catch mails coming from most daemons, mailing list, newsletters, and other bulk.
public
excludeRegexp() : string
This is the expression used for procmail's FROM_DAEMON, including all mailinglist headers.
Return values
string —A regular expression.
generate()
Generates the scripts to do the filtering specified in the rules.
public
generate() : array<string|int, mixed>
Return values
array<string|int, mixed> —The scripts.
hasFeature()
Returns whether the script driver supports a certain feature.
public
hasFeature(string $feature) : bool
Parameters
- $feature : string
-
A feature name.
Tags
Return values
bool —True if this feature is supported.
perform()
Performs the filtering specified in the rules.
public
perform([int $change = null ]) : mixed
Parameters
- $change : int = null
-
The timestamp of the latest rule change during the current session (uses session value if null).
Return values
mixed —setParams()
Updates the parameters.
public
setParams([array<string|int, mixed> $params = array() ]) : Ingo_Script
Parameters
- $params : array<string|int, mixed> = array()
-
A hash containing parameters.
Return values
Ingo_Script —This object, for chaining.
specialTypes()
Returns any test types that are special for this driver.
public
specialTypes() : array<string|int, mixed>
Return values
array<string|int, mixed> —The list of special types
_addItem()
Adds an item to the recipe list.
protected
_addItem(int $rule, Ingo_Script_Item $item[, string $name = null ]) : mixed
Parameters
- $rule : int
-
One of the Ingo::RULE_* constants.
- $item : Ingo_Script_Item
-
An item to add to the recipe list.
- $name : string = null
-
A script name.
Return values
mixed —_generate()
Generates the script to do the filtering specified in the rules.
protected
_generate() : mixed
Return values
mixed —_generateBlacklist()
Generates the maildrop script to handle the blacklist specified in the rules.
protected
_generateBlacklist(Ingo_Rule $rule) : mixed
Parameters
- $rule : Ingo_Rule
-
Rule object.
Return values
mixed —_generateForward()
Generates the maildrop script to handle mail forwards.
protected
_generateForward(Ingo_Rule $rule) : mixed
Parameters
- $rule : Ingo_Rule
-
Rule object.
Return values
mixed —_generateSpam()
Generates the maildrop script to handle spam as identified by SpamAssassin.
protected
_generateSpam(Ingo_Rule $rule) : mixed
Parameters
- $rule : Ingo_Rule
-
Rule object.
Return values
mixed —_generateVacation()
Generates the maildrop script to handle vacation messages.
protected
_generateVacation(Ingo_Rule $rule) : mixed
Parameters
- $rule : Ingo_Rule
-
Rule object.
Return values
mixed —_generateWhitelist()
Generates the maildrop script to handle the whitelist specified in the rules.
protected
_generateWhitelist(Ingo_Rule $rule) : mixed
Parameters
- $rule : Ingo_Rule
-
Rule object.
Return values
mixed —_insertItem()
Inserts an item into the recipe list.
protected
_insertItem(int $rule, Ingo_Script_Item $item[, string $name = null ], mixed $position) : mixed
Parameters
- $rule : int
-
One of the Ingo::RULE_* constants.
- $item : Ingo_Script_Item
-
An item to add to the recipe list.
- $name : string = null
-
A script name.
- $position : mixed
Tags
Return values
mixed —_perform()
protected
_perform(mixed $change) : mixed
Parameters
- $change : mixed
Tags
Return values
mixed —_validRule()
Is this a valid rule?
protected
_validRule(Ingo_Rule $rule) : bool
Parameters
- $rule : Ingo_Rule
-
The rule object.
Return values
bool —Whether the rule is valid for this driver.