Hallo,
bin gerade dabei folgendes script zum Laufen zu bekommen:
Leider bekomme ich aber folgende Meldung nach Ausführen:
Jemand eine Idee? Mail::IMAPClient ist in der Version 2.2.9. installiert (auf einem Debian Sarge 3.1 (kernel 2.6.8))
bin gerade dabei folgendes script zum Laufen zu bekommen:
Code:
#!/usr/bin/perl
use strict;
use warnings;
use Mail::IMAPClient;
my $host="192.168.xxx.xxx";
my $username="root";
my $password="xxxx";
my @real_users=`/opt/scalix/bin/omshowu -m all -i`; # get all real user names.
foreach my $punter (@real_users) # Loop over them all.
{
chomp $punter; # Remove trailing carriage return.
print "$punter\n"; # Some output. Feel free to remove.
my $user="mboxadmin:$username:$punter"; # Set up superuser login.
my $imap = new Mail::IMAPClient( 'Server' => $host , 'User' => $user , 'Password' => $password ); # connect to server.
my @folders=$imap->folders; # list folders.
foreach my $folder (@folders) # Look through each of them.
{
print "drin in folger\n";
print "$folder\n";
if (lc($folder) eq "junk e-mail") # "junk email" folder.
{
print "Found a spam folder: $folder\n";
$imap->select($folder) or next; # Select the folder.
print "Folder $folder selected.\n";
my @list=$imap->messages or next; # List all messages in folder.
print scalar(@list)." messages in folder.\n";
foreach my $msg (reverse(@list)) # Loop over them all.
{
my @email=$imap->fetch($msg,'RFC822'); # Fetch message.
open (SALEARN,"|/usr/bin/ssh <remote server> /usr/bin/spamassassin -d | /usr/bin/ssh <remote server> /usr/bin/sa-learn --spam") or print "$!\n"; # Feed to sa-learn.
print SALEARN "$email[1]";
close SALEARN;
open (REPORT,"|/usr/bin/ssh <remote server> /usr/bin/spamassassin -d | /usr/bin/ssh <remote server> /usr/bin/spamassassin -r") or print "$!\n"; # Report it. (SpamCop and Pyzor).
print REPORT "$email[1]";
close REPORT;
$imap->delete_message($msg) or next; # Delete it.
}
$imap->expunge($folder) or next; #Expunge folder.
}
}
}
Leider bekomme ich aber folgende Meldung nach Ausführen:
Code:
Can't call method "folders" on an undefined value at ./catch_spam line 15.
Jemand eine Idee? Mail::IMAPClient ist in der Version 2.2.9. installiert (auf einem Debian Sarge 3.1 (kernel 2.6.8))