NAME¶
Net::Sieve - Implementation of managesieve protocol to manage sieve scripts
SYNOPSIS¶
use Net::Sieve;
my $SieveServer = Net::Sieve->new (
server => 'imap.server.org',
user => 'user',
password => 'pass' ,
);
foreach my $script ( $SieveServer->list() ) {
print $script->{name}." ".$script->{status}."\n";
};
my $name_script = 'test';
# read
print $SieveServer->get($name_script);
# write
my $test_script='
require "fileinto";
## Place all these in the "Test" folder
if header :contains "Subject" "[Test]" {
fileinto "Test";
}
';
# other
$SieveServer->put($name_script,$new_script);
$SieveServer->activate($name_script);
$SieveServer->deactivate();
$SieveServer->delete($name_script);
DESCRIPTION¶
Net::Sieve is a package for clients for the "MANAGESIEVE"
protocol, which is an Internet Draft protocol for manipulation of
"Sieve" scripts in a repository. More simply, Net::Sieve lets you
control your mail-filtering rule files on a mail server.
Net::Sieve supports the use of "TLS" via the
"STARTTLS" command.
Net::Sieve open the connexion to the
sieve server, methods allow to list all scripts, activate or deactivate
scripts, read, delete or put scripts.
Most of code come from the great Phil Pennock
sieve-connect command-line
tool <
http://people.spodhuis.org/phil.pennock/software/>.
See Net::Sieve::Script to manipulate Sieve scripts content.
CONSTRUCTOR¶
new¶
Usage :
my $SieveServer = Net::Sieve->new (
server => 'imap.server.org',
user => 'user',
password => 'pass' );
Returns :
Net::Sieve object which contain current open socket
Argument :
server : default localhost
port : default sieve(2000)
user : default logname or $ENV{USERNAME} or $ENV{LOGNAME}
password :
net_domain :
sslkeyfile : default search in /etc/ssl/certs
sslcertfile : default search in /etc/ssl/certs
autmech : to force a particular authentication mechanism
authzid : request authorisation to act as the specified id
realm : pass realm information to the authentication mechanism
ssl_verif : default 0x01, set 0x00 to don't verify and allow self-signed cerificate
debug : default 0, set 1 to have transmission logs
dumptlsinfo : dump tls information
METHODS¶
sock¶
Usage : my $sock = $ServerSieve->sock();
Return : open socket
Argument : nothing
Purpose : access to socket
capabilities¶
Usage : my $script_capa = $ServerSieve->capabilities();
Return : string with white space separator
Argument : nothing
Purpose : retrieve sieve script capabilities
list¶
Usage :
foreach my $script ( $ServerSieve->list() ) {
print $script->{name}." ".$script->{status}."\n";
};
Return : array of hash with names and status scripts for current user
Argument : nothing
Purpose : list available scripts on server
put¶
Usage : $ServerSieve->put($name,$script);
Return : 1 on success, 0 on missing name or script
Argument : name, script
Purpose : put script on server
get¶
Usage : my $script = $ServerSieve->get($name);
Return : 0 on missing name, string with script on success
Argument : name
Purpose : put script on server
activate¶
Usage : $ServerSieve->activate($name);
Return : 0 on pb, 1 on success
Argument : name
Purpose : set named script active and switch other scripts to unactive
deactivate¶
Usage : $ServerSieve->deactivate();
Return : activate response
Argument : nothing
Purpose : stop sieve processing, deactivate all scripts
delete¶
Usage : $ServerSieve->delete($name);
Return : 0 on missing name, 1 on success
Argument : name
Purpose : delete script on server
Minor public methods¶
ssend¶
Usage : $self->ssend("GETSCRIPT \"$name\"");
sget¶
Usage:
$self->sget();
unless (/^OK((?:\s.*)?)$/) {
warn "SETACTIVE($name) failed: $_\n";
return 0;
}
sfinish¶
send LOGOUT
closedie¶
send LOGOUT and die
closedie_NOmsg¶
closedie whitout message
die_NOmsg¶
die
BUGS¶
I don't try plain text or client certificate authentication.
You can debug TLS connexion with openssl :
openssl s_client -connect your.server.org:2000 -tls1 -CApath
/etc/apache/ssl.crt/somecrt.crt -starttls smtp
See response in "Verify return code:"
SUPPORT¶
Please report any bugs or feature requests to "bug-net-sieve at
rt.cpan.org", or through the web interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Sieve
<
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Sieve>. I will be
notified, and then you'll automatically be notified of progress on your bug as
I make changes.
AUTHOR¶
Yves Agostini - Univ Metz <agostini@univ-metz.fr>
http://www.crium.univ-metz.fr <
http://www.crium.univ-metz.fr>
COPYRIGHT¶
Copyright 2008-2012 Yves Agostini - <yvesago@cpan.org>
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.
sieve-connect source code is under a BSD-style license and re-licensed
for Net::Sieve with permission of the author.
SEE ALSO¶
Net::Sieve::Script