AnyEvent-IMAP
view release on metacpan or search on metacpan
example/demo.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.010000;
use autodie;
use AnyEvent::IMAP;
use Config::Pit;
use Log::Minimal;
use AnyEvent::IMAP::Envelope;
my $conf = pit_get('damail', require => {
'imap_server' => 'imap server',
imap_user => 'user',
imap_pass => 'pass',
imap_ssl => 1,
imap_port => 993,
});
my $imap = AnyEvent::IMAP->new(
host => $conf->{imap_server},
user => $conf->{imap_user},
pass => $conf->{imap_pass},
ssl => 1,
port => 993,
);
$imap->reg_cb(
connect => sub {
infof("connected.");
$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');
( run in 0.707 second using v1.01-cache-2.11-cpan-39bf76dae61 )