IMAP::Client

Advanced manipulation of IMAP services w/ referral support
Download

IMAP::Client Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Brenden Conte
  • Publisher web site:
  • http://search.cpan.org/~conteb/

IMAP::Client Tags


IMAP::Client Description

Advanced manipulation of IMAP services w/ referral support IMAP::Client is a Perl module created as a low-level inteface to any IMAP server. It was built to be a 'clear box' solution to working with an IMAP environment. The idea is that anything an IMAP client should be able to do, and any information available via the IMAP specs, should be available to a client interface and user. This way, the full strength of the IMAP protocol and data can be utilized, ideally in the most network-efficient mannger possible, rather than being contrained only to a subset of commands or data-limited responses. If the server says it, the client should be able to see it.This module also takes steps to be able to handle anticipated situations for the user rather than forcing a per-implementation behavior for such expected events, such as referrals. IMAP::Client will fully support referrals, and will transparently handle them for whatever command is issued to them (so long as the referral s for anonymous or the same user with the same password - a new user or different password would require a new username/password to be obtained. As of 0.01, this is not supported, however the framework is down.This module also tries to follow the various RFCs for IMAPrev1 communications very closely, enforcing client-side responsabilities where appropriate. The complete lists of RFCs referenced for this module include: * RFC 3501 - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1 (partial) * RFC 2086 - IMAP4 ACL extension (0.01) * RFC 2087 - IMAP4 QUOTA extension (0.01) * RFC 2088 - IMAP4 non-synchronizing literals (0.01) * RFC 2177 - IMAP4 IDLE command (Not supported yet) * RFC 2192 - IMAP4 URL Scheme (0.01) * RFC 2193 - IMAP4 Mailbox Referrals (0.01 ) * RFC 2342 - IMAP4 Namespace (Not directly supported yet) * RFC 2359 - IMAP4 UIDPLUS extension (Partial in 0.01 - UID EXPUNGE check ok, need COPYUID and APPENDUID support) * RFC 2971 - IMAP4 ID extension (0.01) * RFC 3348 - IMAP4 Child Mailbox Extention (Not directly supported yet) * RFC 3502 - IMAP MULTIAPPEND extention (Not directly supported yet) * RFC 3516 - Binary Content Extention (Not directly supported yet) * RFC 3691 - Internet Message Access Protocol (IMAP) UNSELECT command (Not directly supported yet)In addition, the following drafts functionalities are also included. While functionality is included for these drafts (because a server is using them), drafts expire after 6 months, and thus functionality from the server side may be spotty at best. * draft-ietf-imapext-annotate-15 - IMAP ANNOTATE Extension (Not directly supported yet) * draft-daboo-imap-annotatemore-08 - IMAP ANNOTATEMORE Extension (Partial in 0.12 - GETANNOTATION works)SYNOPSIS use IMAP::Client my $imap = new IMAP::Client($server); unless (ref $imap) { die "Failed to create object: $imap "; }(or) my $imap = new IMAP::Client(); $imap->connect(PeerAddr => $server, ConnectMethod => 'SSL STARTTLS PLAIN', ) or die "Unable to connect to : ".$imap->error(); $imap->onfail('ERROR'); $imap->errorstyle('STACK'); $imap->debuglevel(1); $imap->capability_checking(1); sub showstats ($) { my $resp = shift; foreach my $attr (keys %{$resp}) { print "$attr: $resp->{$attr} "; } } $imap->register_mailbox_update(&showstats); $imap->authenticate($user,$pass) or die "Unable to authenticate as $user ".$imap->error()." ";(or) $imap->authenticate($user,$pass,$authas_user) or die "Unable to authenticate as $user on behalf of $authas_user: ".$imap->error()." "; $imap->id() or die $imap->error(); $imap->capability() or die $imap->error(); $imap->noop() or die $imap->error(); FIXME: more examples here Requirements: · Perl


IMAP::Client Related Software