NAME

Net::Sieve::Script::Condition - parse and write conditions in sieve scripts

SYNOPSIS

use Net::Sieve::Script::Condition;

my $cond = Net::Sieve::Script::Condition->new('header');
  $cond->match_type(':contains');
  $cond->key_list('"[Test4]"');
  $cond->header_list('"Subject"');

 print $cond->write();

or

   my $cond = Net::Sieve::Script::Condition->new(
     'anyof (
       header :contains "Subject" "[Test]",
	   header :contains "Subject" "[Test2]")'
	 );

   print $cond->write();

DESCRIPTION

Parse and write condition part of Sieve rules, see Net::Sieve::Script.

Support RFC 5228, 5231 (relationnal) and regex draft

CONSTRUCTOR

new

Match and set accessors for each condition object in conditions tree, "test" is mandatory

Internal

id :        id for condition, set by creation order
condition : array of sub conditions 
parent :    parent of sub condition
AllConds :  array of pointers for all conditions

Condition parts not : 'not' or nothing test : 'header', 'address', 'exists', ... key_list : "subject" or ["To", "Cc"] header_list : "text" or ["text1", "text2"] address_part : ':all ', ':localpart ', ... match_type : ':is ', ':contains ', ... comparator : string part

METHODS

equals

Purpose  : test conditions
Return   : 1 on equals conditions

write

Purpose  : write rule conditions in text format
Return   : multi-line formatted text

AUTHOR

Yves Agostini
CPAN ID: YVESAGO
yvesago@cpan.org

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.