#!/usr/bin/perl package Sieve; use Net::ManageSieve; use strict; sub new { my $class = shift; my $self = { _username => shift, _password => shift, _sieve => undef, }; bless $self, $class; return $self; } sub sieveLogin { my ($self) = @_; my $sieveServer = 'localhost'; my $sievePort = 2000; my $authType = 'PLAIN'; my $username = $self->{_username}; my $password = $self->{_password}; my $capabilities = "require ["; my $activescript = ""; my $script_name = "sievephp_testscript"; my $error = undef; $self->{_sieve} = Net::ManageSieve->new("$sieveServer:$sievePort"); if(!$self->{_sieve}->login($username, $password)){ return 0; } $capabilities = $self->{_sieve}->capabilities->{sieve}; $capabilities =~ s/\s/\",\"/g; $capabilities = 'require ["'.$capabilities.'"];'."\n"; $activescript = $capabilities; $activescript .= "\n"; $activescript .= "if allof (size :over 1000K ){ reject text: Your mail Has been rejected due to mailsize control\n\n.;"; $activescript .= "stop;}"; $self->{_sieve}->putscript($script_name, $activescript); $self->{_sieve}->logout; return 1; } 1;