Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Mail::Server::IMAP4::LUser3Contributed Perl DocumeMail::Server::IMAP4::List(3)

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
	     delimiter	'/'
	     folders	<from user>
	     inbox	<from user>
	     user	<undef>

	   delimiter =>	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	delimiter

	    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-IMAP4 distribution version 3.007, built
       on June 13, 2019. Website: http://perl.overmeer.net/CPAN/

LICENSE
       Copyrights 2001-2019 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://dev.perl.org/licenses/

perl v5.32.0			  2019-06-13	  Mail::Server::IMAP4::List(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | DETAILS | SEE ALSO | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mail::Server::IMAP4::List&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help