Commit 5ae2c308 authored by Mark Overmeer's avatar Mark Overmeer Committed by Mark Overmeer

distribution Mail-Box-3.002.tar.gz

parent dd49ff70
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: Mail-Box
version: undef
version_from: lib/Mail/Box.pm
installdirs: site
requires:
Date::Parse: 0
Digest::HMAC_MD5: 0
Errno: 0
File::Remove: 0.2
File::Spec: 0.7
IO::Scalar: 0
Mail::Address: 0
MIME::Base64: 0
MIME::Types: 1.004
Object::Realize::Later: 0.14
Scalar::Util: 1.13
Sys::Hostname: 0
Test::Harness: 1.38
Test::More: 0.47
Time::Zone: 0
URI: 1.23
User::Identity: 0.9
distribution_type: module
generated_by: ExtUtils::MakeMaker version 6.17
===== ChangeLog of Mail::Box version 3.*
version 3.002: Fri 31 Mar 14:22:17 CEST 2017
Fixes:
- repair test on Windows again :(
- error while global destruction of locker
- show installed version of POP3, not POP4 (of course)
rt.cpan.org#120651 [Kent Fredric]
version 3.001: Mon 6 Feb 17:07:53 CET 2017
Fixes:
......
......@@ -23,49 +23,92 @@ lib/Mail/Box-Index.pod
lib/Mail/Box-Overview.pod
lib/Mail/Box-Shorts.pod
lib/Mail/Box.pm
lib/Mail/Box.pod
lib/Mail/Box/Collection.pm
lib/Mail/Box/Collection.pod
lib/Mail/Box/Dir.pm
lib/Mail/Box/Dir.pod
lib/Mail/Box/Dir/Message.pm
lib/Mail/Box/Dir/Message.pod
lib/Mail/Box/File.pm
lib/Mail/Box/File.pod
lib/Mail/Box/File/Message.pm
lib/Mail/Box/File/Message.pod
lib/Mail/Box/Identity.pm
lib/Mail/Box/Identity.pod
lib/Mail/Box/Locker.pm
lib/Mail/Box/Locker.pod
lib/Mail/Box/Locker/DotLock.pm
lib/Mail/Box/Locker/DotLock.pod
lib/Mail/Box/Locker/FcntlLock.pm
lib/Mail/Box/Locker/FcntlLock.pod
lib/Mail/Box/Locker/Flock.pm
lib/Mail/Box/Locker/Flock.pod
lib/Mail/Box/Locker/Multi.pm
lib/Mail/Box/Locker/Multi.pod
lib/Mail/Box/Locker/Mutt.pm
lib/Mail/Box/Locker/Mutt.pod
lib/Mail/Box/Locker/NFS.pm
lib/Mail/Box/Locker/NFS.pod
lib/Mail/Box/Locker/POSIX.pm
lib/Mail/Box/Locker/POSIX.pod
lib/Mail/Box/MH.pm
lib/Mail/Box/MH.pod
lib/Mail/Box/MH/Index.pm
lib/Mail/Box/MH/Index.pod
lib/Mail/Box/MH/Labels.pm
lib/Mail/Box/MH/Labels.pod
lib/Mail/Box/MH/Message.pm
lib/Mail/Box/MH/Message.pod
lib/Mail/Box/Maildir.pm
lib/Mail/Box/Maildir.pod
lib/Mail/Box/Maildir/Message.pm
lib/Mail/Box/Maildir/Message.pod
lib/Mail/Box/Manage/User.pm
lib/Mail/Box/Manage/User.pod
lib/Mail/Box/Manager.pm
lib/Mail/Box/Manager.pod
lib/Mail/Box/Mbox.pm
lib/Mail/Box/Mbox.pod
lib/Mail/Box/Mbox/Message.pm
lib/Mail/Box/Mbox/Message.pod
lib/Mail/Box/Message.pm
lib/Mail/Box/Message.pod
lib/Mail/Box/Message/Destructed.pm
lib/Mail/Box/Message/Destructed.pod
lib/Mail/Box/Net.pm
lib/Mail/Box/Net.pod
lib/Mail/Box/Net/Message.pm
lib/Mail/Box/Net/Message.pod
lib/Mail/Box/Search.pm
lib/Mail/Box/Search.pod
lib/Mail/Box/Search/Grep.pm
lib/Mail/Box/Search/Grep.pod
lib/Mail/Box/Search/SpamAssassin.pm
lib/Mail/Box/Search/SpamAssassin.pod
lib/Mail/Box/Test.pm
lib/Mail/Box/Thread/Manager.pm
lib/Mail/Box/Thread/Manager.pod
lib/Mail/Box/Thread/Node.pm
lib/Mail/Box/Thread/Node.pod
lib/Mail/Box/Tie.pm
lib/Mail/Box/Tie.pod
lib/Mail/Box/Tie/ARRAY.pm
lib/Mail/Box/Tie/ARRAY.pod
lib/Mail/Box/Tie/HASH.pm
lib/Mail/Box/Tie/HASH.pod
lib/Mail/Message/Body/Delayed.pm
lib/Mail/Message/Body/Delayed.pod
lib/Mail/Message/Dummy.pm
lib/Mail/Message/Dummy.pod
lib/Mail/Message/Head/Delayed.pm
lib/Mail/Message/Head/Delayed.pod
lib/Mail/Message/Head/Subset.pm
lib/Mail/Message/Head/Subset.pod
lib/Mail/Message/Wrapper/SpamAssassin.pm
lib/Mail/Message/Wrapper/SpamAssassin.pod
lib/Mail/Server.pm
lib/Mail/Server.pod
scripts/lsmail
scripts/mailbox2html
scripts/takemail
......@@ -160,3 +203,4 @@ t/folders/maildir.src/new/110000042.l.43
t/folders/mbox.cpy
t/folders/mbox.src
t/folders/mbox.win
META.json Module JSON meta-data (added by MakeMaker)
{
"abstract" : "E-mail handling",
"author" : [
"Mark Overmeer"
],
"dynamic_config" : 1,
"generated_by" : "ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120630",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : "2"
},
"name" : "Mail-Box",
"no_index" : {
"directory" : [
"t",
"inc"
]
},
"prereqs" : {
"build" : {
"requires" : {
"ExtUtils::MakeMaker" : "0"
}
},
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "0"
}
},
"runtime" : {
"requires" : {
"Carp" : "0",
"Cwd" : "0",
"Date::Parse" : "0",
"Devel::GlobalDestruction" : "0.09",
"Errno" : "0",
"Fcntl" : "0",
"File::Basename" : "0",
"File::Compare" : "0",
"File::Copy" : "0",
"File::Remove" : "0.2",
"File::Spec" : "0.7",
"IO::Scalar" : "0",
"Mail::Message" : "3",
"Mail::Transport" : "3",
"Object::Realize::Later" : "0.19",
"POSIX" : "0",
"Scalar::Util" : "1.13",
"Sys::Hostname" : "0",
"Test::More" : "0.47"
}
}
},
"release_status" : "stable",
"version" : "3.002"
}
---
abstract: 'E-mail handling'
author:
- 'Mark Overmeer'
build_requires:
ExtUtils::MakeMaker: 0
configure_requires:
ExtUtils::MakeMaker: 0
dynamic_config: 1
generated_by: 'ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120630'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: Mail-Box
no_index:
directory:
- t
- inc
requires:
Carp: 0
Cwd: 0
Date::Parse: 0
Devel::GlobalDestruction: 0.09
Errno: 0
Fcntl: 0
File::Basename: 0
File::Compare: 0
File::Copy: 0
File::Remove: 0.2
File::Spec: 0.7
IO::Scalar: 0
Mail::Message: 3
Mail::Transport: 3
Object::Realize::Later: 0.19
POSIX: 0
Scalar::Util: 1.13
Sys::Hostname: 0
Test::More: 0.47
version: 3.002
......@@ -4,7 +4,7 @@ require 5.010;
use IO::Handle;
my $VERSION = '3.001';
my $VERSION = '3.002';
my %prereq =
( Carp => 0
......
=encoding utf8
=chapter NAME
=head1 NAME
Mail::Box-Cookbook - Examples how to use Mail::Box
=chapter DESCRIPTION
=head1 DESCRIPTION
The Mail::Box package is a suite of classes for accessing and managing
email folders in a folder-independent manner. This manual demonstrates
......@@ -11,10 +12,10 @@ a few simple applications. Please contribute with examples and fixes.
It may also help to have a look at the programs included in the
C<scripts/> and the C<examples/> directories of the distribution.
=section The Manager
=head2 The Manager
For more details about all the packages which are involved in the
Mail::Box suite you have to read M<Mail::Box-Overview>. But you
Mail::Box suite you have to read L<Mail::Box-Overview|Mail::Box-Overview>. But you
do not need to know much if you want to use the Mail::Box suite.
Please use the manager to open your folders. You will certainly
......@@ -24,7 +25,7 @@ the accidental re-opening of an already open folder.
The C<examples/open.pl> script contains mainly
my $mgr = M<Mail::Box::Manager>->new;
my $mgr = Mail::Box::Manager->new;
my $folder = $mgr->open($filename);
foreach my $message ($folder->messages) {
print $message->get('Subject') || '<no subject>', "\n";
......@@ -43,8 +44,7 @@ In stead of calling C<close> on the folder, you may also call
If you forget to close a folder, changes will not be written. This
may change in the future.
=section Multi part messages
=head2 Multi part messages
In early days of Internet, multi-part messages where very rare.
However, in recent years, a large deal of all transmitted message have
......@@ -79,8 +79,7 @@ also a preamble and an epilogue, which are respectively the lines before
and after the parts. These texts may be ignored, because they are only
descriptive on how the multi-part was created.
=section Filter
=head2 Filter
The target is to select a few messages from one folder, to move them
to an other. The C<examples/takelarge.pl> script demonstrates how
......@@ -121,10 +120,9 @@ For instance, use C<timestamp> to find old messages:
my @old = grep {$_->timestamp - $now > YEAR} $inbox->messages;
$mgr->moveMessage($oldbox, @old);
=head2 Create a reply
=section Create a reply
The complex message treatment is implemented in M<Mail::Message::Construct>
The complex message treatment is implemented in L<Mail::Message::Construct|Mail::Message::Construct>
and automatically loaded when needed. It is sufficient to simply call
C<reply> on any message:
......@@ -152,7 +150,7 @@ contains one part, and that INLINE is requested, it will be 'flattened':
the reply may be a single-part.
Have a look at the parameters which can be passed to reply in
M<Mail::Message::Construct>. For a single-part reply, the return
L<Mail::Message::Construct|Mail::Message::Construct>. For a single-part reply, the return
will be
prelude
......@@ -169,28 +167,27 @@ A multipart body will be
part 2: stripped original multipart
part 3: signature
=section Build a message
=head2 Build a message
There are three ways to create a message which is not a reply:
=over 4
=item * M<Mail::Message::buildFromBody()>
=item * L<Mail::Message::buildFromBody()|Mail::Message::Construct::Build/"Constructing a message">
Start with creating a body, and transform that into a message.
=item * M<Mail::Message::build()>
=item * L<Mail::Message::build()|Mail::Message::Construct::Build/"Constructing a message">
create the whole message at once.
=item * M<Mail::Message::read()>
=item * L<Mail::Message::read()|Mail::Message::Construct::Read/"Constructing a message">
read a message from a file-handle, scalar, or array of lines.
=back
All three methods are implemented in M<Mail::Message::Construct>. Please,
All three methods are implemented in L<Mail::Message::Construct|Mail::Message::Construct>. Please,
do yourself a favor, and give preference to the C<build*> methods, over
the C<read>, because they are much more powerful. Use the C<read> only
when you have the message on STDIN or an array of lines which is supplied
......@@ -210,7 +207,7 @@ to specify the source and destination addresses (the C<From> and C<To> lines>).
At that moment, the body will automatically be encoded to be acceptable for
mail folders and transmission programs.
my $body = M<Mail::Message::Body>->new
my $body = Mail::Message::Body->new
( mime_type => 'text/css'
, transfer_encoding => '8bit'
, data => \@lines
......@@ -225,15 +222,15 @@ To start with the first way to create a message. This solution provides
maximum control over the message creation. Quite some work is hidden for
you when executing the next line.
my $message = M<Mail::Message>->buildFromBody
my $message = Mail::Message->buildFromBody
( $body
, From => 'me@example.com'
, To => 'you@anywhere.net'
, Cc => [ M<Mail::Address>->parse($groupalias) ]
, Cc => [ Mail::Address->parse($groupalias) ]
);
For header lines, you may specify a string, an address object
(M<Mail::Address>), or an array of such addresses. If you want to create
(L<Mail::Address|Mail::Address>), or an array of such addresses. If you want to create
multi-part messages, you need to create a multi-part body yourself first.
The second way of constructing a message uses the C<build> method. A
......@@ -248,7 +245,7 @@ refers to construed bodies and messages. Each option can be used as
often as needed. If more than one source of data is provided, a
multi-part message is produced.
my $message = M<Mail::Message>->build
my $message = Mail::Message->build
( From => 'me@example.com'
, To => 'you@anywhere.net'
, 'X-Mailer' => 'Automatic mailing system'
......@@ -257,3 +254,39 @@ multi-part message is produced.
, attach => $signature_body
);
=head1 SEE ALSO
This module is part of Mail-Box distribution version 3.002,
built on March 31, 2017.
Do not forget to read
L<Mail::Box-Overview>,
L<Mail::Box-Cookbook>, and
L<Mail::Box-Index>.
Examples are included in the Mail-Box distribution, directories 'examples'
and 'scripts'.
Browseable manuals, papers, and other released material van be found
at Website: F<http://perl.overmeer.net/mailbox/>
The central modules (in separate distributions) in the MailBox suite are:
L<Mail::Message>,
L<Mail::Box>,
L<Mail::Box::IMAP4>,
L<Mail::Box::POP3>,
L<Mail::Box::Parser::C>,
L<Mail::Box::Dbx> (unpublished),
L<Mail::Transport>,
L<Object::Realize::Later>, and
L<User::Identity>.
Please post questions or ideas to the author F<markov@cpan.org>.
=head1 LICENSE
Copyrights 2001-2017 by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the Artistic license.
See F<http://dev.perl.org/licenses/artistic.html>
=encoding utf8
=chapter NAME
=head1 NAME
Mail::Box-Index - list of all extended documentation
=chapter DESCRIPTION
=head1 DESCRIPTION
All methods defined by MailBox are documented, but you still need to
get a grip on the large picture: the relations between the modules
......@@ -252,3 +253,40 @@ Only the HTML version of this manual page will list the sections.
</ol>
=end html
=head1 SEE ALSO
This module is part of Mail-Box distribution version 3.002,
built on March 31, 2017.
Do not forget to read
L<Mail::Box-Overview>,
L<Mail::Box-Cookbook>, and
L<Mail::Box-Index>.
Examples are included in the Mail-Box distribution, directories 'examples'
and 'scripts'.
Browseable manuals, papers, and other released material van be found
at Website: F<http://perl.overmeer.net/mailbox/>
The central modules (in separate distributions) in the MailBox suite are:
L<Mail::Message>,
L<Mail::Box>,
L<Mail::Box::IMAP4>,
L<Mail::Box::POP3>,
L<Mail::Box::Parser::C>,
L<Mail::Box::Dbx> (unpublished),
L<Mail::Transport>,
L<Object::Realize::Later>, and
L<User::Identity>.
Please post questions or ideas to the author F<markov@cpan.org>.
=head1 LICENSE
Copyrights 2001-2017 by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the Artistic license.
See F<http://dev.perl.org/licenses/artistic.html>
This diff is collapsed.
# Copyrights 2001-2017 by [Mark Overmeer].
# For other contributors see ChangeLog.
# See the manual pages for details on the licensing terms.
# Pod stripped from pm file by OODoc 2.02.
use strict;
use warnings;
package Mail::Box::Collection;
use vars '$VERSION';
$VERSION = '3.002';
use base qw/User::Identity::Collection Mail::Reporter/;
use Mail::Box::Identity;
use Scalar::Util qw/weaken/;
=chapter NAME
Mail::Box::Collection - a collection of subfolders
=chapter SYNOPSIS
=chapter DESCRIPTION
The M<Mail::Box::Collection> object maintains a set M<Mail::Box::Identity>
objects, each describing a the location of a single mailbox (folder). The
collection is used by the M<Mail::Box::Manage::User> object to administer
the folders of a single user, even if those folders are closed.
=chapter METHODS
=c_method new [$name], %options
=default name C<'folders'>
=default item_type M<Mail::Box::Identity>
=option manager OBJECT
=default manager <from parent>
An M<Mail::Box::Manager> OBJECT (could be a M<Mail::Box::Manage::User>).
=option folder_type CLASS
=default folder_type <from parent>
=cut
sub new(@)
{ my $class = shift;
......@@ -61,12 +40,6 @@ sub type() { 'folders' }
#------------------------------------------
=section Attributes
=method manager
The M<Mail::Box::Manager> (usually a M<Mail::Box::Manage::User> object),
which is handling the opening of folders.
=cut
sub manager()
{ my $self = shift;
......@@ -79,10 +52,6 @@ sub manager()
#------------------------------------------
=method folderType [$folderclass]
Returns the type of folder (on this location). When specified, then
$folderclass must be a M<Mail::Box> extension.
=cut
sub folderType()
{ my $self = shift;
......
=encoding utf8
=head1 NAME
Mail::Box::Collection - a collection of subfolders
=head1 INHERITANCE
Mail::Box::Collection
is a User::Identity::Collection
is a User::Identity::Item
Mail::Box::Collection
is a Mail::Reporter
=head1 SYNOPSIS
=head1 DESCRIPTION
The L<Mail::Box::Collection|Mail::Box::Collection> object maintains a set L<Mail::Box::Identity|Mail::Box::Identity>
objects, each describing a the location of a single mailbox (folder). The
collection is used by the L<Mail::Box::Manage::User|Mail::Box::Manage::User> object to administer
the folders of a single user, even if those folders are closed.
Extends L<"DESCRIPTION" in Mail::Reporter|Mail::Reporter/"DESCRIPTION">.
Extends L<"DESCRIPTION" in User::Identity::Collection|User::Identity::Collection/"DESCRIPTION">.
=head1 OVERLOADED
Extends L<"OVERLOADED" in User::Identity::Collection|User::Identity::Collection/"OVERLOADED">.
=over 4
=item overload: B<@{}>
Inherited, see L<User::Identity::Collection/"OVERLOADED">
=item overload: B<stringification>
Inherited, see L<User::Identity::Collection/"OVERLOADED">
=back
=head1 METHODS
Extends L<"METHODS" in Mail::Reporter|Mail::Reporter/"METHODS">.