GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


NAME

       Mail::Server::IMAP4::List - folder related IMAP4 answers

SYNOPSIS

        my $imap = Mail::Server::IMAP4::List->new
          ( folders   => $folders   # Mail::Box::Identity
          , inbox     => $inbox     # Mail::Box
          , delimiter => '#'
          );

        my $imap = Mail::Server::IMAP4::List->new(user => $user);
        print $imap->list(...);        # for LIST command

DESCRIPTION


METHODS

   Constructors
       Mail::Server::IMAP4::List->new($user)
           Create a (temporary) object to handle the LIST requests for a
           certain user, based upon a set of folders.  The data is kept by
           Mail::Box::Identity and Mail::Box::Collection objects, which mean
           that the folders will not be opened to answer these questions.

            -Option   --Default
             delimeter  '/'
             folders    <from user>
             inbox      <from user>
             user       <undef>

           delimeter => STRING|CODE
             Either the constant delimiter, or a code reference which will get
             passed a folder name and should return the delimiter string used
             in that name.  If that folder name is empty, the default
             delimiter must be reported.  See delimiter() for an example.

           folders => OBJECT
             You need to specify either a set of folders explicitly or via the
             user. Some Mail::Box::Identity OBJECT is needed.

           inbox => BOOLEAN
             For now, only used to see whether there is an inbox, so a truth
             value will do.  This may change in the future.  By default, the
             flag is set if "$user-"inbox> is defined.

           user => OBJECT
             A Mail::Box::Manage::User OBJECT, representing the user who's
             folders must get reported.

   Attributes
       $obj->delimiter( [$foldername] )
           Returns the delimiter string.  The foldername is only required when
           a CODE reference was specified at initiation.

           example: setting-up an IMAP4 delimeter

            sub delim($)
            {   my $path = shift;
                my ($delim, $root)
                  = $path =~ m/^(#news\.)/ ? ('.', $1)
                  = $path =~ m!^/!         ? ('/', '/')
                  :                          ('/', '');

                wantarray ? ($delim, $root) : $delim;
            }

            my $list = Mail::Server::IMAP4::List->new(delimiter => \&delim, ...);
            print $list->delimiter('abc/xyz');      # returns a / (slash) and ''
            print $list->delimiter('#news.feed');   # returns a . (dot)   and $news.
            print $list->delimiter('');             # returns default delimiter

       $obj->folders()
           Returns the Mail::Box::Identity of the toplevel folder.

       $obj->inbox()
           Returns the Mail::Box or filename of the INBOX.

       $obj->user()
           Returns the Mail::Box::Manage::User object, if defined.

   IMAP Commands
       $obj->list($base, $pattern)
           IMAP's LIST command.  The request must be partially decoded, the
           answer will need to be encoded.

           example: using IMAP list

            my $imap  = Mail::Server::IMAP4::List->new(delimiter => \&delim, ...);
            local $"  = ';';

            my @lines = $imap->list('', '');  # returns the default delimiter
            print ">@{$lines[0]}<";           #  >(\Noselect);/;<

            my @lines = $imap->list('#news',''); # specific delimiter
            print ">@{$lines[0]}<";           #  >(\Noselect);.;<

            my @lines = $imap->list('top/x/', '%');
            print ">@$_<," foreach @lines;    #  >();/;/tmp/x/y<,>(\Marked);/;/tmp/x/z<

DETAILS

       See

       RFC2060: "Internet Message Access Protocol IMAP4v1"
           sections 6.3.8 (LIST question) and 7.2.2 (LIST answer)

SEE ALSO

       This module is part of Mail-Box distribution version 2.115, built on
       May 28, 2014. Website: http://perl.overmeer.net/mailbox/

LICENSE

       Copyrights 2001-2014 by [Mark Overmeer]. For other contributors see
       ChangeLog.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  See
       http://www.perl.com/perl/misc/Artistic.php



  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to webmaster@gnu.wiki.
Page load time: 0.174 seconds. Last modified: November 04 2018 12:49:43.