AnyEvent-IMAP
view release on metacpan or search on metacpan
example/demo.pl view on Meta::CPAN
$imap->login()->cb(sub {
my ($ok, $line) = shift->recv;
if ($ok) {
$imap->capability()->cb(sub {
my ($ok, $line) = shift->recv;
infof("%s", ddf($line));
});
$imap->folders()->cb(sub {
my ($ok, $folders) = shift->recv;
if ($ok) {
$imap->status('INBOX')->cb(sub {
my ($ok, $status) = shift->recv;
infof("INBOX status: %s", ddf($status));
});
$imap->status_multi($folders)->cb(sub {
my ($ok, $statuses) = shift->recv;
infof("status_multi: %s", ddf($statuses));
});
$imap->select('INBOX')->cb(sub {
my ($ok, $ret) = shift->recv;
if ($ok) {
infof("selected: %s", ddf($ret));
$imap->fetch('1:5 (UID FLAGS INTERNALDATE RFC822.SIZE ENVELOPE BODYSTRUCTURE)')->cb(sub {
my ($ok, $ret) = shift->recv;
infof("summaries: %s ****************", $ok);
for my $summary (@$ret) {
$summary->{ENVELOPE} = AnyEvent::IMAP::Envelope->new(delete $summary->{ENVELOPE});
infof("%s", ddf($summary));
}
});
$imap->expunge()->cb(sub {
my ($ok, $ret)= shift->recv;
infof("expunge: %s", $ok);
});
$imap->create_folder('TEST');
}
});
}
infof('%s', ddf($line));
});
}
});
},
send => sub {
infof("SEND: %s", $_[1]);
},
recv => sub {
infof("RECV: %s", $_[1]);
},
disconnect => sub {
infof("disconnect: %s", $_[1]);
$imap->connect();
},
);
my ($ok, $res) = $imap->connect()->recv();
unless ($ok) {
die $res;
}
# send ping
my $timer = AE::timer(30, 20*60, sub {
$imap->noop();
});
AE::cv()->recv;
( run in 0.603 second using v1.01-cache-2.11-cpan-6aa56a78535 )