Salve, sto cercando di ricavare le nuove email non lette da gmail con perl, il codice è questo:
codice:
#!/usr/bin/perl
use strict;
use Mail::IMAPClient;
use IO::Socket::SSL;
my $username = 'myemail@gmail.com';
my $password = 'mypasswd';
my $socket = IO::Socket::SSL->new(
PeerAddr => 'gmail-imap.l.google.com',
PeerPort => 993
) or die "socket(): $@";
my $client = Mail::IMAPClient->new(
Socket => $socket,
User => $username,
Password => $password,
Uid => 1,
) or die "new(): $@";
if ($client->IsAuthenticated()) {
my $msgct;
$client->select("INBOX");
$msgct = $client->unseen_count||'0';
print "Email unread: $msgct\n";
my @unread = $client->unseen or warn "Could not find unseen msgs: $@\n";
foreach (@unread) {
print "$@\n";
print $_ . " - " . $client->fetch($_) . "\n";
}
}
$client->logout();
ma come output mi restituisce:
codice:
king@homepc:~$ ./script.pl
Email unread: 3
12730 -
5 BAD Could not parse command
12740 -
6 BAD Could not parse command
12746 -
7 BAD Could not parse command
king@homepc:~$ ./script.pl
il pratica ci sono dei problemi con il fetch, ma non riesco a capire perché.
Qualcuno sa darmi un consiglio ?