Net::Sieve.3pm

Langue: en

Autres versions - même langue

Version: 2010-06-08 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

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 ( $ServerSieve->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>. 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>

Copyright 2008-2010 Yves Agostini - <agostini@univ-metz.fr>

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