Mail::IMAPClient

BiepoN

Mitglied
Hallo,

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))
 
Mach mal ne Fehlerabfrage:
Aus
Code:
 my $imap = new Mail::IMAPClient( 'Server' => $host , 'User' => $user , 'Password' => $password  );
wird
Code:
 my $imap = new Mail::IMAPClient( 'Server' => $host , 'User' => $user , 'Password' => $password  ) or die $@;
 
Vielen Dank ... nun habe ich wenigstens eine Meldung mit der ich was Anfangen kann :)

Code:
1 NO LOGIN failure, user name or password rejected
 
Zurück