r1524 - in packages/libmail-box-perl/tags: . debian_version_2_063-1
debian_version_2_063-1/debian debian_version_2_063-1/lib/Mail
debian_version_2_063-1/lib/Mail/Box
debian_version_2_063-1/lib/Mail/Box/Dbx
debian_version_2_063-1/lib/Mail/Box/Dir
debian_version_2_063-1/lib/Mail/Box/File
debian_version_2_063-1/lib/Mail/Box/IMAP4
debian_version_2_063-1/lib/Mail/Box/Locker
debian_version_2_063-1/lib/Mail/Box/MH
debian_version_2_063-1/lib/Mail/Box/Maildir
debian_version_2_063-1/lib/Mail/Box/Manage
debian_version_2_063-1/lib/Mail/Box/Mbox
debian_version_2_063-1/lib/Mail/Box/Message
debian_version_2_063-1/lib/Mail/Box/Net
debian_version_2_063-1/lib/Mail/Box/POP3
debian_version_2_063-1/lib/Mail/Box/Parser
debian_version_2_063-1/lib/Mail/Box/Search
debian_version_2_063-1/lib/Mail/Box/Thread
debian_version_2_063-1/lib/Mail/Box/Tie
debian_version_2_063-1/lib/Mail/Message
debian_version_2_063-1/lib/Mail/Message/Body
debian_version_2_063-1/lib/Mail/Message/Construct
debian_version_2_063-1/lib/Mail/Message/Convert
debian_version_2_063-1/lib/Mail/Message/Field
debian_version_2_063-1/lib/Mail/Message/Head
debian_version_2_063-1/lib/Mail/Message/Replace
debian_version_2_063-1/lib/Mail/Message/TransferEnc
debian_version_2_063-1/lib/Mail/Message/Wrapper
debian_version_2_063-1/lib/Mail/Server
debian_version_2_063-1/lib/Mail/Server/IMAP4
debian_version_2_063-1/lib/Mail/Transport
debian_version_2_063-1/tests/13body
debian_version_2_063-1/tests/31fgroups
debian_version_2_063-1/tests/44imap
debian_version_2_063-1/tests/50message
Gunnar Wolf
gwolf at costa.debian.org
Fri Nov 18 20:01:25 UTC 2005
Author: gwolf
Date: 2005-11-18 20:00:22 +0000 (Fri, 18 Nov 2005)
New Revision: 1524
Added:
packages/libmail-box-perl/tags/debian_version_2_060-2/
packages/libmail-box-perl/tags/debian_version_2_063-1/
packages/libmail-box-perl/tags/debian_version_2_063-1/ChangeLog
packages/libmail-box-perl/tags/debian_version_2_063-1/META.yml
packages/libmail-box-perl/tags/debian_version_2_063-1/Makefile.PL
packages/libmail-box-perl/tags/debian_version_2_063-1/debian/changelog
packages/libmail-box-perl/tags/debian_version_2_063-1/debian/rules
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Cookbook.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Index.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Overview.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/test.pl
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/13body/40multip.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/31fgroups/30spam.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/44imap/30flags.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/10stripsig.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/21reply.t
Removed:
packages/libmail-box-perl/tags/debian_release_2_060-2/
packages/libmail-box-perl/tags/debian_version_2_063-1/ChangeLog
packages/libmail-box-perl/tags/debian_version_2_063-1/META.yml
packages/libmail-box-perl/tags/debian_version_2_063-1/Makefile.PL
packages/libmail-box-perl/tags/debian_version_2_063-1/debian/changelog
packages/libmail-box-perl/tags/debian_version_2_063-1/debian/rules
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Cookbook.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Index.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Overview.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pm
packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pod
packages/libmail-box-perl/tags/debian_version_2_063-1/test.pl
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/13body/40multip.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/31fgroups/30spam.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/44imap/30flags.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/10stripsig.t
packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/21reply.t
Log:
Uploaded version 2.063-1
Copied: packages/libmail-box-perl/tags/debian_version_2_060-2 (from rev 948, packages/libmail-box-perl/tags/debian_release_2_060-2)
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1 (from rev 1521, packages/libmail-box-perl/trunk)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/ChangeLog
===================================================================
--- packages/libmail-box-perl/trunk/ChangeLog 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/ChangeLog 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,2712 +0,0 @@
-CHANGELOG of Mail::Box version 2
-
-All changes were made by Mark Overmeer <mark at overmeer.net>, unless
-specified differently.
-
-NOTE: The number of changes and fixes for each release seem large, but
- usually limited to areas which are under development. Mail::Box
- is a huge module, so there is always a lot of activity.
-
-version 2.062: Thu Aug 25 14:07:13 CEST 2005
-
- Fixes:
-
- - New Test::Builder (not delivered with perl yet) changed
- implementation which made tests fail.
-
- Improvements:
-
- - Mail::Message::Head->build() skips undefs.
-
-version 2.061: Wed Jun 22 19:39:09 CEST 2005
-
- Fixes:
-
- - Finally, after many hours hunting, I was able to figure-out that
- a bug in Perl's "require" caused the "foundIn() not implemented
- in Mail::Box::IMAP4" problem (for instance when running the
- tests). Reported by [many people, nice work-around by Niko Tyni]
-
- - Mail::Message::Construct::Read added missing Message-ID without
- angle brackets. Patch by [gjmyers]
-
- - Mail::Transport::Sendmail options to trySend() were ignored.
- [Andriy Gapon]
-
- - Mail::Message::timestamp() didn't trigger load of lazy message.
- [found by Eric Dorland]
-
- - Many IMAP4 fixes and bug-reports by [Raul Dias]
-
- - Mail::Message::Field::Full translated '0' content into 'undef'
- [found by Eugene L Schulman]
-
- - test.pl didn't return <false> on a critical failure. Patched
- by [Tiko Tyni] Now installation attempt should stop on a
- sincere problem.
-
- - test fixes, where newer Test::Harness passes around 'lib'
- differently. Patched by [Tiko Tyni]
-
- - On request of [rt.cpan.org at plan9.de], Mail::Box::File::appendMessage
- explicitly states that it by default doesn't lock the folder. The
- writing is unsafe!
-
- - [Tiko Tyni] provided different solutions to fix the taint warnings
- with the tests, which appeasr with perl 5.8.7. IO::File changed
- its behavior, which is now circumvented in the tests..
-
-version 2.060: Tue Mar 15 22:02:34 CET 2005
-
- Fixes:
-
- - Mail::Transport::IMAP4 crash on getFlags(). Reported by [Tom Allison]
-
- - Mail::Transport::IMAP4 authenticate now uses server's
- reported capabilities. On the path paved by [Tom Allison]
-
- - Fixes installation issue with IMAP4 (I hope) Reported by
- various people.
-
- - Mail::Message::Field::toDate() now works around %z interpretation
- as textual time-zones when there are blanks in the name.
- [aa26 at mail.ru]
-
- - Pod updage for Mail::Box::Dbx [Ralf Valerien]
-
- - open('|-') does a fork, so a failure should result in an exit,
- not a return. Found a few times in Mail::Transport::*, and
- discovered by [Slaven Rezic]
-
- - $msg->send didn't pass the options correctly to the sending
- object. Reported by [Franck Richard].
-
- - Mail::Transport::POP3 did only try APOP in AUTO mode. Found
- by [Markus Spann].
-
- - scripts/mailbox2html used setLabel(), which got replaced by
- label() a long time ago. Reported by [Alain Veylit]
-
- - Mail::Message::Field::Attribute used Mail::Reporter without
- having it as base class. Rewritten to have it that way.
- Reported by [Russell Mosemann]
-
- - Removed the two uses of $& in reg-exps, which slows-down all
- regexp matches in older Perl versions. Patch supplied by
- [jgmyers]
-
- Improvements:
-
- - Documented Mail::Box::Manager::open(authenticate) as
- suggested by [Tom Allison]
-
- - $msg->bounce() without arguments now croaks. [Slaven Rezic]
-
-version 2.059: Tue Nov 30 19:50:42 CET 2004
-
- Interface changes:
-
- - Mail::Transport::IMAP4::flagsToLabels expects new first argument
- 'REPLACE', 'SET', or 'CLEAR'.
-
- Fixes:
-
- - Installer didn't ask for optional Time::Hires
-
- - [Anthony D. Urso] fixed an endless loop in study() for
- fields ending on blanks.
-
- - [Russell Mosemann] found a different problem, in about
- the same line as the previous fix.
-
- - Fixed memory leak in administration of messages in folder.
-
- Improvements:
-
- - $msg->printStructure is less strict on the format of the
- indentation: any white-space in it is sufficient.
-
- - $msg->printStructure(undef) will return the structure as
- string.
-
- - new method Mail::Server::IMAP4::Fetch::printStructure()
- for debugging purposes.
-
-version 2.058: Wed Sep 22 14:44:32 CEST 2004
-
- Interface changes:
-
- - [Andy Maas] rewrote Mail::Box::FastScalar, to boost performance.
- various bodyAsList() methods now prduce ref-arrays. Shouldn't
- affect user programs. Requires Mail::Box::Parser::C v3.006
-
- Fixes:
-
- - [Jason Woodward ] had to wait much too long to get his
- twin-POP open problem solved. Now, only one POP connection
- will be opened. This may speed-up other programs as well.
-
- - [Mike Mimic] foudn that the new INIT block in Mail::Reporter
- did not work well with his web-application. Changed it into
- BEGIN.
-
- - [Mail Minic] Mail::Transport::Exim did not handle strings
- as from address correctly.
-
- - [Anonymous via RT] Use ExtUtils::MakeMaker::prompt() instead
- of own ask() in Makefile.PL, so MailBox can be installed with
- CPANPLUS.
-
- - [aa29] $head->isMultipart did not return boolean in list
- context.
-
- - [DH] removed INIT block from Mail::Reporter, which complains
- in Apache.
-
- - [aa29] Mail::Box::MH->new failed because of initiation order
-
- - pop3 folders do not need (have) a name, but Mail::Box::Manager::open
- required one. Accidentally, sometimes that worked, because $ENV{MAIL}
- was used as default, however, that could cause various problems.
-
- - {Tom Allison] found-out that imap was not autoloaded my the
- Mail::Box::Manager.
-
- Improvements:
-
- - warning message "Folder does not exist, ..." avoided when
- folder is opened for deletion.
-
- - added Mail::Box::Identity::open()
-
- - added Mail::Box::nrMessages() for simplification
-
- - [Alessandro Zummo] showed me that docs about
- "why $head->delete($field) doesn't aways work" were needed.
- It's a nasty reference counting problem.
-
-version 2.057: Thu Aug 26 14:31:34 CEST 2004
-
- Interface change:
-
- - Moved the new Mail::Box::IMAP4::Fetch to Mail::Server::IMAP4::Fetch,
- which is a more logical name: part of a full server implementation.
-
- - Moved the unusable module Mail::Box::Search::IMAP4 over to
- Mail::Server::IMAP4::Search... but still not implemented ;-)
-
- - You have to add (share => 0) to $msg->moveTo if the source message
- can get undeleted in your program (for instance in a user
- application).
-
- - Mail::Reporter->report(...) will return strings without \n. Sporadic
- locations where log() was called with trailing \n are removed.
-
- - Opening a folder which is already open is considered an error (was
- warning) by the manager.
-
- Fixes:
-
- - [Jan Martin Mathiassen] add IO::File to Mail::Box::Dir::Message
-
- - [Torsten Luettgert] found that field labels like '-' where not
- beautified correctly with wellformedName.
-
- - Changed '.' from most preferred folder directory for the manager
- into the least preferred.
-
- - $field->setWrapLength only worked for "fast" fields. Tests in
- tests/11field/40wrap.t
-
- - [Mike Mimic] showed that constructing unstructured "full" fields
- was broken.
-
- - Mail::Box::POP3::delete() will not take any action. Deleting all
- contained messages was not consequent.
-
- Improvements:
-
- - [David A Golden] demonstrated the need for $head->wrap(<size>)
-
- - $folder->coerce($message) will only call MSGTYPE->coerce($message)
- when not a MSGTYPE yet.
-
- - Mail::Box::Message::coerce() could be removed: no-op.
-
- - Reimplemented folder->delete(), which is not reading the messages
- before deletion, but bluntly removes the folder in the most
- Efficient way. You probably want the new option 'recursive'.
-
- - Mail::Box::new(access) now has mode 'd', which speeds up removal
- of folders. Used by $folder->delete().
-
- - Mail::Box::IMAP4 now supports deletion of a folder (untested)
-
- - $folder->copyTo/moveTo and $msg->copyTo can have option 'share'
- which tries to use hardlinks i.s.o. clone() to put a message in
- a different folder. Only available for some M<Mail::Box::Dir>
- folders.
-
- - Mail::Message::clone() now accepts shallow_head and shallow_body
- arguments which avoid deep-cloning.
-
- - Added references to the Netzwert folder type, which got implemented,
- but not released as GPL (yet?)
-
- - Increased the status of the IMAP folder client from alpha to beta.
-
- - New methods
- Mail::Box::Manager::folderdir()
- Mail::Box::Manager::defaultFolderType()
-
- - New methods
- Mail::Box::topFolderWithMessages()
-
- - Moved tests/44imap/40fetch.t to tests/60imap/10fetch.t
-
- - Mail::Box::nameOfSubFolder() now can be used as class method.
-
- - New, specialized folder manager
- Mail::Box::Manage::User manager with user knowledge
- tests in tests/52manager/20user.t
- explanation added to Mail::Box::Manager, about the two kinds
- of managers.
-
- - New classes to administer folders, even when not opened
- Mail::Box::Identity info about (possibly unopened) folder
- Mail::Box::Collection info about groups of folders
- tests in tests/52manager/30collect.t
-
- - New classes to implement parts of an IMAP4 server
- Mail::Server place-holder
- Mail::Server::IMAP4 place-holder
- Mail::Server::IMAP4::List
- tests in tests/60imap/20list.t
-
- - Split tests/10report/10errors.t into
- tests/10reporter/10errors.t and tests/10reporter/20reports.t
-
- - Mail::Reporter::defaultTrace can now set a callback to catch
- each log/trace message. Tests in tests/10reporter/30callback.t
-
- - [chris] Mail::Message::Field::wellformedName() will upper-case
- *-ID as part in the fieldname.
-
- - [M M] tried to user MBMbox->create and expected it to open the
- folder at the same time. Documentation problem: moved the
- method from "constructors" to "internal". Did the same for
- "foundIn".
-
- - Produce an error if people try to build Mail::Box::*
- messages directly.
-
- - Many improvements on User::Identity module. MailBox requires
- version UI 0.90 now.
-
-version 2.056: Sat Jul 31 13:28:29 CEST 2004
-
- Interface change:
-
- - [Wiggins d Anconia] explained that combining MailBox with forks
- may cause non-unique message-ids to be created. To solve this,
- the $head->messageIdPrefix() had to be rewritten. MessageIDs will
- look differently now. [No problems expected for existing programs]
-
- Fixes:
-
- - [Jeff Squyres] silenced warnings by guessTimestamp() and
- recvstamp() when no Date nor Received fields are present.
-
- - [August] Mail::Box->new(lock_wait) option not correctly passed
- to Locker object.
-
- - [Mime Mimic] noticed that a message reply used "sender", not
- "From" addresses when no "Reply-To" field is present. This is
- not according RFC2822. Sender should never be used.
-
- - [Jason Woodward] found a $_ localization error in POP3, which
- could result in "Can't call method "xxx" without a package or
- object reference" errors.
-
- - [Carlos Perez] SpamAssasin's message wrapper method get_header()
- should return all field bodies with a certain name in list context.
-
- - [Jason Woodward] $msg->shortString was broken.
-
- - [Todd Richmond] discovered that un-quoted attribute values
- consumed the semi-colon separator in Mail::Message::Field.
-
- - Content-Transfer-Encoding and Content-Disposition fields were
- ignored when specified with Mail::Message->build(). Now they
- will be applied to the create body AFTER the body is constructed
- based on default rules.
-
- - [Todd Richmond] discovered that Base64 decoding should not be
- done on per line basis, because some lines may not have mod4
- number of characters (especially in virusses). The RFC is not
- clear about it, so... Mail::Message::TransferEnc::Base64 is
- changed (again)
-
- Improvements:
-
- - [Rich Caller] suggested to change blanks in ill-formated
- message-ids into blanks. Apparently, some applications are
- doing that.
-
- - Mail::Message::Field::Unstructured now supportss character-set
- encodings, by request of [Mike Mimic]
-
- - [Mike Mimic] made an unexpected abuse of $head->build(). It is
- now supported that ready field objects can be passed. A warning
- is produced when you accidentally pass field_name => $field_object
- (which should be: field_name => field_content or simply
- $field_object.
-
- - [Mike Mimic] Some link errors in the front HTML documentation page.
-
- - Added $head->printSelected(FILE, patterns) as simple way to
- produce field subsets.
-
- - Added support for label 'passed', which means that the message
- was used for forward/bounce/resend.
-
- - Added Maildir message flag P='passed' (uncommon)
-
- - Changed flag handling implementation in Mail::Transport::IMAP4.
- Tests are in tests/44imap/30flags.t
-
- - $body->dispositionFilename can be used without directory name.
-
- - Attachments auto-discompose as 'inline' for texts and `attachement'
- for binaries.
-
- - Added Mail::Box::IMAP4::Fetch with tests in tests/44imap/40fetch.t
- which provides body/bodystructure/envelope syntax conversions.
-
- - New $field->attributes (to list fields of all attributes) for
- Mail::Message::Field.
-
- - Added description of differences between MIME::Entity::build()
- and Mail::Message::build().
-
- - Mail::Message::Field::Structured can now be used for general
- structured fields with attributes, like Content-Type and
- Content-Description.
-
-version 2.055: Sun May 16 15:41:59 CEST 2004
-
- Fixes:
-
- - [Simon Sozens] reported that IMAPClient was always installed,
- although claiming that it was optional. Now it is really
- optional.
-
- - [Josh Miller] showed Mail::Message::Construct::Reply::replyPrelude
- failed the default situation of no explictly stated destination.
-
- - [Yuval Kogman] suggested to use $CRLF from Socket.pm in Mail::
- Transport::POP3, because it correctly set the content for many
- platforms.
-
- - [Timur I. Bakeyev] spam-flag tested for "yes", but should be
- "^yes\b", by reason of a possible "bayes" name in the same line.
-
- - [Timur I. Bakeyev] ::FieldGroup->attach was broken since 2.051.
-
- - [Timur I. Bakeyev] ::FieldGroup doc improvements.
-
- - [Daniel P. Berrange] found a circular reference which kept
- folders to stay open too long in some circumstances.
-
- - [Roderick A. Anderson] saw complaints about fileLocation() being
- called on message parts. Something is fixed, which may be the
- cause.
-
- - [Miah Gregory] destruct()ing messages in Maildir should not
- delete the message. No message will be automatically flagged
- for deleting when destructed.
-
- - [Paul Makepeace] $msg->send(via) always used sendmail, without
- looking at the value passed with via.
-
- - [Roderick A. Anderson] hit a bug in ::Body::Nested::fileLocation
-
- - [Kees Dekker] Mail::Box::update logged number of new messages,
- although it did not receive that info from updateMessages. Log
- message removed.
-
- - [Kees Dekker] discovered a race-condition when writing a
- replacement folder in Mail::Box::File.
-
- - The probably hundredth attempt to get $msg->send to work smoothly.
-
- - [Gilles] discovered that the charset setting of a body did not
- survive encode(). Content-type fields with text/* mime-types will
- not get charset=us-ascii added automatically.
-
- - [Blair Zajac] typo in Makefile.PL text, and removal of stutters
- in the documentation.
-
- Improvements:
-
- - [Trond Michelsen] needed a way to specify the body type for
- messages which where read with Mail::Message->read.
-
- - You now can add your own spam-fighter fields to the detector
- of Mail::Message::Head::SpamGroup. See method 'fighter'.
-
- - [Roderick A. Anderson] showed that the result value of
- $msg->timestamp needed some more explanation.
-
- - [Kees Dekker] Doc improvements in Mail::Box::Locker
-
- - Easier to start multi-lockers with selection when opening
- a folder:
- $f = $mgr->open($name, lock_type => ['DOTLOCK','FLOCK'])
-
- - [David A Golden] suggested to remove $msg->date, in favor
- of $msg->head->date, which is consistent. When the need arises,
- maybe a new method $msg->date will appear returning some nice
- date object (like a DateTime). But probably that is never
- needed, since there is a $msg->timestamp.
-
-version 2.054: Fri Feb 6 21:52:54 CET 2004
-
- Fixes:
-
- - Reverted the change made in 2.049, which automatically added
- a new-line to a body... a Mail::Message::Body object may
- contain binary data!
-
- - [Phil Hagen] found a typo in Mail::Transport::Qmail, causing
- the display of undisclosed fields (Bcc) when using qmail.
-
- - [Brett Dikeman] showed that $mgr->open sometimes complained
- with a warning when no folderdir was specified.
-
- - [Erik A Johnson] patched Mail::Box->coerce(message) to work
- better with foreign messages.
-
- - [Erik A Johnson] found that Mail::Internet objects where converted
- by the MIME::Entity converter and vice-versa. This does usually
- not cause too many problems because MIME::Entity extends
- Mail::Internet.
-
- - [David Phillips] got an undef warning in POP3 after delete(). Fixed
-
- - [Mike J. Vincelette] reported error in $folder->messages(0, 20)
- The bounds were not checked correctly and slicing with 1..20
- behaves unexpectedly in subroutine scalar context.
-
- Improvements:
-
- - $msg->size returns a value which may be a few percent off the
- real value (depends on the action which follows). The warning
- in the documentation about this has been strengthened after some
- discussion with [Mike Mimic]
-
- - Mail::Transport::Exim takes exim4 binary with preference over
- usual exim MTA, on request by [Mike Mimic]
-
- - [Mitar] Mail::Transport::Sendmail starts sendmail with -ti, not
- -it, which helps exim... either the default sendmail as the
- specialized Mail::Transport::Exim module will work now with exim.
-
-version 2.053: Thu Dec 4 00:13:50 CET 2003
-
- Fixes:
-
- - Installation problem with Mail::IMAPClient.
-
-version 2.052: Wed Dec 3 21:04:45 CET 2003
-
- Fixes:
-
- - Mail::Transport::Send did not pass the options to the various
- trySend() methods. Now $msg->send(to => ...) will be respected.
-
- - [Tim Sellar] fixed the message type default where the Content-Type
- field is empty.
-
- - Corrected some typos in Mail::Box-index, and added reference to
- HTML::FromMail
-
- - 'use' line reshuffling in all test scripts, because Test::Harness
- changed behavior.
-
- - [Matthew Darwin] found double 'Content-Type' fields after build()
- From now on, you can overrule the content-type of the constructed
- message, for instance to 'multipart/alternative' without problems.
-
- - A list of sorted threads could not handle threads starting at the
- same time: only one was listed.
-
- - Reply on a message which lists multiple reply-to addresses
- confused replyPrelude(). Spotted by [Nick Ing-Simmons]
-
- - Mail::Transport::SMTP could not handle illegal sender address.
- Discovered by [Matthew Darwin]
-
- - Mail::Message->build with data => '' failed: contains no lines
- at all, which was not correctly handled. Reported by
- [Matthew Darwin].
-
- - $msg->coerce() does not clear the deleted flag anymore.
-
- Improvements:
-
- - Basic IMAP4 implementation. Included for testing purpose only.
-
- - 'delete' is changed into a full-class label, not a special
- case. This simplified the code on many places. The delete(),
- isDeleted(), and deleted() methods on a message are now
- simply short-cuts for $msg->label(deleted)
-
- - Removed most use of File::Spec from Mail::Box::MH and
- Mail::Box::Maildir, because it consumed considerable time:
- [Anthony D. Urso] reported 20%)
- doing things not required to perform correctly on Unix or
- Windows.
-
- - Ignore sending messages with SMTP when no addresses are specified
- to send the message to.
-
- - Warnings about lacking optional modules is nicer in Makefile.PL
-
- - Added large warning to Makefile.PL when people have the perl
- version (not the XS version) of Scalar::Util installed on their
- system. That breaks everything! The correct version can not
- automatically be reinstalled because the version numbers are the
- same.
-
- - Recent changes (bugs) in Test::Harness required an update of
- the test process.
-
- - test.pl reports the version of some installed modules, to help
- responding to error reports.
-
- - [Anthony D. Urso] supplied a patch to use the Received headers
- to provide a message time-stamp. Mail::Message::Head::Complete
- now contains a ::timestamp() to get the user supplied date (which
- is untrustable in case of spam) and ::recvstamp() which uses other
- means. The Mail::Message::timestamp() will, from now on, prefer
- the date provided by ::recvstamp and use ::timestamp as fallback.
-
- There are other sources to get a good stamp from, for instance
- the MBOX "From " line, but that is not implemented (yet)
-
- - [asta] used $msg->parts, but the doc of the method was ignoring
- the facts that the message/rfc822 and multipart "wrappers" of
- the parts are not returned.
-
- - $folder->current made lazy, so only calculated when used. When
- no message is labeled 'current', then the first not seen is
- returned.
-
- - New method $folder->findFirstLabeled.
-
- - New option Mail::Box::Manager->new(autodetect) limits the set of
- default folder-types in the folder type autodetection attempt.
- Requested by [Nick Ing-Simmons]
-
- - The HTML manual now also indexes NOTICE log messages. Not all
- NOTICE messages are described yet.
-
-version 2.051: Mon Nov 3 16:16:09 CET 2003
-
- Fixes:
-
- - [Tim Sellar] example/build.pl omission: ::Body->new(type =>
- should be ::Body->new(mime_type =>
-
- - [Lutz Gehlen] bumped into a mistake in the (not finished)
- ::Field::Full code: the class of unstructured fields was
- composed improperly.
-
- - study()ing multi-line fields produced an improper field
- names.
-
- Improvements:
-
- - [Matthew Walker] added the distiction between CommuniGatePro
- and CommunGate software to the Mail::Message::Head::ListGroup
- mailinglist detector.
-
- - [Tim Sellar] suggested to ignore undef values in build(),
- which will simplify the code of the user.
-
- - Added detector for MailScanner spam groups.
-
- - new Mail::Message::Head::SpamGroup::spamDetected() and
- Mail::Message::Head::Complete::spamDetected()
-
- - Mail::Message::Replace::MailInternet::read() distinguishes
- between Mail::Message->read() and $mailinternet_object->read
-
-version 2.050: Tue Sep 30 18:27:11 CEST 2003
-
- Fixes:
-
- - An (unintended) change of behaviour in Text::MagicTemplate
- (which is used to produce the POD and HTML) made all produced
- manuals exactly the same.
-
- Improvements:
-
- - [Matthew Walker] contributed various improvements to the ListGroup
- detection and documentation. Detection for Listserv software
- was added, and rfc2918 should have been rfc2919.
-
- - [Matthew Walker] made test/Tools::copy_dir() skip directories.
-
- - Implementation of Mail::Message::Replace::MailInternet and
- ::MailHeader, as drop-in replacements for Mail::Internet and
- Mail::Header. Very alpha! not tested yet!
-
-version 2.049: Mon Sep 29 13:32:47 CEST 2003
-
- Fixes:
-
- - [Liz Mattijsen] Makefile.PL requires IO::Handle in some
- environments.
-
- - [Terrence Brennon] found a doc and a code mistake in
- example/strip-attachement.pl
-
- - [Ron Savage] showed that the Text::Autoformat module produces
- different output on different machines, caused by breaking
- words. Breaking now disabled the for the tests, so test
- should result in the same everywhere.
-
- - Some Mail::Transport::* senders did not pass-on the Bcc field
- to their application. Reported by [Phil Hagen].
-
- - [Stefan Wolfsheimer] and [Mark Scarton] report a missing $ in
- ::ResentGroup, which broke the "delivered-to" field in resent
- groups.
-
- - [Jason Woodward] reported that there were still some problems
- with $msg->forward(). Hope to have fixed them, this time.
-
- - $msg->send now really has a default which will be loaded
- automatically as well.
-
- - When you try to open the same folder twice, using the manager
- (as you should), the second time will fail. This is needed,
- because there are too many complications, like locking.
-
- Improvements:
-
- - Mail::Box::Parser::Perl used $sep =~ m/^From / to recognize the
- MBOX separator. Now it uses $sep eq 'From ', which is faster.
-
- - Mail::Message::Body::new(data) now corrects scalars values
- which do not end on a "\n". Convinced by [Mike Mimic]
-
- - Object::Realize::Later v0.14 required
-
- - Mail::Box::File::updateMessages() implemented, for instance for
- $mbox->update calls. Test in tests/40mbox/80update.t
-
- - Maildir subfolder names can start with a dot, as reported by
- [Paul Simons].
-
- - Ability to add options to the command-line of sendmail when
- started as MTU. Saw this need in a script of [Adam Augustine]
-
- - Test-script of MIME::Entity conversion purges the M::E objects
- after being used, otherwise trashing files are left in the tests
- directory.
-
- - Added Mail::Message::Body(::Encode)::dispositionFilename and
- Mail::Message::Body::write() which will help to export data
- found in a message(-part) to the file-system.
-
-version 2.048: Tue Aug 26 19:50:06 CEST 2003
-
- Fixes:
-
- - [Jason Woodward] reported that reply on multiparts (with only
- one part) failed. For this release, forward() has been rewritten.
- reply() may be the victim for the next release.
-
- - [Joe Junkin] reported a problem to send messages where the
- body is not in a temporary file via SMTP.
-
- - Added required Mail::Message::Wrapper::SpamAssassin method
- get_pristine_header()
-
- - [Simon Cozens] demonstrated that converting MIME::Entity objects
- into Mail::Message's lost content related headers. This required
- a small redesign on when data is copied from header to body and
- vice versa.
-
- - Mail::Message::Body::Multipart;;stripSignature stripped all
- but signatures :(
-
- - requires Test::Harness which defines _run_test_scripts, so
- increased the required VERSION. [Liz Mattijsen]
-
- - [Steven Benson] found-out that manager objects where kept
- alive too long.
-
- - [Rob Holland] reports that a '=' is valid in a Maildir filename,
- and supplied a patch.
-
- - [Joe Junkin] found another spot where <$body> was used on a
- non-GLOB. In Mail::Transport::SMTP, this time.
-
- Improvements:
-
- - Added Mail::Message::Head::FieldGroup as base class for
- Mail::Message::Head::(List|Spam|Resent)Group.
-
- - Reimplemented Mail::Message::Head::ResentGroup to be based on
- a MMH::FieldGroup.
-
- - Added Mail::Message::Head::SpamGroup to detect/produce/remove
- sets of header fields which relate to spam detection software.
- Tests in tests/31fgroups/30spam.t
-
- - Moved detection of mailinglist type in Mail::Message::Head::Listgroup
- from method type() to from().
-
- - Added Mail::Report::addReport, to merge reports from one object
- into an other, require by [Matthew Lockner]
-
- - [Matthew Lockner] wished to able to get parser errors back on
- Mail::Message->read. These errors are now copied from the parser
- object into the message.
-
- - Added Habeas-SWE (Sender Warranted E-mail) as abbreviation in field
- names which is always in caps, on request by [Ronnie Paskin]
-
- - Moved 20resent.t and 40list.t from tests/12head to tests/31fgroups.
-
- - New methods Mail::Message::Head::Complete::removeContentInfo(),
- Mail::Message::Body::contentInfoFrom(head) and ...To(head)
-
- - As result of an extended discussion with [Simon Cozens], it
- seems that object-by-object conversion between MIME::Entity
- and Mail::Message objects will keep on producing problems.
- Therefore a stringify-reparse strategy is used from now on.
- Mail::Message::Convert::MimeEntity is very straight-forward
- now, but a less efficient.
-
- - [Jason Woodward] convinced me to implement
- Mail::Message::forward(include => 'ENCAPSULATE'), which adds
- the source message as message/rfc822. The whole forward
- implementation has been re-implemented and re-documented.
-
- - [Kees Dekker] was (understandably) confused by the explanation
- of $folder->isModified() This has been improved.
-
-version 2.047: Thu Aug 7 23:59:53 CEST 2003
-
- Fixes:
-
- - For MBOX and POP3, delayed header will be read before labels()
- or label() return the values, because only reading will cause
- the [X-]Status fields to be parsed into labels.
-
- - Tests are now suitable for perl5.8.1
-
- - [Kees Dekker] with Solaris and perl5.8.1 showed me that
- Mail::Box::Locker::POSIX was so broken that its tests worked
- on other versions :(
-
- Improvements:
-
- - Moved all questions about optional modules from test.pl to
- Makefile.PL. Hope for a cleaner installation.
-
- - On request by [Jason Woodward], POP3 received messages will
- get their Status and X-Status fields processed. POP3 has no
- other means to pass-on status information, although not all
- servers support these fields.
-
- - The library should now be taint-safe: all test-scripts now run
- in taint mode!
-
- - The POP3 test-scripts now share common code in Tools.pm
-
- - New release for Mail::Box::Parser::C (as separate package)
- which ignores message lines starting with 'From ' as
- separators in broken MBOX folders (like mutt produces).
-
- - Added Mail::box::Parser::C to the list of optional modules.
-
- - Refolding and Mail::Message::Field::AddrGroup will produce
- the address strings in alphabetic order, to get a reproduceable
- result (required for 5.8.1)
-
- - Disabled detection of folder "changed during access", until
- all folder types support 'update()'.
-
-version 2.046: Thu Jul 31 12:25:47 CEST 2003
-
- Fixes:
-
- - [Kees Dekker] found that HPUX mangles %z int textual timezone,
- so Mail::Message::Field::toDate() has changed again. Quite
- complex now.
-
- - [Kees Dekker] fixed a missed test for undef in
- Mail::Message::Head::ListGroup::display().
-
- - [Kees Dekker] reported a problem in tests/42maildir/20write
- which was caused by a missing $folder->close;
-
- - [Blair Zajac] & [Kees Dekker] signalled that User::Identity
- and URI are prerequisits now.
-
- - [Kingpin] Wrong quotes in warnings and a typo, in
- Mail/Message/Body/Encoding.pm
-
- - $msg->send was showing lines not to be disclosed by default,
- which is wrong.
-
- - [Jan Stapel] reported prints of "GLOB()"s where text was
- expected. This was a new bug in Mail::Message::Body::File
-
- Improvements:
-
- - [David Coppit] has a short list of improvements in handling
- blank lines at the end of messages and message parts, which
- will decrease the differences between a message read and then
- printed.
-
-version 2.045: Tue Jul 29 20:23:30 CEST 2003
-
- Fixes:
-
- - A lot of files were missing from the distribution because OODoc
- had a bug.
-
- Improvements:
-
- - Object::Realize::Later documentation is now part of MailBox's
- html output too. Join the club!
-
-version 2.044: Tue Jul 29 13:52:32 CEST 2003
-
- Interface changes!!
-
- - Mail::Message::rebuild() tags where inconsequently named. Now
- remove_html_alternative_to_text => removeHtmlAlternativeToText
- text_alternative_for_html => textAlternativeForHtml
-
- - [Anthony D. Urso] hinted that opening a Maildir folder should
- not automatically move messages from 'new' to 'cur'. Added a
- label 'accepted' to control this.
- See Maildir::new(accept_new) which must be set to get the
- same behavior as before.
-
- - Mail::Box::Maildir::updateMessages was incorrect: inconsistent
- behavior with other updateMessages(). Removed for now.
-
- Fixes:
-
- - Some print()s did not distriguish between GLOBs and IO::Files
-
- - [Martin Thurn] detected a problem with the call of
- Mail::Box::FastScalar in Mail::Box::POP3
-
- - [Yuval Kojman] fixed Field::toDate() on systems without glibc.
-
- Improvements:
-
- - Mail::Message::new(labels) did not work, but was not described
- either.
-
- - Moved all modules to lib/, which removes the need for a nested
- Makefile.PL, improperly handled by new gnu-make/ExtUtils::MakeMaker
- combinations.
-
- - added UserIdentity to the HTML documentation tree.
-
- - added list detector Mail::Message::Head::ListGroup based on
- information collected in Mail::ListDetector.
- Tests in 12head/40list.t
-
- - added Mail::Messsage::Head::Complete::listGroup()
- Mail::Messsage::Head::Complete::addListGroup()
- Mail::Messsage::Head::Complete::removeListGroup()
- Mail::Messsage::Head::Partial::removeListGroup()
-
- - added example 'smaller.pl' to demonstrate how to get rit
- of selected headers (and how much you gain by it)
-
- - added description how to reduce the size of headers by removing
- groups of fields.
-
- - added method $folder->size which estimated a folder size, but
- may be slow.
-
- - debugged and tested Mail::Message::Field::Addresses,
- Mail::Message::Field::Address, and Mail::Message::Field::AddrGroup,
- with tests in tests/14fieldu/51addr.t
-
- - Added Mail::Message::Field::URIs with tests in
- tests/14fieldu/52uris.
-
- - MailBox now depends on the URI distribution
-
- - Move Mail::Box::Message::shortString and ::shortSize to
- Mail::Message.
-
- - Simplified Mail::Message::sender().
-
- - Rewrote Mail::Message::Head::createReceived to work on headers
- which are not inside a message.
-
- - "make test" will produce some more text, and permits skipping
- all tests for fast installation.
-
-version 2.043: Thu Jul 10 10:18:51 CEST 2003
-
- Fixes:
-
- - [Greg Matheson] small doc-fix for Mail::Message::Body::Construct
- foreachLine().
-
- - [Wiggins d'Anconia] time generated by strftime left %z on non-gnu
- systems. On those systems, a work-around is made using
- Date::Format.
-
- - appendMessage in Mail::Box::File coerces message into the
- correct sub-class.
-
- - Mail::Message::Head::Delayed is not empty.
-
- - Mail::Message->read will strip the status fields from the header
- by default, for security considerations.
-
- - Mail::Message->bounce will not interpret status fields.
-
- Improvements:
-
- - labelsToStatus and statusToLabels are now only implemented for
- file based folder types, like mbox.
-
- - Implemented Mail::Box::Message::Destructed with a
- Mail::Box::Message::destruct(), Mail::Message::destruct(), and
- Mail::Message::Part::destruct(), tests/50mesage/60destruct.t
- to forcefully free-up most memory used by a message.
-
- - Added Mail::Box-Index, the documentation index.
-
- - Extended documentation about
- . various ways to access header field data
- . message labels (flags)
- . various class relations
-
- - Now requires Object::Realize::Later version 0.12
-
- - [Todd Richmond] contributed Mail::Box::FastScalar, which is
- a replacement of IO::Scalar... but faster. It should be a
- separate module, but for now it has a place.
- FastScalar is faster and does not leak, as its brother.
-
- - Removed last uses of IO::ScalarArray, because it seeks awfully
- slow.
-
- - Added Mail::Message::study()
- Mail::Message::Head::study()
- but it is not usuable yet.
-
-version 2.042: Tue May 20 14:32:05 CEST 2003
-
- Fixes:
-
- - Added message-id to the wrong side of the Reference field
- in reply() and forward(). Fix by [Mike Mimic]
-
- - [Tassilo v Parseval] reported an error when HTML::FormatText
- was not installed.
-
- - [Alex Liberman] found that searching nested messages failed,
- because they were treated as multiparts.
-
- - [Todd Richmond] demonstrated that multiparts contained circular
- references, which increased memory consumption. Not hard too
- fix.
-
- Improvements:
-
- - Implemented Mail::Box::Dbx to read Outlook Express files. Tests
- in tests/45dbx/*
-
- - Implemented Mail::Message::Head::Partial, which will contain
- a subset of headers without knowing where to find the rest
- of it. ::Subset knows where to get the rest. Tests in
- tests/12head/30partial.t
-
- - $head->removeFields(), $head->removeFieldsExcept() and
- $head->removeResentGroups to free up memory. This "upgrades" a
- complete header into a partial header.
-
-version 2.041: Thu May 8 14:05:32 CEST 2003
-
- Fixes:
-
- - [Supriya Jagadeesh] showed that reply(include => NO) did not
- work. Apparently, no-one used it before.
-
- - [Shagren] showed a patch to avoid an locale based date field
- to be produced, where rfc2822 requires an English format.
- As change, the locale based parts of strftime are avoided.
-
- - sendmail and started with extra -i flag, to avoid stop at lines
- in message which only contain a dot. Spotted by [Tim Sellar]
-
- - [Bill Moseley] detected that examples/reply.pl called an
- non-existing quotePrelude(), which should have been replyPrelude().
-
- - [Dimitris Glynos] Mail::Message::Field::Full:_decoder() should
- decode, not encode :(
-
- - [Dimitris Glynos] Mail::Message::Construct::reply() did not
- use the subject of the sender to create a new answer.
-
- Improvements:
-
- - Translated all docs to use OODoc. Many small fixes in the docs
- were the result.
-
- - Removed $folder->clone, because it implemented the same as
- $folder->openRelatedFolder, which has a much better name to
- describe the action performed.
-
- - Rewrote documentation for Mail::Box::scanFromMessages(). It now
- also accepts a timespan as value.
-
- - Documented all available overloading (which is quite important).
-
- - Mail::Message::Construct has been taken apart in multiple
- Mail::Message::Construct::* packages because it grew too
- large and it simplifies including examples.
-
- - Added Mail::Message::Construct::Rebuild, which can modify
- existing messages. Very slick!
-
- - Mail::Message::Part's get an empty header by default.
-
-version 2.040: Mon Apr 14 15:48:54 CEST 2003
-
- Fixes:
-
- - Mail::Transport::Exim could not find destinations(). Move that
- method from MT::SMTP to MT::Send. Thanks to [Greg Matheson].
-
- - [Dimitris Glynos] fixed one more place where a failed login
- for POP3 caused Mail::Box to hick-up.
-
- - [Dimitris Glynos] made Mail::Box care about succesfull reading
- of messages.
-
- - [Shagren] reported that the CRLF changes on POP3 did break
- POP3 under Windows. The problem is that the IO::* modules
- (like IO::Socket) do not implement BINMODE: you can not set
- them in 'raw' mode. Implemented a work-around.
-
- - [Steve Lewis] explained why information about a body was not
- preserved over a clone(). He provided a patch.
-
- - [Todd Richmond] found-out that Content-Type lines sometimes
- doubled. The reason behind this was that header and body
- shared the same field structures, which blocked the auto-
- destruction of header lines which were obsoleted: the old
- Content-Type line in the header was kept alive by the body.
-
- - [Michael D Richards] reported another corruption in construction
- of binary attachments. Fixed that as well.
-
- Improvements:
-
- - [Alexander Bauer] reported a very slow Mail::Message->read
- for large messages. This was due to IO::ScalarArray (being
- extremely slow in seeks), which now is replaced by IO::Scalar.
-
- - Do not use eval{binmode $fh}, but carefully check whether the
- $fh can handle binmode before calling it in the parser.
-
- - Remove newlines from header field data which is passed as
- objects. When they stringify with newlines included, this
- disturbes folding.
-
- - Added comments on how (not) to change the body of a bounced
- message. Do never do it, but if you have to then...
-
- - Mail::Message::Construct::reply handles nested messages and
- binary files better to construct an answer.
-
-version 2.039: Sun Mar 30 17:34:43 CEST 2003
-
- Fixes:
-
- - [Phil Holden] supplied a patch to Mail::Transport::POP3 to
- send CRLF line terminations, and improvements on handling
- the welcome message.
-
- - [Mike Cudmore] found a bug which caused a call to parts() on
- lazy nested messages.
-
- - [delepine at u-picardie.fr] patched conversion of Mail::Message
- to Mail::Header in Mail::Message::Convert::MailInternet.
-
- - [Sebastian Willert] showed that multipart/anythings were
- always changed into multipart/mixed things after an
- operation on them, like attach.
-
- - [Dimitris Glynos] found that a log-in failure for POP3 tried
- to establish the connection twice.
-
- - [Michael D Richards] reported corruption in construction of
- binary attachments, which was caused by buildFromBody always
- converting CRLF -> LF (on Unix). Removed this.
-
- - [Christoph Dahl] reported that header field attributes with
- blanks around the '=' where not detected. Some flexibility
- added.
-
- - [Eugene Eric Kim] reported the problem where incorrect in-reply-to
- or References fields could cause thread cycles which where not
- usuable. Cycles will be ignored.
-
- Improvements:
-
- - [Marty Pauley] supplied a patch to use MIME::QuotedPrint for
- Mail::Message::TransferEnc::QuotedPrint. Originally, the
- module implemented en/decoding by itself in Perl, however
- since MIME::QP is a code module, the advantages disappeared.
-
- - Mail::Message::Body::Multipart's preamble and epilogue now
- accepts strings, so you so not have to create a body for them
- explicitly.
-
-version 2.038: Wed Feb 26 16:20:03 CET 2003
-
- Fixes:
-
- - It was not possible to remove POP3 messages with $msg->delete
- noticed [Jason Woodward]
-
- - An empty header field could still be a cause of problems. They
- were removed from the header, with a warning. Now changed the
- warning into a notice message, and the fields are kept. A fix
- and test by [Marty Pauley]
-
- - POP3 messages where not readible when the server does not support
- UIDLs. Silly bug, solved by [Andreas Fitzner].
-
-version 2.037: Sun Feb 23 14:53:50 CET 2003
-
- Fixes:
-
- - MBOX write policy INPLACE contained serious bugs. Upgrade
- adviced if you use it (not the default) reported by [Michael Reece],
- but by [Greg Matheson] before.
-
- - Mail::Box::Manager::decodeFolderURL() return ref hash instead of
- hash values. Patched by [Benjamin Pineau]
-
- - MB::Mbox::Message::print() did not encapsulate 'From ' lines.
- Behavior has changed: print() will only simply print head and
- body, and write() will encapsulate a message as required for the
- folder. Problem detected by [Nik Clayton]
-
- - For retreival of addresses, the whole field contents of an
- address field is used, not only till the first semi-colon.
-
- - [Melvyn Sopacua] reported an accidental call to 'confess', which
- was a left-over of the debugging process. It triggered for an
- MH index, when a field was requested which was not defined.
-
- Improvements:
-
- - Many warning and error message have changed a little to be
- more consistent or (in most cases) much clearer about the
- meaning.
-
- - added isModified() methods as alternative to modified(), which is
- more consistent with other method names.
-
- - added isDeleted() methods as alternative to deleted(), which is
- more consistent with other method names.
-
- - [Benjamin Pineau] found the cause of an enormous slow-down while
- parsing large messages: tell() and seek() in IO::ScalarArray
- objects. With a small patch, everything goes smooth and fast:
- use getpos() and setpos()....
-
- - Translated Mail::Message:TransferEnc::Base64 to use MIME::Base64,
- now MIME::Base64 is a core module for 5.8.0. The old algorithm
- was not able to handle too long encoded lines, as [Chris
- Kungfoohampster] discovered.
-
- - Testfile 40mbox/30delete.t should renamed to 40mbox/30delay.t
- Testfile 40mbox/70inline.t should renamed to 40mbox/70inplace.t
-
-version 2.036: Thu Feb 13 18:18:29 CET 2003
-
- Fixes:
-
- - More attempts to protect $_ against eval's which apparently
- change it in ./test.pl. Hope the installation is smooth now.
-
- - CPAN::install can come back to a different file-system location
- when installation is completed. Try to restore that in test.pl.
-
- - [Tom Allison] discovered that a folder opened for 'a' does
- not work with addMessage(): the messages where not read.
-
- - [Simon Cozens] found two problems in $msg->parts($coderef) and
- $msg->parts('ACTIVE'|'DELETED') on non-folder messages.
-
- - [James Sanford] found that conversion to MIME::Entity did not
- work for nested multiparts. Mail::Message::Construct::lines()
- was not context sensitive (now returns ref-array in scalar context),
- and detection of multipart was wrong in case of nested multiparts.
-
- - [Karen Craven], [Tom Allison] and [Michael D Richards] where right
- with their explanation why message-ids were created incorrectly.
-
- Improvements:
-
- - Mail::Transport now also supports 'postfix' as alias for
- 'sendmail', thanks to a question by [Tom Allison].
-
- - Tests for unicode fields are moved to their own directory,
- tests/14fieldu, which is not considered critical on failure.
-
- - Copyright set to 2001-2003
-
- - [Todd Richmond] requested to keep the folding of fields when they
- are added to a header. Field::setWrapLength() has been changed not
- to re-fold already folded fields.
-
- - As explained by [Eric Wheeler], spam and virus filters do not like
- the message parser to stop on broken headers. Therefore, a new
- option Mail::Box::new(fix_headers) is created. This option progresses
- into a few other classes, and should be usable with all folder types.
-
-version 2.035: Fri Jan 24 20:41:23 CET 2003
-
- Fixes:
-
- - Mail::Reporter::defaultTrace() now accepts names as well.
- Recieved a fix by [David A Golden]
-
- - Mail::Message::Field::attribute() now returns (undef) when
- the attribute is not defined. Patched by [Marty Pauley]
-
- - [Jost Krieger] found that getline() in ::Base64 does catch
- the read line in $_, which could be expected reading its doc.
-
- - message/rfc822 within delayed multiparts are now triggered
- correctly.
-
- - [Beirne Konarski] found out that eval{} in test.pl sometimes
- modified $_, which broke installations.
-
- - Headers from body where lost in multipart. Reported by [Nik Clayton].
-
- Improvements:
-
- - {Greg Matheson] contributed Mail::Transport::Exim, to send
- email using an external exim client.
-
- - Added Mail::Transport::new(executable) which offers you a
- way to explicitly specify where the transfer agent is located.
-
- - Changed Mail::Transport::SMTP::init(debug) option into
- smtp_debug, to show that it is not Mail::Box which is being
- traced, but the low level SMTP drivers only.
-
- - Added some example options to examples/send.pl, which showed
- some inconveniences of Mail::Message::send(), which have been
- solved.
-
- - [David A Golden] wrote Mail::Classification based on Mail::Box,
- which is a learning spam filter. References added to README.FAQ
-
- - Doc-fix in Mail::Message::from/to/cc/bcc() by [Greg Matheson].
-
- - Renamed Mail::Message::Field*::folded_body() and ::unfolded_body()
- to ::foldedBody() and ::unfoldedBody(), to be consequent with
- the method naming of Mail::Box.
-
- - Mail::Message::TransferEnc::Base64::_decode_from_lines() does
- not warn anymore in case of a line which only contains padding.
- Found by [David A Golden]
-
- - Mail::Messsage::Field::stripCFWS() now understands escaped quotes
- and parenthesis. Parenthesis within quotes are not seen as comment
- anymore.
-
- - Implemented Mail::Message::Field::Full with many tests in
- tests/11field/40full.t. Implements RFC2047.
-
- - Implemented Mail::Message::Field::Attribute with many tests in
- tests/11field/41attr.t It implements field attribute understanding
- as defined in RFC2822 and RFC2045, with the extensions about
- parameter encoding and continuations as defined in RFC2231.
-
- - Implemented Mail::Message::Field::Unstructured, as first
- category of fields. Tests in test/11field/42unstr.t
-
- - Added Maildir quotas to the long wishlist. Suggested by
- [Brian Grossman]
-
- - On request by [David A Golden], Mail::Reporter now returns
- Scalar::Util::dualvar values where the use may wish to know
- the numeric value as well as the string representation of an
- error level. Tests added in tests/10report/10errors.
-
- - Modified examples/grep.pl you unix-grep syntax
-
- - Mail::Box::Search now takes nested messages under the flag of
- multiparts (search or not to search, that's the question)
-
- - Mail::Message->build and buildFromBody now accept a pre-filled
- header.
-
- - Mail::Message->build accepts a new option 'files', which is
- an abbreviation for multiple 'file' options.
-
- - Mail::Message::TransferEnc::decode() now als decodes chars above
- 127 and tab. Escape characters are still not decoded for safety
- reasons. On request by [Marty Pauley]
-
-version 2.034: Thu Jan 2 15:08:56 CET 2003
-
- Fixes:
-
- - When a message is added to a folder, it shall be flagged as
- modified, otherwise the message is not written when the folder
- closes. Problem discovered by [Greg Matheson].
-
- - Mail::Message->read() did not inspect the status fields.
- Spotted by [Simon von Janowsky]
-
- - When an empty field is folded, at least a new-line must be
- produced.
-
- - Mail::Box::File::appendMessage() doesn't need to open the folder
- locked: appending should be a safe action. Reported by [Greg Matheson].
-
- - multipart->lines accidentally did not include the headers of the
- parts. Spotted by [Constantin Khatsckevich]
-
- Enhancements:
-
- - Resent Groups in the header now also support Delivered-To.
-
- - Renamed some toString() methods to the more consistent name string(),
- without breaking backwards compatibility.
-
-version 2.033: Thu Dec 12 11:23:42 CET 2002
-
- Fixes:
-
- - [Greg Matheson] found a truncate() difference between Windows and
- UNIX: fewer errors for the Windows test.
-
- - [Greg Matheson] solved problem with mbox write-replace related to
- \n -> CRLF translations vice versa. The number of problems for
- Mail::Box on Windows decreased even furter.
-
- - Some improvements of the tests.pl scripts, related to the
- installation of optional modules when Term::ReadKey is not
- installed.
-
- - Mail::Message::Part::parent() 4th try to solve... on some places,
- the body was returned, in other places the surrounding message.
- This was partially caused by the confusion created by the name
- of the method. Therefore, the method is renamed to "container"
- which returns a Mail::Message::Body::Multipart or ::Nested.
-
- - appendMessage requires access => 'a' to the folder. [Greg Matheson]
-
- - Parts of multiparts which do not contain any header lines were
- stopping the parser to look for more parts: all the rest was put
- in the epilogue of the multipart. Detected by [Melvyn Sopacua]
-
- - Mail::Message::Part's can contain empty bodies. Spotted by
- [Melvyn Sopacua]
-
- - Hopefully, the installation of option modules has smoothened
- a little.
-
- - Mail::Box::File::appendMessage() didn't check success for
- opening a folder. Reported by [Melvyn Sopacua]
-
- - default for $mgr->appendMessage was to create an MH, not an mbox
- folder.
-
- Improvements:
-
- - tests/55locking/20flock excluded for Windows: no flock implemented.
-
- - Added examples/strip-attachments.pl by [Pjotr Prins]
-
- - Mail::Reporter::AUTOLOAD will produce a class name in the error
- message if a class method failed... The blank is not very
- informative.
-
- - "create" is now a valid option for Mail::Box::(Mbox|MH|Maildir)::new,
- which required some changes in the Mail::Box::Manager as well.
-
-version 2.032: Fri Nov 29 19:59:47 CET 2002
-
- Fixes:
-
- - Enforce Text::FormatPS version 2.01, because the output format
- has changed. Scripts adapted to the new layout. [Blair Zajac]
-
- - Required Term::ReadKey for installation. [Greg Matheson]
-
- - Silly problem with lock-filenames... detected by [Blair Zajac]
-
- - $part->toplevel did not return a message, but a body. Detected
- by [Pjotr Prins]
-
- - $part->delete did not seem to have an effect... silly bug caused
- this problem, which was spotted by [Pjotr Prins].
-
- Improvements:
-
- - Removed dependency from Term::ReadKey.
-
- - $msg->printStructure shows parts which are flagged to be deleted.
-
-version 2.031: Mon Nov 25 14:50:23 CET 2002
-
- Fixes:
-
- - Mail::Box::Locker::new(file) has now comparible meaning for DotLock
- and flock locking methods.
-
- - Removed Mail::Box::Locker::POSIX from Windows options: not all fcntls
- present.
-
- Improvements:
-
- - MBOX handling of the parser much simplified.
-
- - [Blair Zajac] is still nitpicking about close()...
-
- - $Mail::Message::crlf_platform added as central resource for all
- modules which have to know.
-
- - Mail::Message::Body::File::size() compensates for "superfluous" CRs
- in the file's line-endings.
-
- - Messages in test-scripts are compared by a special function which
- permits differences in Content-Length for platforms with CRLF
- (Windows)
-
- - Message sizes in thread-dumps within test-scripts are ignored by
- a special function, but only on CRLF platforms like Windows.
-
- - Some code has moved from Mail::Box::Parser::Perl into
- Mail::Box::Parser Cannot break existing code.
-
- - Quite some code has moved from Mail::Box::File to Mail::Box::Mbox.
- Cannot break existing code.
-
- - Added Mail::Box::Search::IMAP as place-holder for a dedicated (remote)
- search implementation using the IMAP protocol features.
-
- - Added Mail::Transport::IMAP, Mail::Box::IMAP, and
- Mail::Box::IMAP::Message with some pseudo-code how IMAP folders
- could be handled.
-
- - Improved the docs on ::POP3
-
- - Mail::Box::POP3 now refuses addMessage() and addMessages() with nice
- errors. When someone implements the writing extensions to POP3, this
- may change. update() still has to be implemented
-
- - Multipart message will also have a Content-Length in the header.
-
- - Mail::Message::Convert::MailInternet requires Mail::Message
- [Adam Byrtek 'alpha']
-
- - New version of tests/POP3/server, which can be used to test
- the POP3 client against some weird POP3 servers. [Liz Mattijsen]
-
- - Upgraded Mail::Box::write() to allow mid-life writes of files.
-
- - Removed option Mail::Box::write(keep_deleted), because it is
- unsafe.
-
- - Replaced all uses of FileHandle by IO::File.
-
- - test scripts ask for optional packages to be installed. The user
- will be asked per package... more info about it has been added,
- for instance the option Mail::SpamAssassin.
-
-version 2.029: Mon Nov 4 21:06:30 CET 2002
-
- Fixes:
-
- - Empty header lines where printed without trailing new-line. This
- was spotted by [Blair Zajac] soon after the release which broke
- it: do not use 2.028
-
- - Some extra checks for the return-code of close(), added as wished
- for by [Blair Zajac]
-
-version 2.028: Mon Nov 4 15:08:57 CET 2002
-
- Fixes:
-
- - [Greg Matheson] decovered a small bug in the 10field test-script.
- After being corrected, it showed a mistake in MM::Field with folding
- very long words in field bodies. This bug was corrected.
-
- - Fixed a parser bug in MBOX, which showed an error when closing
- a folder without explicit write before it. Reported by
- [David A Golden]
-
- - [Blair Zajac] reported that the multipart boundary was not
- added to the Content-Type field.
-
- - [Sebastian Krahmer] adviced me to put a very strong warning against
- the use of mailx (Mail::Transport::Mailx), which is accepted because
- the funarability has been proven: mailx is exploitable insecure.
-
- - [Shagren] hit a POP3 server which does not add a blank at the end
- of each message. The last line of his message body was removed
- because Mail::Transport::POP3 did not anticipate that.
-
- Improvements:
-
- - In joint forces with [Greg Matheson], some small improvements have
- been made in the mailbox parser for Windows... But it is still
- far from perfect.
-
-version 2.027: Sat Oct 26 08:52:32 CEST 2002
-
- Fixes:
-
- - Lazy Mail::Box::Dir::Message::print() (mbox and mh messages)
- used File::Copy's copy(), which cannot handle IO::Lines file
- objects as destination. Replaced by own implementation.
- [Tony Bowden] reported this problem, and fix my patch as well.
-
- - Mail::Box::find() was not able to get the id of the first
- lazy-loaded message.
-
- - The empty line which preceeds a separator in mbox folders
- was accidenitally included in the body of the message before
- it (this was quite hard to fix) [Albert Schueller]
-
- - Mail::Message::Body::Multipart::foreachComponent(), used by many
- multipart methods, created Mail::Message i.s.o. Mail::Message::Part
- objects. This is not right: especially encode() and decode()
- where frustrated by it. Same for nested messages. Signalled by
- [Mike Cudmore]
-
- Improvement:
-
- - Mail::Transfer::POP3 implemented by [Liz Mattijsen].
-
- - [Shagren] found the first reason to modify Mail::Transfer::POP3
- a little.
-
- - Mail::Box::POP3 and Mail::Box::POP3::Message should be working
- now. Mo Tests are included.
-
- - Reorganized the tests. This is needed, because the number of
- testscripts grew too long for Windows! Besides, I need more
- control over installation of optional packages.
-
- - All folder-types now have a type() method.
-
- - All folder-types now have a url() method, which result van be
- used to specify a complex folder name to the Mail::Box::Manager.
-
- - [David Favor] asked to show the filename when an illegal header
- is detected by the parser.
-
- - Rewrote Mail::Box::scanForMessage() in search of a bug reported
- by [Shagren] concerning Mail::Box::find() But it was not the
- cause. Still, the method has improved.
-
- - Changed split /(?<=\n)/ into split /^/ everywhere.
-
-version 2.026: Mon Oct 7 23:39:07 CEST 2002
-
- Fixes:
-
- - Default package for $msg->send was broken. Reported by
- [Jeremy Banks]
-
- Improvements:
-
- - Mail::Message::Field::wellformedName() produces better results,
- thanks to [Emmet Cailfield]
-
- - Many more tests are succeeding under Windows, since
- [Greg Matheson] sent me the output of the tests based
- on Test::More. Thanks Greg!
-
- - Mail::Transport::SMTP warns when send(To => $to) is used where
- send(to => $to) is needed. [Jeremy Banks]
-
- - Mail::Message::Head::ResentGroup::set(field) added
- Mail::Message::Head::ResentGroup::createReceived() added
- Mail::Message::Head::ResentGroup::destinations() added
-
- - Mail::Message::Construct::bounce() now adds Resent-* lines
- to the first Received line, if available.
-
- - Mail::Message::Head::ResentGroup::new() creates a received
- field if not defined.
-
- - Mail::Message::Head::Clone uses $head->addNoRealize i.s.o add(),
- and thereby does not re-fold the headers anymore.
-
- - Deleting or resetting a non-existing field in the header will
- not flag the message to be 'modified'.
-
- - Implemented Mail::Box::Search::SpamAssassin, a spam filter
-
- - Implemented Mail::Message::Wrapper::SpamAssassin, a wrapper
- used in the new spam filter.
-
- - Implemented authorization for SMTP, based in work by
- [Michael de Beer]
-
- - X-Spam-* headers are not disclosed for transmission.
-
-version 2.025: Mon Sep 23 13:11:57 CEST 2002
-
- Fixes:
-
- - Accidentally left debug-printstatements in Mail::Transport::SMTP
-
- - Fixed "from" address used in Mail::Transport::SMTP.
-
- Improvements:
-
- - MIME-Version header line automatically added to constructed
- messages (rfc 2045). [Matthew Darwin]
-
-version 2.024: Sun Sep 22 23:06:55 CEST 2002
-
- Fixes:
-
- - SMTP sending accidentally only included the headers *not* to
- be disclosed :( The check has the correct negation in
- Mail::Message::Field::toDisclose() now.
- Reported by [Matthew Darwin]
-
- - Generated messages without message-id must get one assigned.
- Reported by [Matthew Darwin]
-
- Improvements:
-
- - All tests converted to use Test::More, which produces better
- feedback on failures. Hopefully, failures on Windows will
- start disappearing now.
-
- - Mail::Box::Dir::Message's take their size from the real
- file (unless they are modified)
-
- - Mail::Box::Mbox now derived from new Mail::Box::File
-
- - Mail::Box::Mbox::Message now derived from new
- Mail::Box::File::Message.
-
- - Set the shape of the message-id with
- Mail::Message::Head::messageIdPrefix()
-
- - A message constructed without data will be an empty text
- message, not an empty multipart :(
-
- - Mail::Message::Construct::build() now calls buildFromBody()
- to prepare the whole message, instead of doing it itself.
- You can also specify field objects to buld() now.
-
- - From and To fields are no longer required to construct a
- message. They may be filled-in later.
-
- - Mail::Message::Construct::bounce() now uses the
- MM::Head::ResentGroup object, which much improved outcome.
-
- - Made a start with Mail::Box::Search::SpamAssassin.
-
-version 2.023: Sat Sep 14 11:11:03 CEST 2002
-
- Fixes:
-
- - t/65search.t failed for some Perl versions, dependent on the
- hash implementation. Mail::Box::Search::Grep::inHead did
- not use MM::Head::orderedFields() yet. Discovered by
- [Blair & Liz & Greg & Conrad Heiney]
-
- - Mail::Box::Mbox includes IO::File with () to avoid colission
- between constant definitions in IO::File and POSIX. Fixed
- by [Marcel Gruenauer]
-
-version 2.022: Mon Sep 9 18:55:01 CEST 2002
-
- Detailed checks against RFC2822 is in progress, which means that
- some changes have to be made. The API had to be changed on some
- places, but on most places could be kept unchanged.
-
- Application breakers:
-
- - $msg->from now returns a list fo addresses! Mind the context!
- required by the RFC.
-
- - stringified $body->type returns whole Content-Type body. Use
- $body->mimeType! Example:
- if($msg->type eq 'text/html') # breaks now
- if($msg->mimeType eq 'text/html') # works as always
-
- - a header field stringifies to "body; comment", not only
- the body.
-
- Fixes:
-
- - Messages which of unknown Content-Type (unknown by MIME::Types)
- could cause segmentation violates. Solved by [Darrell Fuhriman]
-
- - In Mail::Box::Manager, the method foldertypes() was called, which
- should have been folderTypes(). [Swapnil Khabiya]
-
- - Mail::Message::Construct::replyPrelude produced warning when
- from address of originating message dit not defined a user's
- name. Now it has a fallback. Reported by [Jon Thomason]
-
- Improvements:
-
- - new method Mail::Box::Message::moveTo()
-
- - new method Mail::Message::sender()
-
- - Mail::Message::Convert::selectedFields() retuns fields now
- (in the right order), not field names.
-
- - Mail::Reporter::log() now also as class method.
-
- - Mail::Reporter::defaultTrace() to set program global defaults
- for logging and tracing.
-
- - New class Mail::Message::Head::ResentGroup with tests in
- t/12head1r.t
-
- - Mali::Message::Construct::printStructure now accepts a filehandle.
-
- - reply() takes return address from: Reply-To || Sender || From
- (Sender added)
-
- I have re-read specification rfc2822, and reimplemented the three
- Mail::Message::Field* objects. The next changes are made to
- these objects:
-
- - field data is only stored in folded form to improve performance
- during parsing and reduce memory consumption (which is quite
- high for headers) but also to be able to handle structured fields
- better. This introduced two new methods:
- folded_body()
- unfolded_body()
- The body(), comment(), and content() are quite different now,
- although return the same results.
-
- - toDate() without argument returns an rfc2822 valid date
- representing the current local time.
-
- - new() accepts attributes. The OPTIONS are only available
- for ::Flex fields.
-
- - attributes handle escapes of quotes in quoted strings.
-
- - new method length() which returns the total field length.
-
- - new method toDisclose() which tells
- Mail::Message::Head::printUndisclosed whether the header should
- be visible for extenal receivers.
-
- - new method stripCFWS() removes comments and folding white space from
- header lines. This should only be used on structured header
- fields. Tests in t/11cfws.t
-
- - new method dateToTimestamp converts a date in RFC2822 spec into
- a timestamp.
-
- Also Mail::Message::Head got revisited. The order of the fields
- is protected stronger.
-
- - new method orderedFields()
-
- - new method addResentGroup()
-
- - new method resentGroups()
-
- - new method removeField($field)
-
-version 2.021: Tue Aug 20 17:42:24 CEST 2002
-
- Fixes:
-
- - Requires HTML::TreeBuilder release 3.13 or newer, if you want to
- use Mail::Message::Convert::HtmlFormat*.pm, because 3.12 contains
- a serious bug. Resolved by [Blair Zajac]
-
- - A mistake in the previous release could cause that parts of
- multiparts where lazy. This is not correct: all parts must be
- extracted at once. Detected by [Jost Krieger]
-
- - Another bug introduced with the previous release was the
- removal of automatic body-to-messagepart coercion.
-
- - When a nested body was checked on encoding, it accidentally returned
- its nested content, in stead of itself. Detected by [Blair Zajac]
-
- - Mail::Message::isMultipart triggered the body, which is not needed
- because the info is in the header as well.
-
- - pod2html translators are terrible. Put more sofistication in
- my html-polisher.
-
- Improvements:
-
- - Carp is stringifying objects, which is terrible in combination with
- overloading stringification on message headers and bodies. Therefore,
- a special exception for stringification is added to return a
- different result to Carp.
-
- - The Mail::Box::determineBodyType is simplified.
-
- - Multiparts and Nested (rcf822) message are now also delayed when
- their size is not known (often the case) or too large.
-
- - Implemented Mail::Message::Part::buildFromBody() to assist the
- improved Mail::Message::Part::coerce()
-
- - Testing cloning of complex messages in t/58clone.t
-
-version 2.019: Thu Aug 15 09:46:42 CEST 2002
-
- Fixes:
-
- - Parsing messages could destroy $_ and IN/OUT file-handles from
- the user's program. Found a few places in Mail/Message/Body/*.pm
- Problem spotted by [Jerrad Pierce]
-
- - Mail::Message::Head::Delayed extends a Mail::Message::Head, not
- a Mail::Reporter.
-
- - Using an Index with MH folders caused each message header to be
- triggered: a considerable slowdown.
-
- Improvements:
-
- - [Blair Zajac] donated a large set of documentation fixes.
- Even some hidden bugs got fixed this way.
-
- - Implemented Mail::Message::Body::Multipart::file(), because
- it is required for Mail::Transport::SMTP. Spotted by
- [Marty J. Riley]
-
- - Mail::Box::Tie::ARRAY and ::HASH simulate real arrays and hashes
- better with respect to deleted items.
-
- - Mail::Box::Message::Dummy is renamed into Mail::Message::Dummy,
- which inherit from Mail::Message, not Mail::Box::Message.
-
- - Mail::Message::Dummy's now follow the standard pattern of
- Mail::Message.
-
- - The Mail::Box::Thread::Manager is now also an extension of a
- Mail::Reporter.
-
- - The Mail::Box::Thread::Node is now also extends Mail::Reporter.
-
- - Added extra doc to MH::Message to avoid confusion between seqnr
- and filename (which is a number as well). Needed by
- [Jerrad Pierce]
-
- - Mail::Message::Part::clone is not a special case of clone at all.
- Removed.
-
- - Mail::Message::Part::coerce() was much too complicated: most work
- is already done in Mail::Message::coerce()
-
- - The documentation and sometimes also the location of code in
- Mail::Message::Head* packages has been improved.
-
- - Improvements in text of Mail::Box-Overview.
-
-version 2.018: Wed Jul 10 23:03:08 CEST 2002
-
- Fixes:
-
- - Parser will immediately study multipart en nested messages,
- because otherwise it will get stuck in nasty multi-level
- situations. Discovered by [Francois Petillon]
-
- - More picky with quotes in header field attributes... Continuing
- story with weird multipart boundary strings. This time,
- [Blair Zajac] forced some improvements.
-
- - Empty headers were not properly skipped. Usually this went
- undetected... however not in a very rare case [Blair Zajac]
-
- - For read-only folders, the manager always complained about
- "closing changed folders". Reported by [Blair Zajac] and fixed.
-
- - [Greg Matheson] tries to get Mail::Box running on the Cygwin
- platform, which will benefit everyone, because it is stricter
- than UNIX in some cases.... for instance, the Perl parser
- objects left the file-handle open....
-
- - [Blair Zajac] detected that double messages in a read-only
- folder cause "Changes not written to read-only folder"
- messages. Not anymore: the doubles will not be flagged for
- deletion.
-
- Improvements:
-
- - Filenames sometime contained double /'s between folderdir and
- foldername. Removed.
-
- - Foldernames can be specified like this:
- pop3://username:password@host:port/folder
- which is broken into separate arguments in a very early stage.
- This is especially useful when the name is passed in $ENV{MAIL}
-
- - Start of implementation for Mail::Transport::POP3.
-
- - To make space for ::POP3, which is a message receiver, the
- message senders are now derived from Mail::Transport::Send.
- New options are added which certainly improve the interface.
- New packages:
- Mail::Transport::Send
- Mail::Transport::Receive
- Mail::Transport::POP3
-
- - Foldernames via $mgr->open() may be specified as URL, for instance
- $mgr->open('mbox:/tmp/inbox')
- $mgr->open('pop3://me:secret@pop3.server.com:120')
-
- - $mgr->close($folder) and ->closeAllFolders() accept the
- normal options for $folder->close(OPTIONS).
-
- - $folder->appendMessage($msg) now returns the coerced message.
-
- - Mail::Box::Dir::messageId() should not trigger headers to
- find unparsed headers with the id: that's the task of
- Mail::Box::find(). The code was not consistent with the docs.
-
- - Removed Mail::Box::Dir::readAllHeaders()... it contained a
- bug, so was apperently never used. And that's a good thing.
-
- - Small set of additions to Mail::Box::Net and Mail::Box::POP3
- Still in the early stages of development.
-
- - The parser will complain about files which were modified while
- it was working with it. Some cases where the parser accidentally
- stayed open were closed to resolve the complaints for the tests.
-
-version 2.017: Fri Jul 5 17:06:08 CEST 2002
-
- Fixes:
-
- - Thanks to [Liz Mattijsen] for the detection of some flaws in
- the QuotedPrintable encoding. Fixed it.
-
- - Nested (rfc822) message clone() did not work. Detected by
- [Blair Zajac]
-
- - [Greg Matheson] is fixing the test suite for Windows. Very good
- work. Changes made in t/65search.t
-
- Improvements:
-
- - Deleted parts will not be returned in $multipart_body->lines
-
- - Deleted parts will not be counted in $multipart_body->nrLines
- and ->size
-
- - Deleted parts will not be cloned.
-
- - For efficiency reasons, $multipart_body->foreachComponent
- will skip deleted parts as well.
-
- - Mail::Box::messages() accepts
- range: $folder->messages(3, 100)
- non-deleted: $folder->messages('ACTIVE')
- deleted: $folder->messages('DELETED')
- labeled: $folder->messages('seen')
- labeled: $folder->messages('!seen')
- code: $folder->messages( sub {$_[0]->size > 10000} )
- limiting the default result being all messages.
-
- - Mail::Message::parts() accepts
- non-deleted: $msg->parts('ACTIVE')
- deleted: $msg->parts('DELETED')
- nested: $msg->parts('RECURSE');
- code: $msg->parts( sub {$_[0]->size > 10000)} )
-
- - Mail::Message::Body::Multipart::parts accepts
- non-deleted: $body->parts('ACTIVE')
- deleted: $body->parts('DELETED')
- nested: $body->parts('RECURSE');
- code: $body->parts( sub {$_[0]->size > 10000)} )
-
- - Mail::Box::allMessageIds() renamed to messageIds(), but old
- name still available.
-
- - Add suggestion to close() without writing changes.
-
- - Avoid testing of maildir folders for Windows. They are not
- supported, because maildir uses characters in filenames which
- are not acceptabled for the Windows file-systyem. [Greg Matheson]
-
- - Added Mail::Box::POP3, Mail::Box::POP3::Message
- Mail::Box::Net, and Mail::Box::Net::Message as first steps to
- a POP3 implementation.
-
-version 2.016: Tue Jun 25 16:24:54 CEST 2002
-
- Fixes:
-
- - [Edward Wildgoose] was very persist in pushing me to test
- return codes in Mail::Transport::SMTP. Late transport failures
- are reported back now.
-
- - [Jeff Squyres] attributes in header fields must be matched
- case-insensitive.
-
- - $folder->writeable --> $folder->writable, but old method
- kept for backwards compatibility.
-
- - [Andreas Piper] AIX also requires r+ on a file to get locking
- via FLOCK to work. I made the detection 'compile-time'.
-
- - The folder to be locked was optional, but used in error messages.
- Now if is not optional anymore, thanks to [Andreas Piper]
-
- - Simulated sub-folders in Mbox were not correctly automagically
- created.
-
- Improvements:
-
- - Document fixes in Mail/Transport/SMTP.pm by [Liz Mattijsen]
-
- - Recursive copying of whole folders, which may include
- conversions with Mail::Box::copyTo() with tests in t/66copyto.t
-
- - Interface change:
- $mgr->addMessages, $folder->addMessage,
- $mgr->appendMessage, $folder->appendMessage,
- $mgr->moveMessage, $folder->copyMessage,
- $message->copyTo
- now all return the coerced message(s), because that is much
- more useful than the message which are passed into the
- method call, the folder, or the class.
-
- - Mail::Box::Manager::open() is rewritten, and a such much improved.
-
- - Much stricter handling of folder closing and folder deletion:
- when a manager is used, folders are removed before global
- cleamup commences.
-
- - Mail::Box::Manager::registerType is not requiring all known
- folder types anymore. This means that adding folder types
- is without cost now: they are compiled only when used.
-
-version 2.015: Tue Jun 18 19:41:45 CEST 2002
-
- Fixes:
-
- - Duplicated messages without subject or to fields will
- not produce errors anymore.
-
- - Duplicated messages produce NOTICE now, not WARNINGS. Same
- for empty fields and other minor things the parser detects.
-
- - Multiparts where not correctly processed when read from STDIN:
- the body type was '::Lines' only. Bug reported by [Evan Borgstrom]
-
- - Bogus message-IDs <> caused problems, but these situations are
- avoided now. Problem found by [Jost Krieger]
-
- Improvements:
-
- - message/rfc822 messages are handled now via a
- Mail::Message::Body::Nested.pm, Tests in t/21p9rfc.t
- This all because [Max Poduhoroff] asked for it ;-)
-
- - Removed all tests for Inline::C parser....
-
- - Mail::Message::Body::AUTOLOAD handles errors better, which
- should provide nicer error-messages.
-
- - Updates on MH/Maildir messages will first be created in an
- 'invisible' name, to avoid accidental access to partially
- written messages Mail::Box::Dir::Message::create()
-
- - Mail::Message::Parts can be deleted (ignored for printing and
- sending). $part->deleted, $part->deleted(0), if($part->deleted)
-
- - timestamp() prefers time from last Received field over first
- [Jost Krieger]
-
- - Mail::Transport::SMTP:
- contactServer() --> contactAnyServer()
- new method tryConnectTo($host, @options);
-
- - $msg->printStructure for debugging purposes
- (see Mail::Message::Construct)
-
- - Now requires MIME::Types v1.001
-
- - Mail::Message $msg implemented $msg->string, ->lines, ->file
-
-version 2.014: Tue Jun 11 16:26:13 CEST 2002
-
- Fixes:
-
- - Forgot to implement the 'delete' method for a header field. The
- 'reset' method was available to achieve it, but harder to discover
- for unexperienced programmers. Now 'delete' simply calls 'reset'.
- Spotted by [Mark Weiler]
-
- - A coerce() from Mail::Message to Mail::Box::Message has to clear
- the deleted flag (to avoid errors). At the same time, the
- modified flag is cleared. Detected by [Max Maischein]
-
- - create option to Maildir's works now.
-
- - Signature separator '--' ==> '-- '
-
- - [Gilles Darold] found that m!(['"]?)([^\1])\1! doesn't work.
- apparently, [^\1] is not working. Temporarily fixed with [^'"]
- in Mail::Message::Field.
-
- Improvements:
-
- - Mail::Transport::SMTP is working now.
-
- - The 'clone' operation on a message will return a Mail::Message
- object, which avoids complications with copying message between
- different kinds of folders.
-
- - Maildir messages are moved from 'new' to 'cur' with the new
- method 'accept'.
-
- - Mbox, MH, pure Perl parser, and modules status "Released"
- (was "beta")
-
- - Maildir status "Alpha" (was "under development")
-
- - Added some docs to Mail::Transport about receiving messages
- via POP3. This code may appear in the near future.
-
- - Implemented Mail::Message::Convert::TextAutoformat, t/90textaf.t
-
- - Implemented Mail::Message::Convert::HtmlFormatText, t/90htmlft.t
-
- - Implemented Mail::Message::Convert::HtmlFormatPS, t/90htmlfps.t
-
- - Initial coding of Mail::Message::Convert::Html, t/90html.t
-
- - Mail::Message::Head::grepNames() now accepts regexes as well.
-
- - Mail::Message::Field::wellformedName method added which returns
- preferred capitization of a field's name. The name() method
- returns the lower-cased name. Tests in t/11field1.t
-
- - Mail::Message::Field::content returns both body and comment
- part of the message header line.
-
- - added Mail::Message::Body::charset() to simplify code.
-
- - removed useless Mail::Message::printUndisclosed().
-
-version 2.013: Thu May 23 11:30:35 CEST 2002
-
- Fixes:
-
- - Create MH directories when asked to. [Greg Matheson] reported
- the problem.
-
- - Mail::Box::Locker::new "timeout" and "wait" options where too
- confusing to be implemented correctly. So they didn't work
- as described. Now, they are called "expire" and "timeout".
- Thanks to [John B Batzel] for pointing-out the problems.
-
- - Messages with empty bodies where not accepted at all. This
- combined with a mistake in treating these errors in Mbox
- folders gave <undef>s when asked for a body.
-
- Improvements:
-
- - Maildir implementation runs all its tests. Still there are
- some support functions lacking. Reports are that sub-folders
- are to be implemented differently.
-
-version 2.012: Mon Apr 22 15:53:05 CEST 2002
-
- Fixes:
-
- - [alex] found-out that remove_when_empty and save_on_exit
- could not be set to false for Mail::Box'es.
-
- - [Cory Johns] examples/reply.pl closed the folder but
- later still used one of its messages. This is not
- permitted, but may be allowed later.
-
- - [Robin Berjon] multiple improvements to the Maildir
- implementation. Not finalized yet.
-
- - Mail::Message::Construct->build
- called Body->new(filename =>
- which must be Body->new(file =>
-
- - Two fixes in Base64 encoding.... Problem reported by
- [Bernd Patolla]
-
- - Forgot to use File::Copy in Mail::Message::Body::File.
- reported by [Andre Schultze]
-
- Improvements:
-
- - Creation of new message-files for Mail::Box::Dir::Message
- extensions implemented by a create($filename) method which
- tries to be very smart.
-
- - [Mark Ethan Trostler] Mail::Message::Field::attribute
- with value of <undef> gave complaints. For now, these
- calls with <undef> will be ingnored. In the close future
- they will remove the attribute.
-
- - Removed references to HTML.pm from all files...
-
-version 2.011: Sun Mar 3 23:51:41 CET 2002
-
- Improvements: -- one day of rapid development ;)
-
- - Mail::Message::read was confusing many users. Therefore, it
- has been renamed to readFromParser.
-
- - Now read() became unused, it is used to implement
- my $msg = Mail::Message->read(\*STDIN);
- Please use it sparsely.
-
- - Implemented Mail::Box::Maildir->writeMessages and
- Mail::Box::Maildir->appendMessages. Tests in t/44mdir*.t
- Still small things to fix.
-
- - Mail::Message::clone() includes labels now.
-
-version 2.010: Sun Mar 3 16:05:16 CET 2002
-
- Fixes:
-
- - Fixed serious mis-calculation for delayed bodies in MH folders.
- The 'fail-safe' approach did safe the programs till now, but
- it is much better now: correct 'Content-Length' headers will
- safe you time now.
-
- - Improved quite some doc-issues in Mail::Box::MH::(Label|Index).pm
-
- - Prototype of Mail::Message::Body::_data_from_lines was @_, which
- is a silly typo checked by bleadperl... [Marcel Gruenauer]
-
- - Mail::Box::Parser::Perl line 87, binmode without filehandle...
- reported by [Marcel Gruenauer] But now it is causing problems
- with perlio in 5.7.2 ...
-
- - Minor changes to scripts/takemail by [Tassilo v Parseval]
-
- - Mistakes in the docs of Mail::Box::Search::Grep, found by
- [Tassilo v Parseval]
-
- - Accidentally took only non-delayed messages in Grep: wrong
- default. Detected by [Tassilo v Parseval]
-
- - The METHOD INDEXes ended with a list of links to related
- manual-pages which where not expanded correctly by pod.
- Therefor is was changed: now the INDEX starts with the
- man-pages which will have correct links this time.
-
- Improvements:
-
- - Changed encoders/decoders status from ALPHA to BETA.
-
- - Removed organization option to new() for Mail::Boxes: it is
- not modifyable. The method which shows whether the folder
- is DIRECTORY or FILE organized will stay.
-
- - *PARTIAL* implementation of Maildir folders, which did have large
- implications for the MH implementation. The maildir implementation
- is NOT READY yet.
-
- New class structure:
-
- Mail::Box::MH
- is a Mail::Box::Dir <-- new
- is a Mail::Box
-
- Mail::Box::MH::Message
- is a Mail::Box::Dir::Message <-- new
- is a Mail::Box::Message
- is a Mail::Message
-
- Mail::Box::Maildir <-- new
- is a Mail::Box::Dir <-- new
- is a Mail::Box
-
- Mail::Box::Maildir::Message <-- new
- is a Mail::Box::Dir::Message <-- new
- is a Mail::Box::Message
-
- - Massive changes in label management, required to facilitate
- Maildir labels which are in the filename.
-
- - Added /usr/lib to the safe_directories are searched by
- Mail::Transport for binaries [Slaven Rezic]
-
- - Any Mail::Box type may implement an 'updateMessages'. When
- $mailbox->update is called and 'updateMessages' exists, the
- folder tries to figure-out changes in the folder which were
- made by external programs. External programs may add messages
- to the end of the folder without applying a lock, which is
- dangerous.
-
-version 2.009: Wed Feb 20 09:03:56 CET 2002
-
- Fixes:
-
- - Forgot to update METHOD INDEX
-
- - t/65search1g.t tests Mail::Box::Search::Grep, which found
- some problems in the implementation which are fixed now.
-
- Improvements:
-
- - Mail::Box::Manager::threads() now also works when the folders
- are not used as named parameter:
- $mgr->threads(folders => [$inbox, $outbox]); # was
- $mgr->threads($inbox, $outbox); # added
-
- - Default output file-handle changed from STDOUT to the selected
- file-handle (see perldoc -f select)... usually this will
- return STDOUT.
-
-version 2.008: Mon Feb 18 16:11:52 CET 2002
-
- Fixes:
-
- - [Alan Kelm] proved me that the other perl modules are wrong,
- wrapping the header-lines more often than the RFC permits. So,
- wrapping on ';' and '.' is removed. Wrapped headers are always
- accepted, so there is no difference when reading a folder.
-
- - Added 'use Mail::Address' to Mail::Message::Field
- [Walery Studennikov]
-
- - [Andreas Marcel Riechert] Added -I flag for {net|open}bsd with
- mailx in Mail::Transport::Mailx
-
- - The parent of a Multipart body after reading accidentally was
- a body, not a message. Fixed in Mail::Message::Body::Multipart.
-
- Improvements:
-
- - New modules Mail::Box::Search and Mail::Box::Search::Grep, however
- they still need testing. De docs have to be updated too.
- Mail::Box::Search::Spam must be a piece of cake now.
- Example in examples/grep.pl
-
- - Replaced -w flag in test-scripts by 'use warnings'
-
- - Centralized definition of folder-files in t/Tools.pm to
- simplify implementation on Windows.
-
- - t/00windows.t to convert t/mbox.src to t/mbox.win with CRLF
- line-terminations.
-
- - moved Mail::Message::Body::Encode::eol to
- Mail::Message::Body::eol because is always needed and
- hence triggered the parsing of Encode..
-
- - Mail::Message::Body::eol option NATIVE will be translated into
- LF, CR or CRLF.
-
- - Mail::Message::Body::*::size will return the size of the
- message as stored in the file, so taking care of \n which
- becomes CRLF on some systems.
-
- - Croak when $mgr->copyTo/moveTo is used with a message which
- is not part of a folder yet: appendMessage should be used instead.
-
- - Mail::Box::Thread::Node::threadMessages() collects all messages
- which are in a thread.
-
-version 2.007: Mon Jan 14 10:07:09 CET 2002
-
- Fixes:
-
- - [Alan Kelm] found a mistake in Mail::Box::Locker::DotLock::_try_lock
-
- - [Alan Kelm] updated some docs about locking.
-
- - [Alan Kelm] folder->new keep_dups option.
-
- - [Alan Kelm] fixed a stupid bug: messages printed to MBOX folders
- did not get an empty line after them (before the from-line).
- changed print('') into print("\n") in Mail::Box::Mbox::Messages.pm
- Mail::Box doesn't need that line, but other mail-agents might.
-
- Improvements:
-
- - Avoid colissions between two messages which falsily share
- messageID. One will get a new number.
-
- - Start implementing understanding of CRLF / CR and foreign
- line-endings
-
- - Implemented stricter checks. When a body is created, it is
- not trusted until the data is checked. This is lazy again ;)
- Specify the checked option for the body is you are sure the
- data is correct. Also for the folders: when they are `trusted',
- all bodies will be created `checked', which boosts performance
- when used with the Perl parser.
-
-version 2.006: Wed Jan 2 08:27:21 CET 2002
-
- Fixes:
-
- - Accidentally typed (@_) as prototype of some methods. Found
- by [Jeffrey Friedl]
-
-version 2.005: Sun Dec 30 14:25:22 CET 2001
-
- Fixes:
-
- - Because of a bug related to weak references in the 5.6.0
- Perl core, 5.6.1 is required now...
-
- Improvements:
-
- - Rewrote Mail::Box::Parser::Perl, to avoid use of unget_line.
- At the same time, the detection of the folder's line mode is
- simplified. However, not seek is sparsely used... maybe as
- next improvement this could be avoided as well.
-
- - The performance is improved considerably when the folder
- is trusted. However, a little slowdown can be experienced
- for untrusted folders, because better CRLF handling.
-
- - $mboxmsg->fileLocation returns only begin message in scalar
- context.
-
- - readHeader returns ref-array for each field i.s.o. four
- elements in a list.
-
- - Mail::Box::Parser::inDosmode is now called
- Mail::Box::Parser::lineSeparator. Although a start has been
- made to support Windows and non-native folders, it is not
- fully implemented yet.
-
- - Updated the Mail::Box::Parser manual-page.
-
-version 2.004: Sun Dec 16 22:53:06 CET 2001
-
- Fixes:
-
- - I didn't know yet, but you can do things like:
- $reply->head->add(To => $orig->head->get('From'));
- because of stringification ;)
-
- - $message->from also may return the content of the Sender header.
-
- - Mail::Message::Construct::quotePrelude renamed to
- ::replyPrelude, which is more consequent.
-
- New:
-
- - Added Mail::Message::Construct::forward() and ::forwardSubject.
- With tests in t/57*
-
- - Replies are even more flexible now.
-
-version 2.003: Sat Dec 15 00:47:50 CET 2001
-
- Fixes:
-
- - Moved stuff from Mail::Message::Head::read to
- Mail::Box::Parser::readHeader to improve parser indepency and
- speed.
-
- - [Marcel de Boer] showed me that labels were not treated
- right in Mail::Box v2. Moved from Mail::Box::Message to
- Mail::Message and Mail::Message::Head.
-
- - [Marcel de Boer] also found a problem with cloning of multi-
- parts which got solved: a Mail::Message::Part is cloned to
- be a Mail::Message!
-
- - Quite a speed improvement too.
-
- - Changed version policy
-
-version 2.002: Fri Dec 13 17:46:01 CET 2001
-
- Fixes:
-
- - Better (less complaining) recovery of bad header parsing.
-
- - Removed a back-reference from a locker object to the folder,
- by which the folders where kept alive although out of scope.
- "circular reference". According the errors I got when
- removing this one, there should be no strong refs left.
-
- - replaced many "warn"s by "$self->log(WARNING =>"s in
- Mail::Box::Manager.
-
- - Improved handling and creating folders in the Mail::Box::Manager.
-
- - A header may be empty, but then it will be 'false'. This is
- needed to correctly recover corrupted mbox folders.
-
- New:
-
- - Mail::Message::Field::Fast implements a fast but dirty way to
- store the header information. Tested in t/11field1.t
- It saves about 10% memory and 7% performance.
-
- - Mail::Message::Field::Flex implements an extendible but slower
- way to manage the data. Tested in t/11field2.t
-
-version 2.00_19: Wed Dec 12 22:13:56 CET 2001
-
- Most work about sending messages. Slight extension of the
- interface for some other packages.
-
- Fixes:
-
- - Removed Tassilo's header parser optimization in favor of
- split again, because it breaks on empty fields.
-
- - [Tassilo v Parseval] added some 'binmode OUT' lines to
- make 98% of the tests succeed on Windows!! But I am not
- sure that is the right answer. More on that later.
-
- New:
-
- - Added to/from/cc/bcc/subject methods to Mail::Message, to
- hide Resent- header lines which overrule these fields in the
- header. Required for correct rfc822 support.
-
- - Added destinations() to Mail::Message.
-
- - Added isResent() to Mail::Message::Field.
-
- - Added addresses() to Mail::Message::Field, which returns a list
- of addresses as specified by the header line.
-
- - Added pod reference to Mail::Message's service methods on header
- lines.
-
- - Added Mail::Message::Head::Complete::printUndisclosed() and
- Mail::Message::printUndisclosed() which is the same as print()
- but leaving the Cc and Bcc headers out.
-
- - Added Mail::Transport::putContent($message)
-
- - Added Mail::Transport::SMTP shaped after Net/SMTP, but much more
- facilities and real Perl 5 code! Not ready yet.
-
-version 2.00_18: Mon Dec 10 22:19:44 CET 2001
-
- - Added some requires for package FileHandle.
-
- - Added Mail::Transport::Qmail (cannot test it, but expect it
- to work)
-
- - Reorganized (and improved the docs) on all Transport modules.
-
- - Added POSIX fcntl locking.
-
- - [Tassilo v Parseval] demonstrated the fastest way to split
- a header, determined by benchmarking 6 variations on the theme.
- Used in Mail::Box::Parser::Perl.pm
-
-version 2.00_17: Sat Dec 8 23:10:06 CET 2001
-
- - Moved scripts/web/* to scripts/
-
- - Header line options in Mail::Message::Construct::reply start
- with capitals too.
-
- - Added Mail::Message::Body::Multipart::stripSignature
-
- - Simplified Mail::Message::Construct::reply a little
-
- - Fixed problem with the resulting body-types where delayed bodies
- where used to be encoded and decoded.
-
- - Extra checks for From-line in mbox folders, to help incorrectly
- formatted folders.
-
- - [Tassilo v Parseval] discovered the problematic recovery for
- erroneous headers. Some recovery is tried.
-
-version 2.00_16: Sat Dec 8 16:56:53 CET 2001
-
- First beta of Mail::Box version 2
-
- Most import changes:
-
- * Replaced all use of MIME::Parser, Mail::Internet, and MIME::Entity,
- althought the foreign message types are still useable in some
- places.
-
- * All code has been changed. Simple things, like opening a folder,
- reading messages and such are the same. However handling of
- messages is really different from the MIME::Entity/Mail::Internet
- implementation. Your message handling must be body-oriented ;)
- tranforming a body into a new body, into a new body, and
- finally create a new message from it. See Mail::Box-Cookbook.
-
- * Moved code to use 5.6.0 features, so no support for 5.005
- anymore. This is required for Inline::C and Unicode support.
- Mail::Box releases below 2 will be supported for some time
- for people with `old' perl.
-
- * Parsing in Inline::C or plain Perl
-
- * folder->open(take_headers) removed
- folder->open(extract) replaces folder->open(lazy_extract) to
- avoid double negation in your program.
- listFolders became listSubFolders
- allMessages became messages(); so $folder->messages always
- returns all.
-
- * Unfolding of headers considered stupid: headers which are
- structured (check Mail::Message::Field::isStructured) may always
- be multi-lined. Just specify the right options when you scan
- through the line with regular expressions.
-
- * All packages is separate files.
-
- * Many more test, a few example files, Mail::Box-Overview and
- Mail::Box-Cookbook.
-
-Before this, we had Mail::Box-1.xyz which also has a Changelog. Most of
-that information is not really useful because version >=2.0 is a really,
-really major change, although there is strike for compibility.
-
-However, some of the bugfixes contributed for Mail::Box v1 are
-still present in Mail::Box v2.
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/ChangeLog (from rev 1522, packages/libmail-box-perl/trunk/ChangeLog)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/META.yml
===================================================================
--- packages/libmail-box-perl/trunk/META.yml 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/META.yml 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,27 +0,0 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: Mail-Box
-version: 2.062
-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
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/META.yml (from rev 1522, packages/libmail-box-perl/trunk/META.yml)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/Makefile.PL
===================================================================
--- packages/libmail-box-perl/trunk/Makefile.PL 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/Makefile.PL 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,260 +0,0 @@
-use ExtUtils::MakeMaker;
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-
-require 5.006_001;
-
-use IO::Handle;
-
-# Usually, Scalar::Util is installed (in core since perl 5.8.0)
-# However, sometimes it is (incorrectly) installed without XS, but as
-# plain module. In that case, Scalar::Util must be reinstalled.
-
-eval { require Scalar::Util };
-unless($@)
-{ eval "Scalar::Util->import('dualvar')";
- if($@ =~ m/only.*XS/)
- { warn <<'WARN';
-
-!!!! WARNING !!!! On your system, the module Scalar::Util is installed
-!!!! WARNING !!!! without use of XS. This means that critical functionality
-!!!! WARNING !!!! is missing. Reinstall the module and be sure to get the
-!!!! WARNING !!!! correct installation.
-!!!! WARNING !!!! perl -MCPAN -e 'shell'
-!!!! WARNING !!!! > force install Scalar::Util
-
-WARN
- }
-}
-
-my @optional =
-(
- [ Mail::Box::Parser::C => '3.006'
- , reason => <<'REASON', warning => <<'WARN' ]
-Speeds-up reading mail folders, though most time is consumed by
-Perl's administration of the processed data.
-REASON
-This module contains XS code, so you need a C compiler.
-WARN
-
-, [ Encode => '1.86', requires => sub { $] >= 5.007_003 }
- , reason => <<'REASON', warning => <<'WARN' ]
-Conversions between character sets are done by Encode. Many
-other Perl modules use Encode too.
-REASON
-Encode is a huge package, but not complicated to install.
-WARN
-
-, [ Mail::Transport::Dbx => '0.04', reason => <<'REASON' ]
-The wrapper to the Outlook's dbx files consists of a c-library
-named libdbx (website http://sourceforge.net/project/ol2mbox/),
-and a wrapper which is distributed separately from Mail::Box.
-You get read-only access to the dbx folders.
-REASON
-
-, [ Mail::SpamAssassin => '2.00', reason => <<'REASON', warning => <<'WARN' ]
-Searching for spam in a mail folder needs the popular spam killer.
-REASON
-This distr is large: installing will take quite a while. You
-can install it later. When your CPAN cache is small, this may
-break your Mail::Box installing process.
-WARN
-
-, [ Mail::IMAPClient => '2.2.8', reason => <<'REASON' ]
-Required for IMAP4 support.
-REASON
-
-, [ Mail::Internet => '1.0', distr => 'MailTools', reason => <<'REASON' ]
-Many existing e-mail applications use Mail::Internet objects. If
-you want automatic conversions for compatibility, you need this.
-REASON
-
-, [ MIME::Entity => '3.0', distr => 'MIME::Tools', reason => <<'REASON' ]
-MIME::Entity extends Mail::Internet messages with multipart handling
-and composition. Install this when you want compatibility with
-distrs which are based on this kind of messages.
-REASON
-
-, [ HTML::TreeBuilder => '3.13', reason => <<'REASON' ]
- The tree builder is used by the HTML::Format* packages.
- Version 3.12 is wrong, so you should install a newer version
- if you want smart html conversions.
-REASON
-
-, [ Time::HiRes => '1.51', reason => <<'REASON' ]
- When installed, unique message-ids will be created using gettimeofday.
- Otherwise, generated message-ids will not be thread/fork safe.
-REASON
-
-, [ HTML::FormatText => '2.01', distr => 'HTML::Format', reason => <<'REASON' ]
-Plug-in which converts HTML to Postscript or plain text.
-REASON
-);
-
-my %prereq =
- ( Date::Parse => 0.0
- , File::Spec => 0.7
- , File::Remove => 0.20
- , Errno => 0.0
- , Scalar::Util => 1.13
- , Object::Realize::Later => 0.14
- , Mail::Address => 0.0
- , MIME::Types => 1.004
- , Sys::Hostname => 0.0
- , Test::More => 0.47
- , Test::Harness => 1.38
- , MIME::Base64 => 0.0
- , URI => 1.23
- , IO::Scalar => 0.0
- , Digest::HMAC_MD5 => 0.0
- , User::Identity => 0.90
- , Time::Zone => 0.0
- );
-
-my $has_readkey;
-BEGIN
-{ eval "require Term::ReadKey";
- $has_readkey = not length $@;
-}
-
-my $default_install_answer = $ENV{INSTALL_MAILBOX_OPTIONALS}
- || (-t STDIN ? 'y' : 'n');
-
-print <<'INTRO';
-*
-**** Installing MailBox
-*
-INTRO
-
-print <<'REQUIRED';
-
-* First, I will check the sanity of all required modules... sometimes
-* they do not load, for instance if you have installed a new release
-* of Perl without upgrading the libraries.
-
-REQUIRED
-
-my @errors;
-while(my ($module, $version) = each %prereq)
-{ eval "require $module";
- if($@ && $@ =~ m/^Can't locate /)
- { print " $module is not yet installed\n" }
- elsif($@)
- { print " $module produced an error:\n$@";
- push @errors, $module;
- }
- elsif($module->VERSION < $version)
- { print " $module version ",$module->VERSION
- , " is outdated; requires $version\n";
- }
- else
- { print " $module version ",$module->VERSION
- , " is ok (required is $version)\n";
- }
-}
-
-if($errors)
-{ die <<'FIX';
-*** ERROR! You have to install @errors manually,
-*** before you can retry to install MailBox.
-FIX
- exit 1;
-}
-
-print <<'OPTIONAL';
-
-* Now, let me ask you whether you want some optional modules to be
-* installed as well. You can always install these modules later, by
-* hand, without a need to re-install MailBox.
-*
-OPTIONAL
-
-# Debian: build should be non-interactive, we dont ask for optionals
-#foreach my $optional (@optional)
-if (0)
-{ my ($module, $version, %args) = @$optional;
- my $requirements = $args{requires} || sub {1};
- next unless $requirements->();
-
- print "\n";
- eval "require $module";
- if($@)
- { if($@ =~ m/^Can't locate /)
- { print "**** Optional $module is not installed\n" }
- else { print "**** Optional $module compilation failed:\n$@\n" }
- }
- elsif($module->VERSION < $version )
- { print "**** Optional $module too old: requires $version but is ",
- $module->VERSION,"\n";
- }
- else
- { my $v = $module->VERSION;
- my $r = $v eq $version ? ''
- : $version == 0 ? " (any version will do)"
- : " (at least $version required)";
-
- print "**** Found optional $module version $v$r\n";
- next;
- }
-
- my $reason = $args{reason};
- $reason =~ s/^/ /gm;
- $reason =~ s/\A /Use:/;
- print $reason;
-
- if(my $warn = $args{warning})
- { $warn =~ s/^/ /gm;
- $warn =~ s/\A /WARN/;
- print $warn;
- }
-
- my $install = $default_install_answer;
- my $key = prompt "Do you want to install $module? yes/no/all", $install;
-
- if($key eq 'a')
- { $default_install_answer = 'a';
- $install = 'y';
- }
- else
- { $install = $key eq 'y' ? 'y' : 'n';
- }
-
- next unless $install eq 'y';
-
- my $distr = $args{distr} || $module;
-
- $prereq{$distr} = $version;
- print " Added $distr version $version to the requirements\n";
-}
-
-# Debian: build should be non-interactive, we always run the tests
-#my $tests = prompt "Do you want to run the (large set of) tests? yes/no", "yes";
-my $tests = "yes";
-
-if($tests =~ m/n/i)
-{ open F, ">", "skiptests";
- close F;
-}
-else
-{ unlink "skiptests";
-}
-
-print <<'MAKEFILE';
-
-**** Writing Makefile
-
-MAKEFILE
-
-WriteMakefile
- ( NAME => 'Mail::Box'
- , VERSION_FROM => 'lib/Mail/Box.pm'
- , AUTHOR => 'Mark Overmeer'
- , ABSTRACT => 'E-mail handling'
- , PREREQ_PM => \%prereq
- );
-
-print <<'DONE';
-
-**** Done
-
-DONE
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/Makefile.PL (from rev 1522, packages/libmail-box-perl/trunk/Makefile.PL)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/debian/changelog
===================================================================
--- packages/libmail-box-perl/trunk/debian/changelog 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/debian/changelog 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,130 +0,0 @@
-libmail-box-perl (2.062-2) unstable; urgency=low
-
- * Set dh_compat level to 4
- * Added "use filetest 'access'" before checking for write access to work
- correctly in filesystems with ACLs - Thanks, Niko Tyni, for the answer!
- (Closes: #321076)
-
- -- Gunnar Wolf <gwolf at debian.org> Thu, 17 Nov 2005 10:59:16 -0600
-
-libmail-box-perl (2.062-1) unstable; urgency=low
-
- * New upstream release
- * Bumped up standards-version to 3.6.2
- * Added Lintian overrides for manpage-has-errors-from-man (a pod2man
- bug, see #328305)
-
- -- Gunnar Wolf <gwolf at debian.org> Wed, 14 Sep 2005 13:25:56 -0500
-
-libmail-box-perl (2.061-1) unstable; urgency=low
-
- * New upstream release
- * Added build-dependency on libtext-autoformat-perl to avoid failing
- some tests
- * Added build-dependency on netbase, to have the needed information to
- resolve the protocol's numbers - Thanks to Niko Tyni for pointing it out!
- (Closes: #306002)
-
- -- Gunnar Wolf <gwolf at debian.org> Mon, 1 Aug 2005 12:34:30 -0500
-
-libmail-box-perl (2.060-2) unstable; urgency=low
-
- * No longer installs spurious Makefile.PL in /usr/share/perl5/Mail
- (Closes: #304813)
-
- -- Gunnar Wolf <gwolf at debian.org> Mon, 18 Apr 2005 15:16:49 -0500
-
-libmail-box-perl (2.060-1) unstable; urgency=low
-
- * New upstream release (Closes: #293074)
- * New maintainer - Debian Perl Group <pkg-perl-
- maintainer at lists.alioth.debian.org> via Gunnar Wolf
- <gwolf at debian.org> - Thanks, Jeroen van Wolffelaar, for
- remembering me about it :-/ (Closes: #282298)
- * Added dependency and build-dependency on libfile-remove-perl and
- libuser-identity-perl
-
- -- Gunnar Wolf <gwolf at debian.org> Fri, 8 Apr 2005 16:13:29 -0500
-
-libmail-box-perl (2.055-1) unstable; urgency=low
-
- * New upstream release
- * debian/rules clean up.
- * Depends and Build-Depends put into single line to stop lintian
- complaining.
-
- -- Adam Byrtek <alpha at debian.org> Mon, 31 May 2004 18:15:21 +0200
-
-libmail-box-perl (2.052-2) unstable; urgency=low
-
- * Alternate dependency upon perl (>= 5.8.2-2) fixed
- (closes: #220854).
- * Standards-Version raised to 3.6.1.
-
- -- Adam Byrtek <alpha at debian.org> Mon, 26 Jan 2004 00:08:10 +0100
-
-libmail-box-perl (2.052-1) unstable; urgency=low
-
- * New upstream release (closes: #192057).
- * Missing comma in debian/control fixed (closes: #212111).
- * Added alternate dependency upon perl (>= 5.8.2-2), because
- Scalar::Utils is now included in it (closes: #220854).
- * Depends and Suggests fields updated.
- * Makefile.PL patched so it can work non-interactively.
-
- -- Adam Byrtek <alpha at debian.org> Wed, 14 Jan 2004 23:04:46 +0100
-
-libmail-box-perl (2.038-1) unstable; urgency=low
-
- * New upstream release.
- * Tests are not run upon build, they are too restrictive when comes to
- dependencies and require loopback interface (closes: #182418).
-
- -- Adam Byrtek <alpha at debian.org> Wed, 5 Mar 2003 15:58:59 +0100
-
-libmail-box-perl (2.029-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Adam Byrtek <alpha at debian.org> Sun, 17 Nov 2002 21:27:21 +0100
-
-libmail-box-perl (2.026-2) unstable; urgency=low
-
- * debian/watch file added.
- * Mail::Message::Convert::MailInternet fixed
- Closes: #160055.
-
- -- Adam Byrtek <alpha at debian.org> Sun, 17 Nov 2002 14:48:11 +0100
-
-libmail-box-perl (2.026-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Adam Byrtek <alpha at debian.org> Sun, 13 Oct 2002 18:17:24 +0200
-
-libmail-box-perl (2.021-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Adam Byrtek <alpha at debian.org> Fri, 6 Sep 2002 22:11:59 +0200
-
-libmail-box-perl (2.009-3) unstable; urgency=low
-
- * Fixed build-dependencies... which I've forgotten about (needed for
- 'make test'). Closes: #142157.
-
- -- Adam Byrtek <alpha at debian.org> Wed, 10 Apr 2002 14:12:46 +0200
-
-libmail-box-perl (2.009-2) unstable; urgency=low
-
- * Fixed dependencies.
-
- -- Adam Byrtek <alpha at debian.org> Tue, 12 Mar 2002 23:32:23 +0100
-
-libmail-box-perl (2.009-1) unstable; urgency=low
-
- * Initial Release.
- * Closes: #136457.
-
- -- Adam Byrtek <alpha at debian.org> Tue, 12 Mar 2002 17:12:22 +0100
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/debian/changelog (from rev 1522, packages/libmail-box-perl/trunk/debian/changelog)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/debian/rules
===================================================================
--- packages/libmail-box-perl/trunk/debian/rules 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/debian/rules 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,59 +0,0 @@
-#!/usr/bin/make -f
-
-export DH_COMPAT=4
-
-PERL ?= /usr/bin/perl
-
-configure: configure-stamp
-configure-stamp:
- dh_testdir
- $(PERL) Makefile.PL INSTALLDIRS=vendor
- touch configure-stamp
-
-build: build-stamp
-build-stamp: configure-stamp
- dh_testdir
- $(MAKE) OPTIMIZE="-O2 -g -Wall"
- $(MAKE) test
- touch build-stamp
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp configure-stamp
- rm -rf a/ t/ tests/a/
- rm -f tests/folders/mbox.win
- dh_clean
- -$(MAKE) distclean
-
-install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
- $(MAKE) install PREFIX=$(CURDIR)/debian/libmail-box-perl/usr
- install -d $(CURDIR)/debian/$(PACKAGE)/usr/share/lintian/overrides
- install -m 644 debian/lintian_overrides $(CURDIR)/debian/$(PACKAGE)/usr/share/lintian/overrides/$(PACKAGE)
- # This package install a spurious Makefile.PL in /usr/share/perl5/Mail
- # ... Just kill it. Of course, inform upstream - When it is gone,
- # we'll have to remove this couple of lines.
- rm $(CURDIR)/debian/libmail-box-perl/usr/share/perl5/Mail/Makefile.PL
-
-binary-indep: build install
-binary-arch: build install
- dh_testdir
- dh_testroot
- dh_installdocs
- dh_installexamples
- dh_installchangelogs ChangeLog
- dh_strip
- dh_compress
- dh_fixperms
- dh_installdeb
- dh_perl
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/debian/rules (from rev 1523, packages/libmail-box-perl/trunk/debian/rules)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Collection.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,66 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Box::Collection;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base qw/User::Identity::Collection Mail::Reporter/;
-
-use Mail::Box::Identity;
-
-use Scalar::Util qw/weaken/;
-
-
-sub new(@)
-{ my $class = shift;
- unshift @_,'name' if @_ % 2;
- $class->Mail::Reporter::new(@_);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
- $args->{item_type} ||= 'Mail::Box::Identity';
-
- $self->Mail::Reporter::init($args);
- $self->User::Identity::Collection::init($args);
-
- weaken($self->{MBC_manager})
- if $self->{MBC_manager} = delete $args->{manager};
-
- $self->{MBC_ftype} = delete $args->{folder_type};
- $self;
-}
-
-sub type() { 'folders' }
-
-#------------------------------------------
-
-
-sub manager()
-{ my $self = shift;
- return $self->{MBC_manager}
- if defined $self->{MBC_manager};
-
- my $parent = $self->parent;
- defined $parent ? $self->parent->manager : undef;
-}
-
-#------------------------------------------
-
-
-sub folderType()
-{ my $self = shift;
- return($self->{MBC_ftype} = shift) if @_;
- return $self->{MBC_ftype} if exists $self->{MBC_ftype};
-
- if(my $parent = $self->parent)
- { return $self->{MBC_ftype} = $parent->folderType;
- }
-
- undef;
-}
-
-#------------------------------------------
-
-1;
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Collection.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Collection.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,454 +0,0 @@
-
-=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.
-
-
-=head1 OVERLOADED
-
-
-overload: B<@{}>
-
-=over 4
-
-See L<User::Identity::Collection/"OVERLOADED">
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-See L<User::Identity::Collection/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Collection-E<gt>B<new>([NAME], OPTIONS)
-
-=over 4
-
- Option Defined in Default
- description L<User::Identity::Item> undef
- folder_type <from parent>
- item_type L<User::Identity::Collection> L<Mail::Box::Identity|Mail::Box::Identity>
- log L<Mail::Reporter> C<'WARNINGS'>
- manager <from parent>
- name L<User::Identity::Item> C<'folders'>
- parent L<User::Identity::Item> C<undef>
- roles L<User::Identity::Collection> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. description STRING
-
-. folder_type CLASS
-
-. item_type CLASS
-
-. log LEVEL
-
-. manager OBJECT
-
-=over 4
-
-An L<Mail::Box::Manager|Mail::Box::Manager> OBJECT (could be a L<Mail::Box::Manage::User|Mail::Box::Manage::User>).
-
-=back
-
-. name STRING
-
-. parent OBJECT
-
-. roles ROLE|ARRAY
-
-. trace LEVEL
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Collection-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Collection-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Collection-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<description>
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<folderType>([FOLDERCLASS])
-
-=over 4
-
-Returns the type of folder (on this location). When specified, then
-FOLDERCLASS must be a L<Mail::Box|Mail::Box> extension.
-
-=back
-
-$obj-E<gt>B<itemType>
-
-=over 4
-
-See L<User::Identity::Collection/"Attributes">
-
-=back
-
-$obj-E<gt>B<manager>
-
-=over 4
-
-The L<Mail::Box::Manager|Mail::Box::Manager> (usually a L<Mail::Box::Manage::User|Mail::Box::Manage::User> object),
-which is handling the opening of folders.
-
-=back
-
-$obj-E<gt>B<name>([NEWNAME])
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<roles>
-
-=over 4
-
-See L<User::Identity::Collection/"Attributes">
-
-=back
-
-=head2 Collections
-
-
-$obj-E<gt>B<add>(COLLECTION, ROLE)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<addCollection>(OBJECT | ([TYPE], OPTIONS))
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<collection>(NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<parent>([PARENT])
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<removeCollection>(OBJECT|NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<type>
-
-Mail::Box::Collection-E<gt>B<type>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<user>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-=head2 Maintaining roles
-
-
-$obj-E<gt>B<addRole>(ROLE| ( [NAME],OPTIONS ) | ARRAY-OF-OPTIONS)
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-$obj-E<gt>B<removeRole>(ROLE|NAME)
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-$obj-E<gt>B<renameRole>(ROLE|OLDNAME, NEWNAME)
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-$obj-E<gt>B<sorted>
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-=head2 Searching
-
-
-$obj-E<gt>B<find>(NAME|CODE|undef)
-
-=over 4
-
-See L<User::Identity::Collection/"Searching">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> $object is not a collection.
-
-The first argument is an object, but not of a class which extends
-L<User::Identity::Collection|User::Identity::Collection>.
-
-I<Error:> Cannot create a $type to add this to my collection.
-
-Some options are specified to create a $type object, which is native to
-this collection. However, for some reason this failed.
-
-I<Error:> Cannot load collection module for $type ($class).
-
-Either the specified $type does not exist, or that module named $class returns
-compilation errors. If the type as specified in the warning is not
-the name of a package, you specified a nickname which was not defined.
-Maybe you forgot the 'require' the package which defines the nickname.
-
-I<Error:> Cannot rename $name into $newname: already exists
-
-
-I<Error:> Cannot rename $name into $newname: doesn't exist
-
-
-I<Error:> Creation of a collection via $class failed.
-
-The $class did compile, but it was not possible to create an object
-of that class using the options you specified.
-
-I<Error:> Don't know what type of collection you want to add.
-
-If you add a collection, it must either by a collection object or a
-list of options which can be used to create a collection object. In
-the latter case, the type of collection must be specified.
-
-I<Warning:> No collection $name
-
-The collection with $name does not exist and can not be created.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Wrong type of role for $collection: requires a $expect but got a $type
-
-Each $collection groups sets of roles of one specific type ($expect). You
-cannot add objects of a different $type.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Collection.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Collection.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,129 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::Dbx::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::File::Message';
-
-use Carp;
-use File::Copy qw/move/;
-
-use Mail::Message::Body::String;
-use Mail::Message::Head::Partial;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- my $dbx = $args->{dbx_record};
- unless(defined $dbx)
- { $self->log(ERROR => 'Dbx record required to create the message.');
- return;
- }
- push @{$args->{labels}}, (seen => $dbx->is_seen);
-
- $self->SUPER::init($args);
-
- $self->{MBDM_dbx} = $dbx;
- $self->{MBDM_account_name} = $args->{account_name} || $dbx->oe_account_name;
- $self->{MBDM_account_nr} = $args->{account_nr} || $dbx->oe_account_num;
- $self;
-}
-
-#-------------------------------------------
-
-sub loadHead()
-{ my $self = shift;
- my $head = $self->head;
- return $head unless $head->isDelayed;
-
- $self->loadBody;
- $self->head;
-}
-
-#-------------------------------------------
-
-sub loadBody()
-{ my $self = shift;
-
- my $body = $self->body;
- return $body unless $body->isDelayed;
-
- my $dbx = $self->dbxRecord or return;
- unless(defined $dbx)
- { $self->log(ERROR => 'Unable to read delayed message.');
- return;
- }
-
- my $head;
- if(my $text = $dbx->as_string)
- { my $message = Mail::Message->read($text);
- $head = $message->head;
- $head->modified(0);
- $body = $message->body;
- }
- else
- { # of course, it is not a complete head :( probably, we need a
- # new object... put for now, make it simple.
- $head = Mail::Message::Head::Partial->new;
- my $ff = 'Mail::Message::Field::Fast';
-
- $head->addNoRealize($ff->new(Subject => $dbx->subject));
- $head->addNoRealize($ff->new('Message-ID' => $dbx->msgid));
- $head->addNoRealize($ff->new('X-Dbx-Account-Name'=>$self->accountName));
- $head->addNoRealize($ff->new('X-Dbx-Account-Nr'=> $self->accountNr));
-
- if(my $parents = $dbx->parents_ids)
- { $head->addNoRealize($ff->new(References => $parents));
- }
-
- # I know this is not the right date, but at least it is something.
- $head->addNoRealize($ff->new(Date => $ff->toDate($dbx->rcvd_gmtime)));
-
- if(my $send_addr = $dbx->sender_address)
- { my $sender = Mail::Address->new($dbx->sender_name, $send_addr);
- # This should be stored in Sender, because From can have
- # more than one address,.... however... this is Outlook.
- $head->addNoRealize($ff->new(From => $send_addr));
- }
-
- if(my $to_addr = $dbx->recip_address)
- { my $to = Mail::Address->new($dbx->recip_name, $to_addr);
- # Also not correct to put it in To: Delivered-To is the
- # right choice. But it is nice to have a To field...
- $head->addNoRealize($ff->new(To => $to));
- }
-
- $body = Mail::Message::Body::String->new(data => << 'NOBODY');
- * The contents of this message was not received
-
-NOBODY
- }
-
- $self->head($head);
- $self->storeBody($body);
-
- $self->log(PROGRESS => 'Loaded delayed message.');
- $self;
-}
-
-#-------------------------------------------
-
-
-sub dbxRecord() { shift->{MBDM_dbx} }
-
-#-------------------------------------------
-
-
-sub accountName() { shift->{MBDM_account_name} }
-
-#-------------------------------------------
-
-
-sub accountNr() { shift->{MBDM_account_nr} }
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1025 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Dbx::Message - one message in a Dbx folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::Dbx::Message
- is a Mail::Box::File::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::Dbx ...
- my $message = $folder->message(10);
-
-
-=head1 DESCRIPTION
-
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::Dbx::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- account_name <from dbx_record>
- account_nr <from dbx_record>
- body L<Mail::Message> undef
- body_type L<Mail::Box::Message> <from folder>
- dbx_record <required>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- folder L<Mail::Box::Message> <required>
- from_line L<Mail::Box::File::Message> undef
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- seen <from dbx_record>
- size L<Mail::Box::Message> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
-
-. account_name STRING
-
-=over 4
-
-The string representation of the account which was used to retreive the
-message.
-
-=back
-
-. account_nr INTEGER
-
-=over 4
-
-The numeric representation of the account which was used to retrieve
-the message.
-
-=back
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-. dbx_record C<Mail::Transport::Dbx::Email>
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. folder FOLDER
-
-. from_line STRING
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. seen BOOLEAN
-
-=over 4
-
-A flag (see L<label()|Mail::Message/"Flags">) which tells wether this message has been read
-by the user. If read, them message is I<old>, which is the same as
-I<seen>. Folders store this flag in different ways.
-
-=back
-
-. size INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::Dbx::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::Dbx::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::Dbx::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::Dbx::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<dbxRecord>
-
-=over 4
-
-Returns the Mail::Transport::Dbx::Email record of the message.
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<fromLine>([LINE])
-
-=over 4
-
-See L<Mail::Box::File::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Box::File::Message/"METHODS">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::Dbx::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER)
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Dbx::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Dbx::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Dbx::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::Dbx::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-=head2 The flags
-
-
-$obj-E<gt>B<accountName>
-
-=over 4
-
-Returns the Outlook Express account name which was used to retreive
-this message, represented as a string. The L<accountNr()|Mail::Box::Dbx::Message/"The flags"> returns
-a numerical representation of the same fact.
-
-=back
-
-$obj-E<gt>B<accountNr>
-
-=over 4
-
-Returns the Outlook Express account name which was used to retreive
-this message, represented as a number. The L<accountName()|Mail::Box::Dbx::Message/"The flags"> returns
-a string representation of the same fact.
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> Dbx record required to create the message.
-
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,165 +0,0 @@
-
-use strict;
-package Mail::Box::Dbx;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::File';
-
-use Mail::Box::Dbx::Message;
-use Mail::Message::Head::Delayed;
-use Mail::Message::Body::Delayed;
-
-use Mail::Transport::Dbx 0.04;
-use File::Basename 'dirname';
-
-
-my $default_folder_dir = '.';
-
-sub init($)
-{ my ($self, $args) = @_;
- $args->{folder} ||= '=Folders.dbx';
- $args->{folderdir} ||= $default_folder_dir;
- $args->{lock_type} ||= 'NONE';
-
- $self->SUPER::init($args) or return;
-
- $self->log(WARNING => "Dbx folders are read-only.")
- if $self->writable;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub create($@) { shift->notImplemented }
-
-#-------------------------------------------
-
-
-sub foundIn($@)
-{ my $class = shift;
- my $name = @_ % 2 ? shift : undef;
- my %args = @_;
-
- $name ||= $args{folder} or return;
- $name =~ m/\.dbx$/i;
-}
-
-#-------------------------------------------
-
-sub writeMessages($) { shift->notImplemented }
-sub appendMessages($) { shift->notImplemented }
-sub type() { 'dbx' }
-
-#-------------------------------------------
-
-sub readMessages()
-{ my ($self, %args) = @_;
-
- my @log = $self->logSettings;
- my @msgopts =
- ( @log
- , folder => $self
- , head_type => $args{head_type}
- , field_type => $args{field_type}
- , trusted => $args{trusted}
- );
-
- my $parser = $self->parser
- or return;
-
- my $head_type = $self->{MB_head_delayed_type};
- my $body_type = $self->{MB_body_delayed_type};
-
- foreach my $record ($parser->emails)
- { my $head = $head_type->new(@log);
-
- my $message = $args{message_type}->new
- ( @msgopts
- , dbx_record => $record
- , head => $head_type->new(@log)
- ) or next;
-
- $message->storeBody($body_type->new(@log, message => $message));
- $self->storeMessage($message);
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-sub updateMessages() { shift }
-
-#-------------------------------------------
-
-sub nameOfSubFolder($;$)
-{ my $thing = shift;
- my $name = (shift). '.dbx';
- my $parent = @_ ? shift : ref $thing ? $thing->filename : undef;
- defined $parent ? File::Spec->catfile(dirname($parent), $name) : $name;
-}
-
-#-------------------------------------------
-
-
-sub listSubFolders(@)
-{ my ($thingy, %args) = @_;
- my $self = ref $thingy ? $thingy : $thingy->new;
- my $skip_empty = $args{skip_empty} || 0;
- my $check = $args{check} || 0;
-
- my $parser = $self->parser
- or return;
-
- my @subs = map { $_->name } $parser->subfolders;
-
- if($args{check})
- { my $dir = dirname $self->filename;
- @subs = grep { -f File::Spec->catfile($dir, $_.'.dbx') } @subs;
- }
-
- return @subs unless $skip_empty;
-
- my @filled;
- foreach my $sub (@subs)
- { my $f = $self->openSubFolder($sub, lock_type => 'NONE');
- push @filled, $f if defined $f && scalar($f->messages);
- }
- @filled;
-}
-
-#-------------------------------------------
-
-
-sub folderToFilename($$)
-{ my ($thingy, $name, $folderdir) = @_;
- return $name if File::Spec->file_name_is_absolute($name);
- $name =~ s#^=#$folderdir/#;
- $name;
-}
-
-#-------------------------------------------
-
-
-sub parser()
-{ my $self = shift;
- return $self->{MBD_parser}
- if defined $self->{MBD_parser};
-
- my $filename = $self->filename;
- my $parser = eval { Mail::Transport::Dbx->new($filename) };
-
- unless(defined $parser)
- { $self->log(ERROR => "Cannot read dbx folder file $filename.");
- return undef;
- }
-
- $self->{MBD_parser} = $parser;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,936 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Dbx - read Outlook Express folders
-
-
-=head1 INHERITANCE
-
- Mail::Box::Dbx
- is a Mail::Box::File
- is a Mail::Box
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Dbx;
- my $folder = Mail::Box::Dbx->new(...);
-
-
-=head1 DESCRIPTION
-
-This documentation describes how to read from Outlook Express (dbx)
-folders. Even on Unix/Linux, you can access these folders to
-read the data, or copy it to a different format. Modifying of
-xbd files is not supported.
-
-These dbx folders are accessed using Mail::Transport::Dbx which
-is distributed via CPAN as separate package. This C<MAil::Transport::Dbx>
-module is based on the open source library named C<libpst>, which can
-be found at L<http://alioth.debian.org/projects/libpst/>. The library does
-not support writing of dbx files, and therefore limits the possibilities
-of this package.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Dbx-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- access L<Mail::Box> always C<'r'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box::File> <see description>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> C<not implemented>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C<=Folders.dbx>
- folderdir L<Mail::Box> C<.>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups L<Mail::Box> <false>
- lock_extension L<Mail::Box::File> C<'.lock'>
- lock_file L<Mail::Box> <foldername><lock-extension>
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> C<'NONE'>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::Dbx::Message|Mail::Box::Dbx::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- remove_when_empty L<Mail::Box> C<not implemented>
- save_on_exit L<Mail::Box> C<not implemented>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <depends on folder location>
- write_policy L<Mail::Box::File> C<not implemented>
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. keep_dups BOOLEAN
-
-. lock_extension FILENAME|STRING
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. write_policy 'REPLACE'|'INPLACE'|undef
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::Dbx-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::File/"METHODS">
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<filename>
-
-=over 4
-
-See L<Mail::Box::File/"The folder">
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::Dbx-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-It is adviced to set the C<check> flag, because dbx folder often list
-large amounts of folder names which do not really exist. However, checking
-does consume some time.
-
- Option Defined in Default
- check L<Mail::Box> <false>
- folder L<Mail::Box> <from calling object>
- folderdir L<Mail::Box> <from folder>
- skip_empty L<Mail::Box> <false>
-
-. check BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. skip_empty BOOL
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::Dbx-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::Dbx-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-Mail::Box::Dbx-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-=over 4
-
-Creation is not supported for dbx folders.
-
- Option Defined in Default
- folderdir L<Mail::Box> undef
-
-. folderdir DIRECTORY
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<folderToFilename>(FOLDERNAME, FOLDERDIR)
-
-Mail::Box::Dbx-E<gt>B<folderToFilename>(FOLDERNAME, FOLDERDIR)
-
-=over 4
-
-Translate a folder name into a filename, using the
-FOLDERDIR value to replace a leading C<=>.
-
-=back
-
-Mail::Box::Dbx-E<gt>B<foundIn>([FOLDERNAME], [OPTIONS])
-
-=over 4
-
-If no FOLDERNAME is specified, then the value of the C<folder> option
-is taken. A dbx folder is a file which name ends on C<.dbx> (case
-insensitive).
-
- Option Defined in Default
- folder undef
- folderdir L<Mail::Box> undef
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<messageCreateOptions>([TYPE, CONFIG])
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<moveAwaySubFolder>(DIRECTORY, EXTENSION)
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<parser>
-
-=over 4
-
-The parsing of messages is a combined job for the Mail::Transport::Dbx
-module (to get the right data) and L<read()|Mail::Box/"Internals">. Asking for the parser
-will provide the transporter object. If asked more than once, each time
-the same object will be returned.
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-=head3 File based folders
-
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::Dbx-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Dbx-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Dbx-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Dbx-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot append messages to folder file $filename: $!
-
-Appending messages to a not-opened file-organized folder may fail when the
-operating system does not allow write access to the file at hand.
-
-I<Error:> Cannot move away sub-folder $dir
-
-
-I<Error:> Cannot read dbx folder file $filename.
-
-
-I<Warning:> Cannot remove folder $name file $filename: $!
-
-Writing an empty folder will usually cause that folder to be removed,
-which fails for the indicated reason. L<new(remove_when_empty)|Mail::Box/"Constructors">
-
-I<Warning:> Cannot remove folder $name file $filename: $!
-
-Writing an empty folder will usually cause that folder to be removed,
-which fails for the indicated reason. L<new(remove_when_empty)|Mail::Box/"Constructors">
-controls whether the empty folder will removed; setting it to false
-(C<0>) may be needed to avoid this message.
-
-I<Error:> Cannot replace $filename by $tempname, to update folder $name: $!
-
-The replace policy wrote a new folder file to update the existing, but
-was unable to give the final touch: replacing the old version of the
-folder file for the indicated reason.
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Warning:> Dbx folders are read-only.
-
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> File too short to get write message $nr ($size, $need)
-
-Mail::Box is lazy: it tries to leave messages in the folders until they
-are used, which saves time and memory usage. When this message appears,
-something is terribly wrong: some lazy message are needed for updating the
-folder, but they cannot be retreived from the original file anymore. In
-this case, messages can be lost.
-
-This message does appear regularly on Windows systems when using the
-'replace' write policy. Please help to find the cause, probably something
-to do with Windows incorrectly handling multiple filehandles open in the
-same file.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Unable to update folder $self.
-
-When a folder is to be written, both replace and inplace write policies are
-tried, If both fail, the whole update fails. You may see other, related,
-error messages to indicate the real problem.
-
-
-=head1 DETAILS
-
-
-=head2 How DBX folders work
-
-DBX files are create by Outlook Express. I can not tell you too much
-about it, because me (as author) never use Windows or MicroSoft tools.
-Still, it is possible to access some Outlook created folders from Unix.
-
-The folder structure for dbx starts with a single C<Folders.dbx>
-file. This folder contains names of sub-folders. Each folder can
-either contain messages, or contains sub-folders. Combinations are
-not possible.
-
-=head2 This implementation
-
-The ol2mbox project (see L<http://sourceforge.net/project/ol2mbox/>)
-has created a C<libdbx> which can read dbx files using nearly any
-operating system. You can simply transport a dbx file from Windows
-to Unix/Linux and the read all the messages from it.
-
-Tassilo von Parseval wrote a Perl wrapper around this C-library,
-and distributes it as Mail::Transport::Dbx. Although it named in
-one the MailBox namespaces, it is a separate product, because it
-requires a C compiler. Besides, the module will have its own life.
-
-=head2 Converting DBX folders to MBOX
-
-The title of this section is to attract your attension, but is does
-not describe anything special related to DBX or MBOX: you can convert
-any kind of mail folder into an other with the following code.
-
-I<Example:> converting folders
-
-
- my $from = Mail::Box::Dbx->new(folder => 'Folder.dbx')
- or exit;
-
- my $to = Mail::Box::Mbox->new(folder => '/tmp/mbox',
- access => 'w', create => 1) or die;
-
- $from->copyTo($to);
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dbx.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dbx.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dir/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,217 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::Dir::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Message';
-
-use File::Copy qw/move/;
-use IO::File;
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- $self->filename($args->{filename})
- if $args->{filename};
-
- $self->{MBDM_fix_header} = $args->{fix_header};
- $self;
-}
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-sub print(;$)
-{ my $self = shift;
- my $out = shift || select;
-
- return $self->SUPER::print($out)
- if $self->isModified;
-
- my $filename = $self->filename;
- if($filename && -r $filename)
- { if(open my $in, '<', $filename)
- { local $_;
- print $out $_ while <$in>;
- close $in;
- return $self;
- }
- }
-
- $self->SUPER::print($out);
-
- 1;
-}
-
-#-------------------------------------------
-
-BEGIN { *write = \&print } # simply alias
-
-#-------------------------------------------
-
-
-sub filename(;$)
-{ my $self = shift;
- @_ ? ($self->{MBDM_filename} = shift) : $self->{MBDM_filename};
-}
-
-#-------------------------------------------
-
-
-# Asking the filesystem for the size is faster counting (in
-# many situations. It even may be lazy.
-
-sub size()
-{ my $self = shift;
-
- unless($self->isModified)
- { my $filename = $self->filename;
- if(defined $filename)
- { my $size = -s $filename;
- return $size if defined $size;
- }
- }
-
- $self->SUPER::size;
-}
-
-#-------------------------------------------
-
-sub diskDelete()
-{ my $self = shift;
- $self->SUPER::diskDelete;
-
- my $filename = $self->filename;
- unlink $filename if $filename;
- $self;
-}
-
-#-------------------------------------------
-
-
-sub parser()
-{ my $self = shift;
-
- my $parser = Mail::Box::Parser->new
- ( filename => $self->{MBDM_filename}
- , mode => 'r'
- , fix_header_errors => $self->{MBDM_fix_header}
- , $self->logSettings
- );
-
- unless($parser)
- { $self->log(ERROR => "Cannot create parser for $self->{MBDM_filename}.");
- return;
- }
-
- $parser;
-}
-
-#-------------------------------------------
-
-
-sub loadHead()
-{ my $self = shift;
- my $head = $self->head;
- return $head unless $head->isDelayed;
-
- my $folder = $self->folder;
- $folder->lazyPermitted(1);
-
- my $parser = $self->parser or return;
- $self->readFromParser($parser);
- $parser->stop;
-
- $folder->lazyPermitted(0);
-
- $self->log(PROGRESS => 'Loaded delayed head.');
- $self->head;
-}
-
-#-------------------------------------------
-
-
-sub loadBody()
-{ my $self = shift;
-
- my $body = $self->body;
- return $body unless $body->isDelayed;
-
- my $head = $self->head;
- my $parser = $self->parser or return;
-
- if($head->isDelayed)
- { $head = $self->readHead($parser);
- if(defined $head)
- { $self->log(PROGRESS => 'Loaded delayed head.');
- $self->head($head);
- }
- else
- { $self->log(ERROR => 'Unable to read delayed head.');
- return;
- }
- }
- else
- { my ($begin, $end) = $body->fileLocation;
- $parser->filePosition($begin);
- }
-
- my $newbody = $self->readBody($parser, $head);
- $parser->stop;
-
- unless(defined $newbody)
- { $self->log(ERROR => 'Unable to read delayed body.');
- return;
- }
-
- $self->log(PROGRESS => 'Loaded delayed body.');
- $self->storeBody($newbody->contentInfoFrom($head));
-}
-
-#-------------------------------------------
-
-
-sub create($)
-{ my ($self, $filename) = @_;
-
- my $old = $self->filename || '';
- return $self if $filename eq $old && !$self->isModified;
-
- # Write the new data to a new file.
-
- my $new = $filename . '.new';
- my $newfile = IO::File->new($new, 'w');
- $self->log(ERROR => "Cannot write message to $new: $!"), return
- unless $newfile;
-
- $self->write($newfile);
- $newfile->close;
-
- # Accept the new data
-# maildir produces warning where not expected...
-# $self->log(WARNING => "Failed to remove $old: $!")
-# if $old && !unlink $old;
-
- unlink $old if $old;
-
- $self->log(ERROR => "Failed to move $new to $filename: $!"), return
- unless move($new, $filename);
-
- $self->modified(0);
-
- # Do not affect flags for Maildir (and some other) which keep it
- # in there. Flags will be processed later.
- $self->Mail::Box::Dir::Message::filename($filename);
-
- $self;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dir/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dir/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1047 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Dir::Message - one message in a directory organized folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::Dir::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
- Mail::Box::Dir::Message is extended by
- Mail::Box::MH::Message
- Mail::Box::Maildir::Message
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::MH ...
- my $message = $folder->message(10);
-
-
-=head1 DESCRIPTION
-
-A C<Mail::Box::Dir::Message> is a base class for one message in a
-directory organized folder; each message is stored in a separate file.
-There are no objects of type C<Mail::Box::Dir::Message>, only extensions
-are allowed to be created.
-
-At the moment, three of these extended message types are implemented:
-
-=over 4
-
-=item * L<Mail::Box::MH::Message|Mail::Box::MH::Message>
-
-which represents one message in a L<Mail::Box::MH|Mail::Box::MH> folder. MH folders are
-very, very simple.... and hence not sophisticated nor fast.
-
-=item * L<Mail::Box::Maildir::Message|Mail::Box::Maildir::Message>
-
-which represents one message in a L<Mail::Box::Maildir|Mail::Box::Maildir> folder. Flags are
-kept in the message's filename. It is stateless, so you will never loose
-a message.
-
-=item * Mail::Box::Netzwert::Message
-
-which represents one message in a Mail::Box::Netzwert folder. As advantage,
-it stores pre-parsed information in the message file. As disadvantage: the
-code is not GPLed (yet).
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::Dir::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a messages in a directory organized folder.
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type L<Mail::Box::Message> <from folder>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- filename undef
- fix_header C<false>
- folder L<Mail::Box::Message> <required>
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- size L<Mail::Box::Message> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. filename FILENAME
-
-=over 4
-
-The file where the message is stored in.
-
-=back
-
-. fix_header BOOLEAN
-
-=over 4
-
-See L<Mail::Box::new(fix_headers)|Mail::Box/"Constructors">.
-
-=back
-
-. folder FOLDER
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. size INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::Dir::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::Dir::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::Dir::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::Dir::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-Returns the name of the file in which this message is actually stored. This
-will return C<undef> when the message is not stored in a file.
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::Dir::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FILENAME)
-
-=over 4
-
-Create the message in the specified file. If the message already has
-a filename and is not modified, then a move is tried. Otherwise the
-message is printed to the file. If the FILENAME already exists for
-this message, nothing is done. In any case, the new FILENAME is set
-as well.
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-This method is called by the autoloader when the body of the message
-is needed.
-
-=back
-
-$obj-E<gt>B<loadHead>
-
-=over 4
-
-This method is called by the autoloader when the header of the message
-is needed.
-
-=back
-
-$obj-E<gt>B<parser>
-
-=over 4
-
-Create and return a parser for this message (-file).
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Dir::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Dir::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Dir::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::Dir::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot create parser for $filename.
-
-For some reason (the previous message have told you already) it was not possible
-to create a message parser for the specified filename.
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> Cannot write message to $filename: $!
-
-When a modified or new message is written to disk, it is first written
-to a temporary file in the folder directory. For some reason, it is
-impossible to create this file.
-
-I<Error:> Failed to move $new to $filename: $!
-
-When a modified or new message is written to disk, it is first written
-to a temporary file in the folder directory. Then, the new file is
-moved to replace the existing file. Apparently, the latter fails.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-For some reason, the header of the message could be read, but the body
-cannot. Probably the file has disappeared or the permissions were
-changed during the progress of the program.
-
-I<Error:> Unable to read delayed head.
-
-Mail::Box tries to be I<lazy> with respect to parsing messages. When a
-directory organized folder is opened, only the filenames of messages are
-collected. At first use, the messages are read from their file. Apperently,
-a message is used for the first time here, but has disappeared or is
-unreadible for some other reason.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dir/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dir.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,107 +0,0 @@
-
-use strict;
-package Mail::Box::Dir;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use base 'Mail::Box';
-
-use Mail::Box::Dir::Message;
-
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::File;
-use Mail::Message::Body::Delayed;
-use Mail::Message::Body::Multipart;
-
-use Mail::Message::Head;
-use Mail::Message::Head::Delayed;
-
-use Carp;
-use File::Copy;
-use File::Spec;
-use File::Basename;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{body_type} ||= sub {'Mail::Message::Body::Lines'};
-
- return undef
- unless $self->SUPER::init($args);
-
- my $class = ref $self;
- my $directory = $self->{MBD_directory}
- = $args->{directory} || $self->directory;
-
- if(-d $directory) {;}
- elsif($args->{create} && $class->create($directory, %$args)) {;}
- else
- { $self->log(NOTICE => "No directory $directory for folder of $class");
- return undef;
- }
-
- # About locking
-
- for($args->{lock_file})
- { $self->locker->filename
- ( !defined $_ ? File::Spec->catfile($directory, '.lock') # default
- : File::Spec->file_name_is_absolute($_) ? $_ # absolute
- : File::Spec->catfile($directory, $_) # relative
- );
- }
-
- # Check if we can write to the folder, if we need to.
-
- { # filetest 'access' is slower, but works correctly if we have a
- # filesystem with ACLs
- use filetest 'access';
- if($self->writable && -e $directory && ! -w $directory)
- { $self->log(WARNING=> "Folder directory $directory is write-protected.");
- $self->{MB_access} = 'r';
- }
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-sub organization() { 'DIRECTORY' }
-
-#-------------------------------------------
-
-
-sub directory()
-{ my $self = shift;
-
- $self->{MBD_directory}
- ||= $self->folderToDirectory($self->name, $self->folderdir);
-}
-
-#-------------------------------------------
-
-sub nameOfSubFolder($;$)
-{ my ($thing, $name) = (shift, shift);
- my $parent = @_ ? shift : ref $thing ? $thing->directory : undef;
- defined $parent ? "$parent/$name" : $name;
-}
-
-#-------------------------------------------
-
-
-sub folderToDirectory($$)
-{ my ($class, $name, $folderdir) = @_;
- my $dir = ( $name =~ m#^=\/?(.*)# ? "$folderdir/$1" : $name);
- $dir =~ s!/$!!;
- $dir;
-}
-
-#-------------------------------------------
-
-
-sub readMessageFilenames() {shift->notImplemented}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dir.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Dir.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,835 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Dir - handle folders with a file per message.
-
-
-=head1 INHERITANCE
-
- Mail::Box::Dir
- is a Mail::Box
- is a Mail::Reporter
-
- Mail::Box::Dir is extended by
- Mail::Box::MH
- Mail::Box::Maildir
-
-
-=head1 SYNOPSIS
-
- # Do not instantiate this object
-
-
-=head1 DESCRIPTION
-
-This documentation describes the way directory organized mailboxes work.
-At the moment, this object is extended by
-
-=over 4
-
-=item * L<Mail::Box::MH|Mail::Box::MH>
-
-MH folders, which are represented by a directory containing files which
-are sequentially numbered.
-
-=item * L<Mail::Box::Maildir|Mail::Box::Maildir>
-
-Maildir folders, which are located in a directory which has sub-directories
-named C<tmp>, C<new>, and C<cur>. Each of these directories may contain
-files with names which are a combination of a numeric timestamp and some
-status flags.
-
-=item * Mail::Box::Netzwert
-
-This folder type was especially developed for Netzwert AG, optimized to
-run on a cluster of servers with folders on NFS. The code is not publicly
-available (yet).
-
-=back
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Dir-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- access L<Mail::Box> C<'r'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <false>
- directory <derived from folder name>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C<$ENV{MAIL}>
- folderdir L<Mail::Box> undef
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups L<Mail::Box> <false>
- lock_file L<Mail::Box> <folder>C</.lock>
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> L<Mail::Box::Locker::DotLock|Mail::Box::Locker::DotLock>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::Message|Mail::Box::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- remove_when_empty L<Mail::Box> <true>
- save_on_exit L<Mail::Box> <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <depends on folder location>
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. directory DIRECTORY
-
-=over 4
-
-For rare folder types, the directory name may differ from the folder
-name.
-
-=back
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. keep_dups BOOLEAN
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::Dir-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<directory>
-
-=over 4
-
-Returns the directory related to this folder.
-
-I<Example:>
-
- print $folder->directory;
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::Dir-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::Dir-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::Dir-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-Mail::Box::Dir-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<folderToDirectory>(FOLDERNAME, FOLDERDIR)
-
-=over 4
-
-(class method) Translate a foldername into a filename, with use of the
-FOLDERDIR to replace a leading C<=>.
-
-=back
-
-Mail::Box::Dir-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessageFilenames>(DIRECTORY)
-
-=over 4
-
-Returns a list of all filenames which are found in this folder
-directory and represent a message. The filenames are returned as
-relative path.
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::Dir-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Dir-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Dir-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Dir-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> Folder $name is opened read-only
-
-You can not write to this folder unless you have opened the folder to
-write or append with L<new(access)|Mail::Box/"Constructors">, or the C<force> option is set true.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Warning:> Folder directory $directory is write-protected.
-
-The folder directory does already exist and is write protected, which may
-interfere with the requested write access. Change new(access) or the
-permissions on the directory.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Warning:> No directory $name for folder of $class
-
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Writing folder $name failed
-
-For some reason (you probably got more error messages about this problem)
-it is impossible to write the folder, although you should because there
-were changes made.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Dir.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Dir.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/FastScalar.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,207 +0,0 @@
-package Mail::Box::FastScalar;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-
-use strict;
-use warnings;
-use integer;
-
-sub new($) {
- my ($class, $ref) = @_;
- $$ref = '' unless defined($$ref);
- my $self = { ref => $ref, pos => 0 };
-
- bless $self, $class;
- return $self;
-}
-
-sub autoflush() {}
-
-sub binmode() {}
-
-sub clearerr { return 0; }
-
-sub flush() {}
-
-sub sync() { return 0; }
-
-sub opened() { return $_[0]->{ref}; }
-
-sub open($) {
- my $self = $_[0];
-
- ${$_[1]} = '' unless defined(${$_[1]});
- $self->{ref} = $_[1];
- $self->{pos} = 0;
-}
-
-sub close() {
- undef $_[0]->{ref};
-}
-
-sub eof() {
- my $self = $_[0];
-
- return $self->{pos} >= length(${$self->{ref}});
-}
-
-sub getc() {
- my $self = $_[0];
-
- return substr(${$self->{ref}}, $self->{pos}++, 1);
-}
-
-sub print {
- my $self = shift;
- my $pos = $self->{pos};
- my $ref = $self->{ref};
- my $len = length($$ref);
-
- if ($pos >= $len) {
- $$ref .= $_ foreach @_;
- $self->{pos} = length($$ref);
- } else {
- my $buf = $#_ ? join('', @_) : $_[0];
-
- $len = length($buf);
- substr($$ref, $pos, $len) = $buf;
- $self->{pos} = $pos + $len;
- }
- 1;
-}
-
-sub read($$;$) {
- my $self = $_[0];
- my $buf = substr(${$self->{ref}}, $self->{pos}, $_[2]);
- $self->{pos} += $_[2];
-
- ($_[3] ? substr($_[1], $_[3]) : $_[1]) = $buf;
- return length($buf);
-}
-
-sub sysread($$;$) {
- return shift()->read(@_);
-}
-
-sub seek($$) {
- my $self = $_[0];
- my $whence = $_[2];
- my $len = length(${$self->{ref}});
-
- if ($whence == 0) {
- $self->{pos} = $_[1];
- } elsif ($whence == 1) {
- $self->{pos} += $_[1];
- } elsif ($whence == 2) {
- $self->{pos} = $len + $_[1];
- } else {
- return;
- }
- if ($self->{pos} > $len) {
- $self->{pos} = $len;
- } elsif ($self->{pos} < 0) {
- $self->{pos} = 0;
- }
- return 1;
-}
-
-sub sysseek($$) {
- return $_[0]->seek($_[1], $_[2]);
-}
-
-sub setpos($) {
- return $_[0]->seek($_[1], 0);
-}
-
-sub sref() {
- return $_[0]->{ref};
-}
-
-sub getpos() {
- return $_[0]->{pos};
-}
-
-sub tell() {
- return $_[0]->{pos};
-}
-
-sub write($$;$) {
- my $self = $_[0];
- my $pos = $self->{pos};
- my $ref = $self->{ref};
- my $len = length($$ref);
-
- if ($pos >= $len) {
- $$ref .= substr($_[1], $_[3] || 0, $_[2]);
- $self->{pos} = length($$ref);
- $len = $self->{pos} - $len;
- } else {
- my $buf = substr($_[1], $_[3] || 0, $_[2]);
-
- $len = length($buf);
- substr($$ref, $pos, $len) = $buf;
- $self->{pos} = $pos + $len;
- }
- return $len;
-}
-
-sub syswrite($;$$) {
- return shift()->write(@_);
-}
-
-sub getline() {
- my $self = $_[0];
- my $ref = $self->{ref};
- my $pos = $self->{pos};
-
- if (!defined($/) || (my $idx = index($$ref, $/, $pos)) == -1) {
- return if ($pos >= length($$ref));
- $self->{pos} = length($$ref);
- return substr($$ref, $pos);
- } else {
- return substr($$ref, $pos, ($self->{pos} = $idx + length($/)) - $pos);
- }
-}
-
-sub getlines() {
- my $self = $_[0];
- my @lines;
- my $ref = $self->{ref};
- my $pos = $self->{pos};
-
- if (defined($/)) {
- my $idx;
-
- while (($idx = index($$ref, $/, $pos)) != -1) {
- push(@lines, substr($$ref, $pos, ($idx + 1) - $pos));
- $pos = $idx + 1;
- }
- }
- my $r = substr($$ref, $pos);
- if (length($r) > 0) {
- push(@lines, $r);
- }
- $self->{pos} = length($$ref);
- return wantarray() ? @lines : \@lines;
-}
-
-sub TIEHANDLE {
- ((defined($_[1]) && UNIVERSAL::isa($_[1], "Mail::Box::FastScalar"))
- ? $_[1] : shift->new(@_));
-}
-
-sub GETC { shift()->getc(@_) }
-sub PRINT { shift()->print(@_) }
-sub PRINTF { shift()->print(sprintf(shift, @_)) }
-sub READ { shift()->read(@_) }
-sub READLINE { wantarray ? shift()->getlines(@_) : shift()->getline(@_) }
-sub WRITE { shift()->write(@_); }
-sub CLOSE { shift()->close(@_); }
-sub SEEK { shift()->seek(@_); }
-sub TELL { shift()->tell(@_); }
-sub EOF { shift()->eof(@_); }
-
-1;
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/FastScalar.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/FastScalar.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,48 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::FastScalar - fast alternative to IO::Scalar
-
-
-
-
-=head1 DESCRIPTION
-
-Contributed by "Todd Richmond" (richmond at proofpoint.com) This package
-should be released as separate package, but till then is incorporated
-in the Mail::Box module.
-
-Extremely fast L<IO::Scalar> replacement - >20x improvement in
-getline(s)()
-
-=head2 Warnings
-
-You cannot modify the original reference between calls unless you
-C<$obj->seek(1, 0)> to reset the object - VERY rare usage case
-
-$/ must be undef or string - "" and \scalar unimplemented
-
-
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/FastScalar.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/FastScalar.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/File/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,133 +0,0 @@
-
-use strict;
-package Mail::Box::File::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Message';
-
-use POSIX 'SEEK_SET';
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- $self->fromLine($args->{from_line})
- if exists $args->{from_line};
-
- $self;
-}
-
-#------------------------------------------
-
-sub coerce($)
-{ my ($self, $message) = @_;
- return $message if $message->isa(__PACKAGE__);
- $self->SUPER::coerce($message)->labelsToStatus;
-}
-
-#-------------------------------------------
-
-
-sub write(;$)
-{ my $self = shift;
- my $out = shift || select;
-
- $out->print($self->fromLine);
- $self->head->print($out);
- $self->body->printEscapedFrom($out);
- $out->print("\n");
- $self;
-}
-
-#-------------------------------------------
-
-sub clone()
-{ my $self = shift;
- my $clone = $self->SUPER::clone;
- $clone->{MBMM_from_line} = $self->{MBMM_from_line};
- $clone;
-}
-
-#-------------------------------------------
-
-
-sub fromLine(;$)
-{ my $self = shift;
-
- $self->{MBMM_from_line} = shift if @_;
- $self->{MBMM_from_line} ||= $self->head->createFromLine;
-}
-
-#------------------------------------------
-
-
-sub readFromParser($)
-{ my ($self, $parser) = @_;
- my ($start, $fromline) = $parser->readSeparator;
- return unless $fromline;
-
- $self->{MBMM_from_line} = $fromline;
- $self->{MBMM_begin} = $start;
-
- $self->SUPER::readFromParser($parser) or return;
- $self;
-}
-
-#-------------------------------------------
-
-sub loadHead() { shift->head }
-
-#-------------------------------------------
-
-
-sub loadBody()
-{ my $self = shift;
-
- my $body = $self->body;
- return $body unless $body->isDelayed;
-
- my ($begin, $end) = $body->fileLocation;
-
- my $parser = $self->folder->parser;
- $parser->filePosition($begin);
-
- my $newbody = $self->readBody($parser, $self->head);
- unless($newbody)
- { $self->log(ERROR => 'Unable to read delayed body.');
- return;
- }
-
- $self->log(PROGRESS => 'Loaded delayed body.');
- $self->storeBody($newbody->contentInfoFrom($self->head));
-
- $newbody;
-}
-
-#-------------------------------------------
-
-
-sub fileLocation()
-{ my $self = shift;
-
- wantarray
- ? ($self->{MBMM_begin}, ($self->body->fileLocation)[1])
- : $self->{MBMM_begin};
-}
-
-#------------------------------------------
-
-
-sub moveLocation($)
-{ my ($self, $dist) = @_;
- $self->{MBMM_begin} -= $dist;
-
- $self->head->moveLocation($dist);
- $self->body->moveLocation($dist);
- $self;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/File/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/File/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,988 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::File::Message - one message in a Mbox folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::File::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
- Mail::Box::File::Message is extended by
- Mail::Box::Dbx::Message
- Mail::Box::Mbox::Message
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::File folder => $ENV{MAIL}, ...;
- my $message = $folder->message(0);
-
-
-=head1 DESCRIPTION
-
-Maintain one message in an file based folder, any L<Mail::Box::File|Mail::Box::File>
-extension.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::File::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Messages in file-based folders use the following options for creation:
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type L<Mail::Box::Message> <from folder>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- folder L<Mail::Box::Message> <required>
- from_line undef
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- size L<Mail::Box::Message> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. folder FOLDER
-
-. from_line STRING
-
-=over 4
-
-The line which begins each message in the file. Some people detest
-this line, but this is just how things were invented...
-
-=back
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. size INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::File::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::File::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::File::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::File::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<fromLine>([LINE])
-
-=over 4
-
-Many people detest file-style folders because they store messages all in
-one file, where a line starting with C<From > leads the header. If we
-receive a message from a file-based folder, we store that line. If we write
-to such a file, but there is no such line stored, then we try to generate
-one.
-
-If LINE is provided, then the starting line is set to this value.
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-Write one message to a file handle. It is the message including the
-leading 'From ' line and trailing blank. The From-line may interfere
-with lines in the body: those lines are escaped with an extra '>'.
-
-I<Example:>
-
- $msg->write(\*FILE); # print the message with encaps to FILE
- $msg->write; # message with encaps to selected filehandle
- $msg->print(\*FILE); # the message without encaps.
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::File::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-Returns the location of the whole message including the from-line. In
-LIST context, both begin and end are returned. In SCALAR context, only
-the begin is passed back.
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-The message is relocated in the file, being moved over DISTANCE bytes.
-Setting a new location will update the according information in the header
-and body.
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER)
-
-=over 4
-
-Read one message from a L<Mail::Box::File|Mail::Box::File> based folder, including the
-message separator.
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::File::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::File::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::File::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::File::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/File/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/File.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,524 +0,0 @@
-
-use strict;
-package Mail::Box::File;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box';
-
-use Mail::Box::File::Message;
-
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::File;
-use Mail::Message::Body::Delayed;
-use Mail::Message::Body::Multipart;
-
-use Mail::Message::Head;
-
-use Carp;
-use File::Copy;
-use File::Spec;
-use File::Basename;
-use POSIX ':unistd_h';
-use IO::File ();
-
-my $windows;
-BEGIN { $windows = $^O =~ m/mswin32|cygwin/i }
-
-
-my $default_folder_dir = exists $ENV{HOME} ? $ENV{HOME} . '/Mail' : '.';
-
-sub _default_body_type($$)
-{ my $size = shift->guessBodySize || 0;
- 'Mail::Message::Body::'.($size > 10000 ? 'File' : 'Lines');
-}
-
-sub init($)
-{ my ($self, $args) = @_;
- $args->{folderdir} ||= $default_folder_dir;
- $args->{body_type} ||= \&_default_body_type;
- $args->{lock_file} ||= '--'; # to be resolved later
-
- return unless defined $self->SUPER::init($args);
-
- my $class = ref $self;
-
- my $filename = $self->{MBF_filename}
- = $class->folderToFilename
- ( $self->name
- , $self->folderdir
- );
-
- if(-e $filename) {;} # Folder already exists
- elsif( $args->{create} && $class->create($args->{folder}, %$args)) {;}
- else
- { $self->log(PROGRESS =>
- "File $filename for folder $self does not exist.");
- return;
- }
-
- $self->{MBF_policy} = $args->{write_policy};
-
- # Lock the folder.
-
- my $locker = $self->locker;
-
- my $lockfile = $locker->filename;
- if($lockfile eq '--') # filename to be used not resolved yet
- { my $lockdir = $filename;
- $lockdir =~ s!/([^/]*)$!!;
- my $extension = $args->{lock_extension} || '.lock';
-
- $locker->filename
- ( File::Spec->file_name_is_absolute($extension) ? $extension
- : $extension =~ m!^\.! ? "$filename$extension"
- : File::Spec->catfile($lockdir, $extension)
- );
- }
-
- unless($locker->lock)
- { $self->log(ERROR => "Cannot get a lock on $class folder $self.");
- return;
- }
-
- # Check if we can write to the folder, if we need to.
-
- { # filetest 'access' is slower, but works correctly if we have a
- # filesystem with ACLs
- use filetest 'access';
- if($self->writable && ! -w $filename)
- { $self->log(WARNING => "Folder $self file $filename is write-protected.");
- $self->{MB_access} = 'r';
- }
- }
-
- # Start parser if reading is required.
-
- $self->{MB_access} !~ m/r/ ? $self
- : $self->parser ? $self
- : undef;
-}
-
-#-------------------------------------------
-
-
-sub create($@)
-{ my ($thingy, $name, %args) = @_;
- my $class = ref $thingy || $thingy;
- my $folderdir = $args{folderdir} || $default_folder_dir;
- my $subext = $args{subfolder_extension}; # not always available
- my $filename = $class->folderToFilename($name, $folderdir, $subext);
-
- return $class if -f $filename;
-
- my $dir = dirname $filename;
- if(-f $dir && defined $subext)
- { $dir .= $subext;
- $filename = File::Spec->catfile($dir, basename $filename);
- }
-
- $class->log(ERROR => "Cannot create directory $dir for folder $name: $!"),return
- unless -d $dir || mkdir $dir, 0755;
-
- $class->moveAwaySubFolder($filename, $subext)
- if -d $filename && defined $subext;
-
- if(my $create = IO::File->new($filename, 'w'))
- { $class->log(PROGRESS => "Created folder $name.");
- $create->close or return;
- }
- else
- { $class->log(WARNING => "Cannot create folder file $name: $!");
- return;
- }
-
- $class;
-}
-
-#-------------------------------------------
-
-sub foundIn($@)
-{ my $class = shift;
- my $name = @_ % 2 ? shift : undef;
- my %args = @_;
- $name ||= $args{folder} or return;
-
- my $folderdir = $args{folderdir} || $default_folder_dir;
- my $filename = $class->folderToFilename($name, $folderdir);
-
- -f $filename;
-}
-
-#-------------------------------------------
-
-sub organization() { 'FILE' }
-
-#-------------------------------------------
-
-sub size()
-{ my $self = shift;
- $self->isModified ? $self->SUPER::size : -s $self->filename;
-}
-
-#-------------------------------------------
-
-sub close(@)
-{ my $self = $_[0]; # be careful, we want to set the calling
- undef $_[0]; # ref to undef, as the SUPER does.
- shift;
-
- my $rc = $self->SUPER::close(@_);
-
- if(my $parser = delete $self->{MBF_parser}) { $parser->stop }
-
- $rc;
-}
-
-#-------------------------------------------
-
-
-sub appendMessages(@)
-{ my $class = shift;
- my %args = @_;
-
- my @messages
- = exists $args{message} ? $args{message}
- : exists $args{messages} ? @{$args{messages}}
- : return ();
-
- my $folder = $class->new(lock_type => 'NONE', @_, access => 'w+')
- or return ();
-
- my $filename = $folder->filename;
-
- my $out = IO::File->new($filename, 'a');
- unless($out)
- { $class->log(ERROR => "Cannot append messages to folder file $filename: $!");
- return ();
- }
-
- my $msgtype = $class.'::Message';
- my @coerced;
-
- foreach my $msg (@messages)
- { my $coerced
- = $msg->isa($msgtype) ? $msg
- : $msg->can('clone') ? $msgtype->coerce($msg->clone)
- : $msgtype->coerce($msg);
-
- $coerced->write($out);
- push @coerced, $coerced;
- }
-
- my $ok = $folder->close;
- return 0 unless $out->close && $ok;
-
- @coerced;
-}
-
-#-------------------------------------------
-
-
-sub filename() { shift->{MBF_filename} }
-
-#-------------------------------------------
-
-
-sub parser()
-{ my $self = shift;
-
- return $self->{MBF_parser}
- if defined $self->{MBF_parser};
-
- my $source = $self->filename;
-
- my $mode = $self->{MB_access} || 'r';
- $mode = 'r+' if $mode eq 'rw' || $mode eq 'a';
-
- my $parser = $self->{MBF_parser}
- = Mail::Box::Parser->new
- ( filename => $source
- , mode => $mode
- , trusted => $self->{MB_trusted}
- , fix_header_errors => $self->{MB_fix_headers}
- , $self->logSettings
- ) or return;
-
- $parser->pushSeparator('From ');
- $parser;
-}
-
-#-------------------------------------------
-
-sub readMessages(@)
-{ my ($self, %args) = @_;
-
- $self->messageCreateOptions
- ( $args{message_type}
- , $self->logSettings
- , folder => $self
- , head_type => $args{head_type}
- , field_type => $args{field_type}
- , trusted => $args{trusted}
- );
-
- $self->updateMessages;
-}
-
-#-------------------------------------------
-
-
-sub updateMessages(@)
-{ my ($self, %args) = @_;
- my $parser = $self->parser or return;
-
- # On a directory, simulate an empty folder with only subfolders.
- my $filename = $self->filename;
- return $self if -d $filename;
-
- if(my $last = $self->message(-1))
- { (undef, my $end) = $last->fileLocation;
- $parser->filePosition($end);
- }
-
- my ($type, @msgopts) = $self->messageCreateOptions;
- my $count = 0;
-
- while(1)
- { my $message = $type->new(@msgopts);
- last unless $message->readFromParser($parser);
- $self->storeMessage($message);
- $count++;
- }
-
- $self->log(PROGRESS => "Found $count new messages in $filename")
- if $count;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub messageCreateOptions(@)
-{ my ($self, @options) = @_;
- if(@options)
- { ref($_) && ref($_) =~ m/^Mail::/ && weaken $_ for @options;
- $self->{MBF_create_options} = \@options;
- }
-
- @{$self->{MBF_create_options}};
-}
-
-#-------------------------------------------
-
-
-sub moveAwaySubFolder($$)
-{ my ($self, $dir, $extension) = @_;
- $self->log(ERROR => "Cannot move away sub-folder $dir")
- unless move $dir, $dir.$extension;
- $self;
-}
-
-#-------------------------------------------
-
-sub delete(@)
-{ my $self = shift;
- $self->SUPER::delete(@_);
- unlink $self->filename;
-}
-
-#-------------------------------------------
-
-
-sub writeMessages($)
-{ my ($self, $args) = @_;
-
- my $filename = $self->filename;
- if( ! @{$args->{messages}} && $self->{MB_remove_empty})
- { $self->log(WARNING => "Cannot remove folder $self file $filename: $!")
- unless unlink $filename;
- return $self;
- }
-
- my $policy = exists $args->{policy} ? $args->{policy} : $self->{MBF_policy};
- $policy ||= '';
-
- my $success
- = ! -e $filename ? $self->_write_new($args)
- : $policy eq 'INPLACE' ? $self->_write_inplace($args)
- : $policy eq 'REPLACE' ? $self->_write_replace($args)
- : $self->_write_replace($args) ? 1
- : $self->_write_inplace($args);
-
- unless($success)
- { $self->log(ERROR => "Unable to update folder $self.");
- return;
- }
-
- $self->parser->restart;
- $self;
-}
-
-sub _write_new($)
-{ my ($self, $args) = @_;
-
- my $filename = $self->filename;
- my $new = IO::File->new($filename, 'w');
- return 0 unless defined $new;
-
- $_->write($new) foreach @{$args->{messages}};
-
- $new->close or return 0;
-
- $self->log(PROGRESS =>
- "Wrote new folder $self with ".@{$args->{messages}}."msgs.");
- 1;
-}
-
-# First write to a new file, then replace the source folder in one
-# move. This is much slower than inplace update, but it is safer,
-# The folder is always in the right shape, even if the program is
-# interrupted.
-
-sub _write_replace($)
-{ my ($self, $args) = @_;
-
- my $filename = $self->filename;
- my $tmpnew = $self->tmpNewFolder($filename);
-
- my $new = IO::File->new($tmpnew, 'w') or return 0;
- my $old = IO::File->new($filename, 'r') or return 0;
-
- my ($reprint, $kept) = (0,0);
-
- foreach my $message ( @{$args->{messages}} )
- {
- my $newbegin = $new->tell;
- my $oldbegin = $message->fileLocation;
-
- if($message->isModified)
- { $message->write($new);
- $message->moveLocation($newbegin - $oldbegin)
- if defined $oldbegin;
- $reprint++;
- }
- else
- { my ($begin, $end) = $message->fileLocation;
- my $need = $end-$begin;
-
- $old->seek($begin, 0);
- my $whole;
- my $size = $old->read($whole, $need);
-
- $self->log(ERROR => "File too short to get write message "
- . $message->seqnr. " ($size, $need)")
- unless $size == $need;
-
- $new->print($whole);
- $new->print("\n");
-
- $message->moveLocation($newbegin - $oldbegin);
- $kept++;
- }
- }
-
- my $ok = $new->close;
- return 0 unless $old->close && $ok;
-
- unlink $filename if $windows;
- unless(move $tmpnew, $filename)
- { $self->log(WARNING =>
- "Cannot replace $filename by $tmpnew, to update folder $self: $!");
-
- unlink $tmpnew;
- return 0;
- }
-
- $self->log(PROGRESS => "Folder $self replaced ($kept, $reprint)");
- 1;
-}
-
-# Inplace is currently very poorly implemented. From the first
-# location where changes appear, all messages are rewritten.
-
-sub _write_inplace($)
-{ my ($self, $args) = @_;
-
- my @messages = @{$args->{messages}};
- my $last;
-
- my ($msgnr, $kept) = (0, 0);
- while(@messages)
- { my $next = $messages[0];
- last if $next->isModified || $next->seqnr!=$msgnr++;
- $last = shift @messages;
- $kept++;
- }
-
- if(@messages==0 && $msgnr==$self->messages)
- { $self->log(PROGRESS => "No changes to be written to $self.");
- return 1;
- }
-
- $_->body->load foreach @messages;
-
- my $mode = $^O eq 'MSWin32' ? 'a' : '+<';
- my $filename = $self->filename;
-
- my $old = IO::File->new($filename, $mode) or return 0;
-
- # Chop the folder after the messages which does not have to change.
-
- my $end = defined $last ? ($last->fileLocation)[1] : 0;
-
- $end =~ m/(.*)/; # untaint, only required by perl5.6.1
- $end = $1;
-
- unless($old->truncate($end))
- { # truncate impossible: try replace writing
- $old->close;
- return 0;
- }
-
- unless(@messages)
- { # All further messages only are flagged to be deleted
- $old->close or return 0;
- $self->log(PROGRESS => "Folder $self shortened in-place ($kept kept)");
- return 1;
- }
-
- # go to the end of the truncated output file.
- $old->seek(0, 2);
-
- # Print the messages which have to move.
- my $printed = @messages;
- foreach my $message (@messages)
- { my $oldbegin = $message->fileLocation;
- my $newbegin = $old->tell;
- $message->write($old);
- $message->moveLocation($newbegin - $oldbegin);
- }
-
- $old->close or return 0;
- $self->log(PROGRESS => "Folder $self updated in-place ($kept, $printed)");
- 1;
-}
-
-#-------------------------------------------
-
-
-sub folderToFilename($$;$)
-{ my ($thing, $name, $folderdir) = @_;
-
- substr $name, 0, 1, $folderdir
- if substr $name, 0, 1 eq '=';
-
- $name;
-}
-
-sub tmpNewFolder($) { shift->filename . '.tmp' }
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/File.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/File.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1044 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::File - handle file-based folders
-
-
-=head1 INHERITANCE
-
- Mail::Box::File
- is a Mail::Box
- is a Mail::Reporter
-
- Mail::Box::File is extended by
- Mail::Box::Dbx
- Mail::Box::Mbox
-
-
-=head1 SYNOPSIS
-
-
-
-=head1 DESCRIPTION
-
-C<Mail::Box::File> is the base-class for all file-based folders: folders
-which bundle multiple messages into one single file. Usually, these
-messages are separated by a special line which indicates the start of
-the next one.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::File-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- access L<Mail::Box> C<'r'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type <see description>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <false>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C<$ENV{MAIL}>
- folderdir L<Mail::Box> C<$ENV{HOME}.'/Mail'>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups L<Mail::Box> <false>
- lock_extension C<'.lock'>
- lock_file L<Mail::Box> <foldername><lock-extension>
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> L<Mail::Box::Locker::DotLock|Mail::Box::Locker::DotLock>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::File::Message|Mail::Box::File::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- remove_when_empty L<Mail::Box> <true>
- save_on_exit L<Mail::Box> <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <depends on folder location>
- write_policy undef
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-=over 4
-
-The default C<body_type> option for C<File> folders, which will cause
-messages larger than 10kB to be stored in files and smaller files
-in memory, is implemented like this:
-
- sub determine_body_type($$)
- { my $head = shift;
- my $size = shift || 0;
- 'Mail::Message::Body::'
- . ($size > 10000 ? 'File' : 'Lines');
- }
-
-=back
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. keep_dups BOOLEAN
-
-. lock_extension FILENAME|STRING
-
-=over 4
-
-When the dotlock locking mechanism is used, the lock is created with a
-hardlink to the folder file. For C<Mail::Box::File> type of folders, this
-file is by default named as the folder-file itself followed by
-C<.lock>. For example: the C<Mail/inbox> folder file will have a hardlink
-made as C<Mail/inbox.lock>.
-
-You may specify an absolute filename, a relative (to the folder's
-directory) filename, or an extension (preceded by a dot). So valid
-examples are:
-
- .lock # appended to the folder's filename
- my_own_lockfile.test # full filename, same dir
- /etc/passwd # somewhere else
-
-When the program runs with less priviledges (as normal user), often the
-default inbox folder can not be locked with the lockfile name which is
-produced by default.
-
-=back
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. write_policy 'REPLACE'|'INPLACE'|undef
-
-=over 4
-
-Sets the default write policy, as default for a later call to
-L<write(policy)|Mail::Box::File/"Internals">. With C<undef>, the best policy is autodetected.
-
-=back
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::File-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-Appending messages to a file based folder which is not opened is a little
-risky. In practice, this is often done without locking the folder. So,
-an other application may write to the folder at the same time... :( Hopefully,
-all goes fast enough that the chance on collition is small.
-
-All OPTIONS of L<Mail::Box::Mbox::new()|Mail::Box::Mbox/"METHODS"> can be supplied.
-
- Option Defined in Default
- folder L<Mail::Box> <required>
- lock_type C<NONE>
- message L<Mail::Box> undef
- messages L<Mail::Box> undef
- share L<Mail::Box> <false>
-
-. folder FOLDERNAME
-
-. lock_type ...
-
-=over 4
-
-See L<Mail::Box::new(lock_type)|Mail::Box/"Constructors"> for possible values.
-
-=back
-
-. message MESSAGE
-
-. messages ARRAY-OF-MESSAGES
-
-. share BOOLEAN
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<filename>
-
-=over 4
-
-Returns the filename for this folder, which may be an absolute or relative
-path to the file.
-
-I<Example:>
-
- print $folder->filename;
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::File-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::File-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::File-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-Mail::Box::File-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- folderdir L<Mail::Box> undef
-
-. folderdir DIRECTORY
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<folderToFilename>(FOLDERNAME, FOLDERDIR, [SUBEXT])
-
-Mail::Box::File-E<gt>B<folderToFilename>(FOLDERNAME, FOLDERDIR, [SUBEXT])
-
-=over 4
-
-Translate a folder name into a filename, using the
-FOLDERDIR value to replace a leading C<=>. SUBEXT is only used for MBOX
-folders.
-
-=back
-
-Mail::Box::File-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<messageCreateOptions>([TYPE, CONFIG])
-
-=over 4
-
-Returns a key-value list of options to be used each time a new message
-is read from a file. The list is preceeded by the TYPE of message which
-has to be created.
-
-This data is used by L<readMessages()|Mail::Box/"Internals"> and L<updateMessages()|Mail::Box::File/"Internals">. With
-TYPE and CONFIG, a new configuration is set.
-
-=back
-
-$obj-E<gt>B<moveAwaySubFolder>(DIRECTORY, EXTENSION)
-
-=over 4
-
-The DIRECTORY is renamed by appending the EXTENSION, which defaults to C<".d">,
-to make place for a folder file on that specific location. C<false> is
-returned if this failed.
-
-=back
-
-$obj-E<gt>B<parser>
-
-=over 4
-
-Create a parser for this mailbox. The parser stays alive as long as
-the folder is open.
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-For file based folders, the file handle stays open until the folder
-is closed. Update is therefore rather simple: move to the end
-of the last known message, and continue reading...
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- force L<Mail::Box> <false>
- policy undef
- save_deleted L<Mail::Box> <false>
-
-. force BOOLEAN
-
-. policy 'REPLACE'|'INPLACE'|undef
-
-=over 4
-
-In what way will the mail folder be updated. If not specified during the
-write, the value of the L<new(write_policy)|Mail::Box::File/"METHODS"> at folder creation is taken.
-
-Valid values:
-
-=over 4
-
-=item * C<REPLACE>
-
-First a new folder is written in the same directory as the folder which has
-to be updated, and then a call to move will throw away the old immediately
-replacing it by the new.
-
-Writing in C<REPLACE> module is slightly optimized: messages which are not
-modified are copied from file to file, byte by byte. This is much
-faster than printing the data which is will be done for modified messages.
-
-=item * C<INPLACE>
-
-The original folder file will be opened read/write. All message which where
-not changed will be left untouched, until the first deleted or modified
-message is detected. All further messages are printed again.
-
-=item * C<undef>
-
-As default, or when C<undef> is explicitly specified, first C<REPLACE> mode
-is tried. Only when that fails, an C<INPLACE> update is performed.
-
-=back
-
-C<INPLACE> will be much faster than C<REPLACE> when applied on large
-folders, however requires the C<truncate> function to be implemented on
-your operating system (at least available for recent versions of Linux,
-Solaris, Tru64, HPUX). It is also dangerous: when the program is interrupted
-during the update process, the folder is corrupted. Data may be lost.
-
-However, in some cases it is not possible to write the folder with
-C<REPLACE>. For instance, the usual incoming mail folder on UNIX is
-stored in a directory where a user can not write. Of course, the
-C<root> and C<mail> users can, but if you want to use this Perl module
-with permission of a normal user, you can only get it to work in C<INPLACE>
-mode. Be warned that in this case folder locking via a lockfile is not
-possible as well.
-
-=back
-
-. save_deleted BOOLEAN
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-=head3 File based folders
-
-File based folders maintain a folder (a set of messages) in one
-single file. The advantage is that your folder has only one
-single name, which speeds-up access to all messages at once.
-
-The disadvantage over directory based folder (see L<Mail::Box::Dir|Mail::Box::Dir>)
-is that you have to construct some means to keep all message apart,
-for instance by adding a message separator, and this will cause
-problems. Where access to all messages at once is faster in file
-based folders, access to a single message is (much) slower, because
-the whole folder must be read.
-
-=head3 File based folders
-
-File based folders maintain a folder (a set of messages) in one
-single file. The advantage is that your folder has only one
-single name, which speeds-up access to all messages at once.
-
-The disadvantage over directory based folder (see L<Mail::Box::Dir|Mail::Box::Dir>)
-is that you have to construct some means to keep all message apart,
-for instance by adding a message separator, and this will cause
-problems. Where access to all messages at once is faster in file
-based folders, access to a single message is (much) slower, because
-the whole folder must be read.
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::File-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::File-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::File-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::File-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot append messages to folder file $filename: $!
-
-Appending messages to a not-opened file-organized folder may fail when the
-operating system does not allow write access to the file at hand.
-
-I<Error:> Cannot create directory $dir for folder $name.
-
-While creating a file-organized folder, at most one level of directories
-is created above it. Apparently, more levels of directories are needed,
-or the operating system does not allow you to create the directory.
-
-I<Error:> Cannot create folder file $name: $!
-
-The file-organized folder file cannot be created for the indicated reason.
-In common cases, the operating system does not grant you write access to
-the directory where the folder file should be stored.
-
-I<Error:> Cannot get a lock on $type folder $self.
-
-A lock is required to get access to the folder. If no locking is needed,
-specify the NONE lock type.
-
-I<Error:> Cannot move away sub-folder $dir
-
-
-I<Warning:> Cannot remove folder $name file $filename: $!
-
-Writing an empty folder will usually cause that folder to be removed,
-which fails for the indicated reason. L<new(remove_when_empty)|Mail::Box/"Constructors">
-
-I<Warning:> Cannot remove folder $name file $filename: $!
-
-Writing an empty folder will usually cause that folder to be removed,
-which fails for the indicated reason. L<new(remove_when_empty)|Mail::Box/"Constructors">
-controls whether the empty folder will removed; setting it to false
-(C<0>) may be needed to avoid this message.
-
-I<Error:> Cannot replace $filename by $tempname, to update folder $name: $!
-
-The replace policy wrote a new folder file to update the existing, but
-was unable to give the final touch: replacing the old version of the
-folder file for the indicated reason.
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> File too short to get write message $nr ($size, $need)
-
-Mail::Box is lazy: it tries to leave messages in the folders until they
-are used, which saves time and memory usage. When this message appears,
-something is terribly wrong: some lazy message are needed for updating the
-folder, but they cannot be retreived from the original file anymore. In
-this case, messages can be lost.
-
-This message does appear regularly on Windows systems when using the
-'replace' write policy. Please help to find the cause, probably something
-to do with Windows incorrectly handling multiple filehandles open in the
-same file.
-
-I<Warning:> Folder $name file $filename is write-protected.
-
-The folder is opened writable or for appending via L<new(access)|Mail::Box/"Constructors">,
-but the operating system does not permit writing to the file. The folder
-will be opened read-only.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Unable to update folder $self.
-
-When a folder is to be written, both replace and inplace write policies are
-tried, If both fail, the whole update fails. You may see other, related,
-error messages to indicate the real problem.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/File.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/File.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Head.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,62 +0,0 @@
-
-use strict;
-
-package Mail::Box::IMAP4::Head;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head';
-
-use Date::Parse;
-
-
-sub init($$)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- $self->{MBIH_c_fields} = $args->{cache_fields};
- $self;
-}
-
-#------------------------------------------
-
-
-sub get($;$)
-{ my ($self, $name, $index) = @_;
-
- if(not $self->{MBIH_c_fields}) { ; }
- elsif(wantarray)
- { my @values = $self->SUPER::get(@_);
- return @values if @values;
- }
- else
- { my $value = $self->SUPER::get(@_);
- return $value if defined $value;
- }
-
- # Something here, playing with ENVELOPE, may improve the performance
- # as well.
- my $imap = $self->folder->transporter;
-
- my @fields = $imap->getFields($name);
-
- if(@fields && $self->{MBIH_c_fields})
- { $self->addNoRealize($_) for @fields
- }
-
- defined $index ? $fields[$index]
- : wantarray ? @fields
- : $fields[0];
-}
-
-#------------------------------------------
-
-sub guessBodySize() {undef}
-
-#-------------------------------------------
-
-sub guessTimestamp() {undef}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Head.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Head.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,414 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::IMAP4::Head - header fields related IMAP interface
-
-
-=head1 INHERITANCE
-
- Mail::Box::IMAP4::Head
- is a Mail::Message::Head
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
-
-
-=head1 DESCRIPTION
-
-This class implements a pure IMAP4 protocol interface, where as few
-data is retreived from the header as possible. This may look nice
-to you, but is not sufficient for many tasks. For instance, you cannot
-removed or modify fields this way.
-
-Change L<Mail::Box::IMAP4::new(cache_head)|Mail::Box::IMAP4/"METHODS"> to C<YES> or C<DELAY>, to
-get a message header which is capable of performing all possible
-games with headers. On the other hand: the other settings are not
-100% safe...
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<build>([PAIR|FIELD]-LIST)
-
-=over 4
-
-See L<Mail::Message::Head/"Constructors">
-
-=back
-
-Mail::Box::IMAP4::Head-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- cache_fields C<false>
- field_type L<Mail::Message::Head> L<Mail::Message::Field::Fast|Mail::Message::Field::Fast>
- log L<Mail::Reporter> C<'WARNINGS'>
- message L<Mail::Message::Head> undef
- modified L<Mail::Message::Head> <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. cache_fields BOOLEAN
-
-=over 4
-
-This is only a read-cache on fields, because this kind of header does
-not allow writing of fields. See L<Mail::Box::IMAP4::new(cache_head)|Mail::Box::IMAP4/"METHODS">,
-this value is set to C<false> for C<NO> and C<true> for C<PARTIAL>..
-
-=back
-
-. field_type CLASS
-
-. log LEVEL
-
-. message MESSAGE
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isEmpty>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<knownNames>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<get>(NAME [,INDEX])
-
-=over 4
-
-Get the information about the header line NAME. Realization will
-take place.
-
-=back
-
-$obj-E<gt>B<study>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-=head2 About the body
-
-
-$obj-E<gt>B<guessBodySize>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<addOrderedFields>(FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<setNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::IMAP4::Head-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::IMAP4::Head-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::IMAP4::Head-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Head.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Head.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,180 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::IMAP4::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Net::Message';
-
-use Date::Parse 'str2time';
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MBIM_write_labels}
- = exists $args->{write_labels} ? $args->{write_labels} : 1;
-
- $self->{MBIM_cache_labels} = $args->{cache_labels};
- $self->{MBIM_cache_head} = $args->{cache_head};
- $self->{MBIM_cache_body} = $args->{cache_body};
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub size($)
-{ my $self = shift;
-
- return $self->SUPER::size
- unless $self->isDelayed;
-
- $self->fetch('RFC822.SIZE');
-}
-
-#------------------------------------------
-
-sub recvstamp()
-{ my $date = shift->fetch('INTERNALDATE');
- defined $date ? str2time($date) : undef;
-}
-
-#-------------------------------------------
-
-
-sub label(@)
-{ my $self = shift;
- my $imap = $self->folder->transporter or return;
- my $id = $self->unique;
-
- if(@_ == 1)
- { # get one value only
- my $label = shift;
- my $labels = $self->{MM_labels};
- return $labels->{$label}
- if exists $labels->{$label} || exists $labels->{seen};
-
- my $flags = $imap->getFlags($id);
- if($self->{MBIM_cache_labels})
- { # the program may have added own labels
- @{$labels}{keys %$flags} = values %$flags;
- delete $self->{MBIM_labels_changed};
- }
- return $flags->{$label};
- }
-
- my @private;
- if($self->{MBIM_write_labels})
- { @private = $imap->setFlags($id, @_);
- delete $self->{MBIM_labels_changed};
- }
- else
- { @private = @_;
- }
-
- my $labels = $self->{MM_labels};
- my @keep = $self->{MBIM_cache_labels} ? @_ : @private;
-
- while(@keep)
- { my ($k, $v) = (shift @keep, shift @keep);
- next if defined $labels->{$k} && $labels->{$k} eq $v;
-
- $self->{MBIM_labels_changed}++;
- $labels->{$k} = $v;
- }
- $self->modified(1) if @private && $self->{MBIM_labels_changed};
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub labels()
-{ my $self = shift;
- my $labels = $self->SUPER::labels;
- $labels = { %$labels } unless $self->{MBIM_cache_labels};
-
- unless(exists $labels->{seen})
- { my $imap = $self->folder->transporter or return;
- my $flags = $imap->getFlags($self->unique);
- @{$labels}{keys %$flags} = values %$flags;
- }
-
- $labels;
-}
-
-#-------------------------------------------
-
-
-sub loadHead()
-{ my $self = shift;
- my $head = $self->head;
- return $head unless $head->isDelayed;
-
- $head = $self->folder->getHead($self);
- $self->head($head) if $self->{MBIM_cache_head};
- $head;
-}
-
-#-------------------------------------------
-
-sub loadBody()
-{ my $self = shift;
-
- my $body = $self->body;
- return $body unless $body->isDelayed;
-
- (my $head, $body) = $self->folder->getHeadAndBody($self);
- return undef unless defined $head;
-
- $self->head($head) if $self->{MBIM_cache_head} && $head->isDelayed;
- $self->storeBody($body) if $self->{MBIM_cache_body};
- $body;
-}
-
-#-------------------------------------------
-
-
-sub fetch(@)
-{ my ($self, @info) = @_;
- my $folder = $self->folder;
- my $answer = ($folder->fetch( [$self], @info))[0];
-
- @info==1 ? $answer->{$info[0]} : @{$answer}{@info};
-}
-
-#-------------------------------------------
-
-
-sub writeDelayed($$)
-{ my ($self, $foldername, $imap) = @_;
-
- my $id = $self->unique;
- my $labels = $self->labels;
-
- if($self->head->modified || $self->body->modified || !$id)
- {
- $imap->appendMessage($self, $foldername);
- if($id)
- { $self->delete;
- $self->unique(undef);
- }
- }
- elsif($self->{MBIM_labels_changed})
- { $imap->setFlags($id, %$labels); # non-IMAP4 labels disappear
- delete $self->{MBIM_labels_changed};
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1071 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::IMAP4::Message - one message on a IMAP4 server
-
-
-=head1 INHERITANCE
-
- Mail::Box::IMAP4::Message
- is a Mail::Box::Net::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::IMAP4 ...
- my $message = $folder->message(10);
-
-
-=head1 DESCRIPTION
-
-A C<Mail::Box::IMAP4::Message> represents one message on a IMAP4 server,
-maintained by a L<Mail::Box::IMAP4|Mail::Box::IMAP4> folder. Each message is stored as
-separate entity on the server, and maybe temporarily in your program
-as well.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::IMAP4::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type L<Mail::Box::Message> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- cache_body <false>
- cache_head <false>
- cache_labels <false>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- folder L<Mail::Box::Message> <required>
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- size L<Mail::Box::Message> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
- unique L<Mail::Box::Net::Message> <unique string>
- write_labels <true>
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-. cache_body BOOLEAN
-
-. cache_head BOOLEAN
-
-. cache_labels BOOLEAN
-
-=over 4
-
-All standard IMAP labels can be cached on the local server to improve
-speed. This has the same dangers as setting C<write_labels> to false.
-The caching starts when the first label of the message was read.
-
-=back
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. folder FOLDER
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. size INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. unique STRING
-
-. write_labels BOOLEAN
-
-=over 4
-
-When a label is changed or its value read, using L<label()|Mail::Box::IMAP4::Message/"METHODS">, that info
-should be sent to the IMAP server. But, this action could be superfluous,
-for instance because the label was already set or clear, and communication
-is expensive. On the other hand, someone else may use IMAP to make
-changes in the same folder, and will get the updates too late or never...
-
-=back
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::IMAP4::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::IMAP4::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::IMAP4::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::IMAP4::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-Returns the size of this message. If the message is still on the remote
-server, IMAP is used to ask for the size. When the message is already loaded
-onto the local system, the size of the parsed message is taken. These
-sizes can differ because the difference in line-ending representation.
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<unique>([STRING|undef])
-
-=over 4
-
-See L<Mail::Box::Net::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-With only one argument, the value related to LABEL is returned. With
-more that one argument, the list is interpreted a label-value PAIRS
-to be set.
-
-The IMAP protocol defines its own names for the labels, which must
-be set imediately to inform other IMAP clients which may have the
-same folder open. But that can be changed with L<new(write_labels)|Mail::Box::IMAP4::Message/"METHODS">.
-Some labels are translated to the corresponding IMAP system labels.
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-Get the names of all labels (LIST context, not efficient in IMAP4), or
-a reference to a hash with labels. You should only use the returned
-hash to read the labels, because changes made to it will not be passed
-to the remote server. See L<labels()|Mail::Box::IMAP4::Message/"METHODS"> to set values.
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::IMAP4::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<fetch>([INFO, ...])
-
-=over 4
-
-Use the IMAP's C<UID FETCH IMAP> command to get some data about this
-message. The INFO request is passed to L<Mail::Box::IMAP4::fetch()|Mail::Box::IMAP4/"Internals">.
-Without INFO, C<ALL> information is retreived and returned as a HASH.
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-See L<Mail::Box::Net::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<writeDelayed>(IMAP)
-
-=over 4
-
-Write all delayed information, like label changes, to the server. This
-is done under force, so should even be done for folders opened without
-write-access. This method is called indirectly by a L<Mail::Box::write()|Mail::Box/"Internals">
-or L<Mail::Box::close()|Mail::Box/"The folder">.
-
-The IMAP argument is a Mail::IMAPClient which has the right folder
-already selected.
-
-Writing changes to the remote folder is not without hassle: IMAP4
-(or is it only L<Mail::IMAPClient> doesn't support replacing header
-or body. Therefore, when either of them change, the whole message is
-rewritten to the server (which is supported), and the original flagged
-for deletion.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::IMAP4::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::IMAP4::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::IMAP4::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::IMAP4::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-
-I<Error:> Unable to read delayed head.
-
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-=head2 Labels
-
-
-=head3 IMAP protocol flags
-
-Labels (or flags) are known to all folder formats, but differ how they
-are stored. Some folder types use message header lines to keep the
-labels, other use a seperate file. The IMAP protocol does not specify
-how the labels are kept on the server, but does specify how they are named.
-
-The label names as defined by the IMAP protocol are standardized into
-the MailBox standard to hide folder differences. The following translations
-are always performed:
-
- \Seen => seen
- \Answered => replied
- \Flagged => flagged
- \Deleted => deleted
- \Draft => draft
- \Recent => NOT old
-
-I<Example:> of label translations
-
-
- $imap->message(3)->label(replied => 1, draft => 0);
-
-will result in a IMAP protocol statements like
-
- A003 STORE 4 +FLAGS (\Answered)
- A003 STORE 4 -FLAGS (\Draft)
-
-=head3 Other labels
-
-Of course, your program may be in need for more labels than those provided
-by the protocol. You can still use these: they stay locally (and are
-lost when the folder is closed). Some IMAP4 extensions permit more labels
-than the basic RFC, but that is not yet supported by this implementation.
-
-=head3 Caching labels
-
-When you ask for one or more flags of a message more than once, you may
-improve the overall performance by setting L<new(cache_labels)|Mail::Box::IMAP4::Message/"METHODS"> to C<YES>.
-However, this may cause inconsistencies when multiple clients use the
-same folder on the IMAP server.
-
-You may also delay the label updates to the server until the
-folder is closed (or for ever when read-only is required). When
-L<Mail::Box::write()|Mail::Box/"Internals"> or L<Mail::Box::close()|Mail::Box/"The folder"> is called, it is decided
-whether to throw all changes away or write after all.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,325 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::IMAP4;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Net';
-
-use Mail::Box::IMAP4::Message;
-use Mail::Box::IMAP4::Head;
-use Mail::Transport::IMAP4;
-
-use Mail::Box::Parser::Perl;
-use Mail::Message::Head::Complete;
-use Mail::Message::Head::Delayed;
-
-use Scalar::Util 'weaken';
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- # Need some prediction for correct defaults
- my $access = $args->{access} ||= 'r';
- my $writeable = $access =~ m/w|a/;
- my $ch = $self->{MBI_c_head}
- = $args->{cache_head} || ($writeable ? 'NO' : 'DELAY');
-
- $args->{head_type} ||= 'Mail::Box::IMAP4::Head'
- if $ch eq 'NO' || $ch eq 'PARTIAL';
-
- $args->{body_type} ||= 'Mail::Message::Body::Lines';
-
- $self->SUPER::init($args);
-
- $self->{MBI_domain} = $args->{domain};
- $self->{MBI_c_labels} = $args->{cache_labels}
- || ($writeable ? 'NO' : 'DELAY');
- $self->{MBI_c_body} = $args->{cache_body}
- || ($writeable ? 'NO' : 'DELAY');
-
-
- my $transport = $args->{transporter} || 'Mail::Transport::IMAP4';
- unless(ref $transport)
- { $transport = $self->createTransporter($transport, %$args)
- or return undef;
- }
-
- $self->transporter($transport);
- $self;
-}
-
-#-------------------------------------------
-
-sub create($@)
-{ my ($class, %args) = @_;
- $class->log(INTERNAL => "Folder creation for IMAP4 not implemented yet");
- undef;
-}
-
-#-------------------------------------------
-
-sub foundIn(@)
-{ my $self = shift;
- unshift @_, 'folder' if @_ % 2;
- my %options = @_;
-
- (exists $options{type} && $options{type} =~ m/^imap/i)
- || (exists $options{folder} && $options{folder} =~ m/^imap/);
-}
-
-#-------------------------------------------
-
-sub type() {'imap4'}
-
-#-------------------------------------------
-
-
-sub close(@)
-{ my $self = shift;
- $self->SUPER::close(@_) or return ();
- $self->transporter(undef);
- $self;
-}
-
-#-------------------------------------------
-
-sub listSubFolders(@)
-{ my ($thing, %args) = @_;
- my $self = $thing;
-
- $self = $thing->new(%args) or return () # list toplevel
- unless ref $thing;
-
- my $imap = $self->transporter;
- defined $imap ? $imap->folders($self) : ();
-}
-
-#-------------------------------------------
-
-sub nameOfSubfolder($;$) { $_[1] }
-
-#-------------------------------------------
-
-
-sub readMessages(@)
-{ my ($self, %args) = @_;
-
- my $name = $self->name;
- return $self if $name eq '/';
-
- my $imap = $self->transporter;
- my @log = $self->logSettings;
- my $seqnr = 0;
-
- my $cl = $self->{MBI_c_labels} ne 'NO';
- my $wl = $self->{MBI_c_labels} ne 'DELAY';
-
- my $ch = $self->{MBI_c_head};
- my $ht = $ch eq 'DELAY' ? $args{head_delayed_type} : $args{head_type};
- my @ho = $ch eq 'PARTIAL' ? (cache_fields => 1) : ();
-
- foreach my $id ($imap->ids)
- { my $head = $ht->new(@log, @ho);
- my $message = $args{message_type}->new
- ( head => $head
- , unique => $id
- , folder => $self
- , seqnr => $seqnr++
-
- , cache_labels => $cl
- , write_labels => $wl
- , cache_head => ($ch eq 'DELAY')
- , cache_body => ($ch ne 'NO')
- );
-
- my $body = $args{body_delayed_type}
- ->new(@log, message => $message);
-
- $message->storeBody($body);
-
- $self->storeMessage($message);
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub getHead($)
-{ my ($self, $message) = @_;
- my $imap = $self->transporter or return;
-
- my $uidl = $message->unique;
- my @fields = $imap->getFields($uidl, 'ALL');
-
- unless(@fields)
- { $self->log(WARNING => "Message $uidl disappeared from $self.");
- return;
- }
-
- my $head = $self->{MB_head_type}->new;
- $head->addNoRealize($_) for @fields;
-
- $self->log(PROGRESS => "Loaded head of $uidl.");
- $head;
-}
-
-#-------------------------------------------
-
-
-sub getHeadAndBody($)
-{ my ($self, $message) = @_;
- my $imap = $self->transporter or return;
- my $uid = $message->unique;
- my $lines = $imap->getMessageAsString($uid);
-
- unless(defined $lines)
- { $self->log(WARNING => "Message $uid disappeared from $self.");
- return ();
- }
-
- my $parser = Mail::Box::Parser::Perl->new # not parseable by C parser
- ( filename => "$imap"
- , file => Mail::Box::FastScalar->new(\$lines)
- );
-
- my $head = $message->readHead($parser);
- unless(defined $head)
- { $self->log(WARNING => "Cannot find head back for $uid in $self.");
- $parser->stop;
- return ();
- }
-
- my $body = $message->readBody($parser, $head);
- unless(defined $body)
- { $self->log(WARNING => "Cannot read body for $uid in $self.");
- $parser->stop;
- return ();
- }
-
- $parser->stop;
-
- $self->log(PROGRESS => "Loaded message $uid.");
- ($head, $body->contentInfoFrom($head));
-}
-
-#-------------------------------------------
-
-
-sub body(;$)
-{ my $self = shift;
- unless(@_)
- { my $body = $self->{MBI_cache_body} ? $self->SUPER::body : undef;
- }
-
- $self->unique();
- $self->SUPER::body(@_);
-}
-
-#-------------------------------------------
-
-
-
-sub write(@)
-{ my ($self, %args) = @_;
- my $imap = $self->transporter or return;
-
- $self->SUPER::write(%args, transporter => $imap) or return;
-
- if($args{save_deleted})
- { $self->log(NOTICE => "Impossible to keep deleted messages in IMAP")
- }
- else { $imap->destroyDeleted }
-
- $self;
-}
-
-#-------------------------------------------
-
-sub delete(@)
-{ my $self = shift;
- my $transp = $self->transporter;
- $self->SUPER::delete(@_); # subfolders
- $transp->deleteFolder($self->name);
-}
-
-#-------------------------------------------
-
-
-sub writeMessages($@)
-{ my ($self, $args) = @_;
-
- my $imap = $args->{transporter};
- my $fn = $self->name;
-
- $_->writeDelayed($fn, $imap) for @{$args->{messages}};
-
- $self;
-}
-
-#-------------------------------------------
-
-
-my %transporters;
-sub createTransporter($@)
-{ my ($self, $class, %args) = @_;
-
- my $hostname = $self->{MBN_hostname} || 'localhost';
- my $port = $self->{MBN_port} || '143';
- my $username = $self->{MBN_username} || $ENV{USER};
-
- my $join = exists $args{join_connection} ? $args{join_connection} : 1;
-
- my $linkid;
- if($join)
- { $linkid = "$hostname:$port:$username";
- return $transporters{$linkid} if defined $transporters{$linkid};
- }
-
- my $transporter = $class->new
- ( %args,
- , hostname => $hostname, port => $port
- , username => $username, password => $self->{MBN_password}
- , domain => $self->{MBI_domain}
- ) or return undef;
-
- if(defined $linkid)
- { $transporters{$linkid} = $transporter;
- weaken($transporters{$linkid});
- }
-
- $transporter;
-}
-
-#-------------------------------------------
-
-
-sub transporter(;$)
-{ my $self = shift;
- my $imap = @_ ? ($self->{MBI_transport} = shift) : $self->{MBI_transport};
- return unless defined $imap;
-
- my $name = $self->name;
- $imap->folder($name) unless $name eq '/';
-
- $imap;
-}
-
-#-------------------------------------------
-
-
-sub fetch($@)
-{ my ($self, $what, @info) = @_;
- my $imap = $self->transporter or return [];
- $what = $self->messages($what) unless ref $what eq 'ARRAY';
- $imap->fetch($what, @info);
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1026 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::IMAP4 - handle IMAP4 folders as client
-
-
-=head1 INHERITANCE
-
- Mail::Box::IMAP4
- is a Mail::Box::Net
- is a Mail::Box
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::IMAP4;
- my $folder = new Mail::Box::IMAP4 folder => $ENV{MAIL}, ...;
-
-
-=head1 DESCRIPTION
-
-Maintain a folder which has its messages stored on a remote server. The
-communication between the client application and the server is implemented
-using the IMAP4 protocol. See also L<Mail::Server::IMAP4|Mail::Server::IMAP4>.
-
-This class uses L<Mail::Transport::IMAP4|Mail::Transport::IMAP4> to hide the transport of
-information, and focusses solely on the correct handling of messages
-within a IMAP4 folder. More than one IMAP4 folder can be handled by
-one single IMAP4 connection.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::IMAP4-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-The C<new> can have many OPTIONS. Not only the ones listed here below,
-but also all the OPTIONS for L<Mail::Transport::IMAP4::new()|Mail::Transport::IMAP4/"METHODS"> can be
-passed.
-
-The default depends on the value of L<new(cache_head)|Mail::Box::IMAP4/"METHODS">.
-
-Without folder name, no folder is selected. Only few methods are
-available now, for instance L<listSubFolders()|Mail::Box/"Sub-folders"> to get the top-level
-folder names. Usually, the folder named C<INBOX> will be present.
-
- Option Defined in Default
- access L<Mail::Box> 'r'
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- cache_body C<NO>
- cache_head C<NO> or C<DELAY>
- cache_labels C<NO> or C<DELAY>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <false>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C</>
- folderdir L<Mail::Box> <not used>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Box::IMAP4::Head|Mail::Box::IMAP4::Head> or L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- join_connection C<true>
- keep_dups L<Mail::Box> <false>
- lock_file L<Mail::Box> undef
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> C<'NONE'>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::IMAP4::Message|Mail::Box::IMAP4::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- password L<Mail::Box::Net> undef
- remove_when_empty L<Mail::Box> <false>
- save_on_exit L<Mail::Box> <true>
- server_name L<Mail::Box::Net> undef
- server_port L<Mail::Box::Net> 143
- trace L<Mail::Reporter> C<'WARNINGS'>
- transporter L<Mail::Transport::IMAP4|Mail::Transport::IMAP4>
- trusted L<Mail::Box> <false>
- username L<Mail::Box::Net> undef
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. cache_body 'NO'|'YES'|'DELAY'
-
-=over 4
-
-Body objects are immutable, but may still cached or not. In common
-case, the body of a message is requested via L<Mail::Message::body()|Mail::Message/"The body">
-or L<Mail::Message::decoded()|Mail::Message/"The body">. This returns a handle to a body object.
-You may decide wether that body object can be reused or not. C<NO>
-means: retreive the data each time again, C<YES> will cache the body data,
-C<DELAY> will send the whole message when the folder is closed.
-
- [local cache] [write]
- NO no no
- YES yes no
- DELAY yes yes
-
-=back
-
-. cache_head 'NO'|'PARTIAL'|'DELAY'
-
-=over 4
-
-For a read-only folder, C<DELAY> is the default, otherwise C<NO> is
-choosen. The four configuration parameter have subtile consequences.
-To start with a table:
-
- [local cache] [write] [default head_type]
- NO no no Mail::Box::IMAP4::Head
- PARTIAL yes no Mail::Box::IMAP4::Head
- DELAY yes yes Mail::Message::Head::Complete
-
-The default C<head_type> is L<Mail::Box::IMAP4::Head|Mail::Box::IMAP4::Head>, the
-default C<cached_head_type> is L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>.
-
-Having a local cache means that a lookup for a field is first done
-in a local data-structure (which extends L<Mail::Message::Head::Partial|Mail::Message::Head::Partial>),
-and only on the remote server if it was not found. This is dangerous,
-because your locally cached data can be out-of-sync with the server.
-However, it may give you a nice performance benefit.
-
-C<DELAY> will always collect the whole
-header for you. This is required when you want to look for Resent Groups
-(See L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup>) or other field order dependent
-header access. A L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed> will be created first.
-
-=back
-
-. cache_labels 'NO'|'WRITE'|'DELAY'
-
-=over 4
-
-When labels from a message are received, these values can be kept. However,
-this imposes dangers where the server's internal label storage may get out
-of sync with your data.
-
-With C<NO>, no caching will take place (but the performance will be
-worse). With C<WRITE>, all label access will be cached, but written to
-the server as well. Both C<NO> and C<WRITE> will update the labels on
-the served, even when the folder was opened read-only. C<DELAY> will
-not write the changed information to the server, but delay that till
-the moment that the folder is closed. It only works when the folder is
-opened read/write or write is enforced.
-
-The default is C<DELAY> for folders which where opened read-only. This
-means that you still can force an update with L<close(write)|Mail::Box/"The folder">. For folders
-which are opened read-write, the default is the safeset setting, which is
-C<NO>.
-
-=back
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. join_connection BOOLEAN
-
-=over 4
-
-Within this Mail::Box::IMAP4 class is registered which transporters are
-already in use, i.e. which connections to the IMAP server are already
-in established. When this option is set, multiple folder openings on the
-same server will try to reuse one connection.
-
-=back
-
-. keep_dups BOOLEAN
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. password STRING
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. server_name HOSTNAME
-
-. server_port INTEGER
-
-. trace LEVEL
-
-. transporter OBJECT|CLASS
-
-=over 4
-
-The name of the CLASS which will interface with the connection. When you
-implement your own extension to L<Mail::Transport::IMAP4|Mail::Transport::IMAP4>, you can either
-specify a fully instantiated transporter OBJECT, or the name of your own
-CLASS. When an OBJECT is given, most other options will be ignored.
-
-=back
-
-. trusted BOOLEAN
-
-. username STRING
-
-I<Example:>
-
- my $imap = Mail::Box::IMAP4->new(username => 'myname',
- password => 'mypassword', server_name => 'imap.xs4all.nl');
-
- my $url = 'imap4://user:password@imap.xs4all.nl');
- my $imap = $mgr->open($url);
-
- my $client = Mail::IMAPClient->new(...);
- my $imap = Mail::Box::IMAP4->new(imap_client => $client);
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::IMAP4-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-Close the folder. In the case of IMAP, more than one folder can use
-the same connection, therefore, closing a folder does not always close
-the connection to the server. Only when no folder is using the
-connection anymore, a logout will be invoked by
-L<Mail::Transport::IMAP4::DESTROY()|Mail::Transport::IMAP4/"Cleanup">
-
- Option Defined in Default
- force L<Mail::Box> <false>
- save_deleted L<Mail::Box> C<false>
- write L<Mail::Box> C<MODIFIED>
-
-. force BOOLEAN
-
-. save_deleted BOOLEAN
-
-. write 'ALWAYS'|'NEVER'|'MODIFIED'
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box::Net/"METHODS">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::IMAP4-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::IMAP4-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::IMAP4-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-=back
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDER, OPTIONS)
-
-Mail::Box::IMAP4-E<gt>B<create>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Net/"METHODS">
-
-=back
-
-$obj-E<gt>B<createTransporter>(CLASS, OPTIONS)
-
-=over 4
-
-Create a transporter object (an instance of L<Mail::Transport::IMAP4|Mail::Transport::IMAP4>), where
-CLASS defines the exact object type. As OPTIONS, everything which is
-acceptable to a transporter initiation can be used (see
-L<Mail::Transport::IMAP4::new()|Mail::Transport::IMAP4/"METHODS">.
-
- Option Defined in Default
- join_connection C<true>
-
-. join_connection BOOLEAN
-
-=over 4
-
-See L<new(join_connection)|Mail::Box::IMAP4/"METHODS">. When false, the connection will never be shared
-with other IMAP mail boxes.
-
-=back
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<fetch>(ARRAY-OF-MESSAGES|MESSAGE-SELECTION, INFO)
-
-=over 4
-
-Low-level data retreival about one or more messages via IMAP4 from
-the remote server. Some of this data may differ from the information
-which is stored in the message objects which are created by MailBox,
-so you should avoid the use of this method for your own purposes.
-The IMAP implementation provides some wrappers around this, providing
-the correct behavior.
-
-An array of MESSAGES may be specified or some MESSAGE SELECTION,
-acceptable to L<Mail::Box::messages()|Mail::Box/"The messages">. Examples of the latter are
-C<'ALL'>, C<'DELETED'>, or C<spam> (messages labelled to contain spam).
-
-The INFO contains one or more attributes as defined by the IMAP protocol.
-You have to read the full specs of the related RFCs to see these.
-
-=back
-
-Mail::Box::IMAP4-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<getHead>(MESSAGE)
-
-=over 4
-
-Read the header for the specified message from the remote server.
-C<undef> is returned in case the message disappeared.
-
-=back
-
-$obj-E<gt>B<getHeadAndBody>(MESSAGE)
-
-=over 4
-
-Read all data for the specified message from the remote server.
-Return head and body of the mesasge as list, or an empty list
-if the MESSAGE disappeared from the server.
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<transporter>([OBJECT])
-
-=over 4
-
-Returns the object which is the interface to the IMAP4 protocol handler.
-The IMAP4 handler has the current folder selected.
-When an OBJECT is specified, it is set to be the transporter from
-that moment on. The OBJECT must extend L<Mail::Transport::IMAP4|Mail::Transport::IMAP4>.
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-The IMAP protocol usually writes the data immediately to the remote server,
-because that's what the protocol wants. However, some options to L<new()|Mail::Box::IMAP4/"METHODS">
-may delay that to boost performance. This method will, when the folder is
-being closed, write that info after all.
-
- Option Defined in Default
- force L<Mail::Box> <false>
- save_deleted <false>
-
-. force BOOLEAN
-
-. save_deleted BOOLEAN
-
-=over 4
-
-You may be able to save the messages which are flagged for deletion now,
-but they will be removed anyway when the folder is closed.
-
-=back
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- messages L<Mail::Box> <required>
- transporter <required>
-
-. messages ARRAY
-
-. transporter OBJECT
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::IMAP4-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::IMAP4-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::IMAP4-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::IMAP4-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Cannot find head back for $uidl in $folder.
-
-The header was read before, but now seems empty: the IMAP4 server does
-not produce the header lines anymore.
-
-I<Warning:> Cannot read body for $uidl in $folder.
-
-The header of the message was retreived from the IMAP4 server, but the
-body is not read, for an unknown reason.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Notice:> Impossible to keep deleted messages in IMAP
-
-Some folder type have a 'deleted' flag which can be stored in the folder to
-be performed later. The folder keeps that knowledge even when the folder
-is rewritten. Well, IMAP4 cannot play that trick.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message $uidl disappeared from $folder.
-
-Trying to get the specific message from the server, but it appears to be
-gone.
-
-I<Warning:> Message $uidl disappeared from $folder.
-
-Trying to get the specific message from the server, but it appears to be
-gone.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-
-=head1 DETAILS
-
-
-=head2 How IMAP4 folders work
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/IMAP4.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/IMAP4.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Identity.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,275 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Box::Identity;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base qw/User::Identity::Item Mail::Reporter/;
-
-use Mail::Box::Collection;
-
-# tests in tests/52message/30collect.t
-
-
-sub type { "mailbox" }
-
-
-sub new(@)
-{ my $class = shift;
- unshift @_, 'name' if @_ % 2;
- $class->Mail::Reporter::new(@_);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->Mail::Reporter::init($args);
- $self->User::Identity::init($args);
-
- $self->{MBI_location} = delete $args->{location};
- $self->{MBI_ftype} = delete $args->{folder_type};
- $self->{MBI_manager} = delete $args->{manager};
- $self->{MBI_subf_type} = delete $args->{subf_type}||'Mail::Box::Collection';
- $self->{MBI_only_subs} = delete $args->{only_subs};
- $self->{MBI_marked} = delete $args->{marked};
- $self->{MBI_deleted} = delete $args->{deleted};
- $self->{MBI_inferiors} = exists $args->{inferiors} ? $args->{inferiors} : 1;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub fullname(;$)
-{ my $self = shift;
- my $delim = @_ && defined $_[0] ? shift : '/';
-
- my $parent = $self->parent or return $self->name;
- $parent->parent->fullname($delim) . $delim . $self->name;
-}
-
-#-------------------------------------------
-
-
-sub location(;$)
-{ my $self = shift;
- return ($self->{MBI_location} = shift) if @_;
- return $self->{MBI_location} if defined $self->{MBI_location};
-
- my $parent = $self->parent;
- unless(defined $parent)
- { $self->log(ERROR => "Toplevel directory requires explicit location");
- return undef;
- }
-
- $self->folderType
- ->nameOfSubFolder($self->name, $parent->parent->location)
-}
-
-#-------------------------------------------
-
-
-sub folderType()
-{ my $self = shift;
- return $self->{MBI_ftype} if defined $self->{MBI_ftype};
-
- my $parent = $self->parent;
- unless(defined $parent)
- { $self->log(ERROR => "Toplevel directory requires explicit folder type");
- return undef;
- }
-
- $parent->parent->folderType;
-}
-
-#-------------------------------------------
-
-
-sub manager()
-{ my $self = shift;
- return $self->{MBI_manager} if $self->{MBI_manager};
- my $parent = $self->parent or return undef;
- $self->parent->manager;
-}
-
-#-------------------------------------------
-
-
-sub topfolder()
-{ my $self = shift;
- my $parent = $self->parent or return $self;
- $parent->parent->topfolder;
-}
-
-#-------------------------------------------
-
-
-sub onlySubfolders(;$)
-{ my $self = shift;
- return($self->{MBI_only_subs} = shift) if @_;
- return $self->{MBI_only_subs} if exists $self->{MBI_only_subs};
- $self->parent ? 1 : ! $self->folderType->topFolderWithMessages;
-}
-
-#-------------------------------------------
-
-
-sub marked(;$)
-{ my $self = shift;
- @_ ? ($self->{MBI_marked} = shift) : $self->{MBI_marked};
-}
-
-#-------------------------------------------
-
-
-sub inferiors(;$)
-{ my $self = shift;
- @_ ? ($self->{MBI_inferiors} = shift) : $self->{MBI_inferiors};
-}
-
-#-------------------------------------------
-
-
-sub deleted(;$)
-{ my $self = shift;
- @_ ? ($self->{MBI_deleted} = shift) : $self->{MBI_deleted};
-}
-
-#-------------------------------------------
-
-
-sub subfolders()
-{ my $self = shift;
- my $subs = $self->collection('subfolders');
- return (wantarray ? $subs->roles : $subs)
- if defined $subs;
-
- my @subs;
- if(my $location = $self->location)
- { @subs = $self->folderType->listSubFolders
- ( folder => $location
- );
- }
- else
- { my $mgr = $self->manager;
- my $top = defined $mgr ? $mgr->folderdir : '.';
-
- @subs = $self->folderType->listSubFolders
- ( folder => $self->fullname
- , folderdir => $top
- );
- }
- @subs or return ();
-
- my $subf_type
- = $self->{MBI_subf_type} || ref($self->parent) || 'Mail::Box::Collection';
-
- $subs = $subf_type->new('subfolders');
-
- $self->addCollection($subs);
- $subs->addRole(name => $_) for @subs;
- wantarray ? $subs->roles : $subs;
-}
-
-#-------------------------------------------
-
-
-sub subfolderNames() { map {$_->name} shift->subfolders }
-
-#-------------------------------------------
-
-
-sub folder(@)
-{ my $self = shift;
- return $self unless @_ && defined $_[0];
-
- my $subs = $self->subfolders or return undef;
- my $nest = $subs->find(shift) or return undef;
- $nest->folder(@_);
-}
-
-#-------------------------------------------
-
-
-sub open(@)
-{ my $self = shift;
- my $mgr = $self->manager;
-
- $mgr->open
- ( $self->fullname
- , type => $self->folderType
- , @_
- );
-}
-
-#-------------------------------------------
-
-
-sub foreach($)
-{ my ($self, $code) = @_;
- $code->($self);
-
- my $subs = $self->subfolders or return ();
- $_->foreach($code) for $subs->sorted;
- $self;
-}
-
-#-------------------------------------------
-
-
-sub addSubfolder(@)
-{ my $self = shift;
- my $subs = $self->subfolders;
-
- if(defined $subs) { ; }
- elsif(!$self->inferiors)
- { my $name = $self->fullname;
- $self->log(ERROR => "It is not permitted to add subfolders to $name");
- return undef;
- }
- else
- { $subs = $self->{MBI_subf_type}->new('subfolders');
- $self->addCollection($subs);
- }
-
- $subs->addRole(@_);
-}
-
-#-------------------------------------------
-
-
-sub remove(;$)
-{ my $self = shift;
-
- my $parent = $self->parent;
- unless(defined $parent)
- { $self->log(ERROR => "The toplevel folder cannot be removed this way");
- return ();
- }
-
- return $parent->removeRole($self->name)
- unless @_;
-
- my $name = shift;
- my $subs = $self->subfolders or return ();
- $subs->removeRole($name);
-}
-
-#-------------------------------------------
-
-
-sub rename($;$)
-{ my ($self, $folder, $newname) = @_;
- $newname = $self->name unless defined $newname;
-
- my $away = $self->remove;
- $away->name($newname);
-
- $folder->addSubfolder($away);
-}
-
-
-1;
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Identity.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Identity.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,616 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Identity - represents an unopened folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::Identity
- is a User::Identity::Item
-
- Mail::Box::Identity
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use User::Identity;
- use Mail::Box::Identity;
- my $me = User::Identity->new(...);
-
- my $mailbox = Mail::Box::Identity->new(...);
- $me->add(folders => $mailbox);
-
- # Simpler
-
- use User::Identity;
- my $me = User::Identity->new(...);
- my $addr = $me->add(folders => ...);
-
-
-=head1 DESCRIPTION
-
-The C<Mail::Box::Identity> object contains the description of a
-single mailbox. The mailboxes are collected by an L<Mail::Box::Collection|Mail::Box::Collection>
-object. This corresponds with IMAP's C<\NoSelect>, for instance.
-
-Nearly all methods can return undef.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Identity-E<gt>B<new>([NAME], OPTIONS)
-
-=over 4
-
- Option Defined in Default
- deleted <false>
- description L<User::Identity::Item> undef
- folder_type C<from parent>
- inferiors 1
- location C<undef>
- log L<Mail::Reporter> C<'WARNINGS'>
- manager <from parent>
- marked C<undef>
- name L<User::Identity::Item> <required>
- only_subs <foldertype and name dependent>
- parent L<User::Identity::Item> C<undef>
- subf_type <same as parent>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. deleted BOOLEAN
-
-=over 4
-
-The folder is flagged for deletion. This not have any implications yet,
-because it may still get undeleted.
-
-=back
-
-. description STRING
-
-. folder_type CLASS
-
-. inferiors BOOLEAN
-
-=over 4
-
-Can this folder have childs? If not, this is cleared.
-
-=back
-
-. location DIRECTORY|FILENAME
-
-=over 4
-
-The location of this folder. Often, only the manager can figure-out
-where this folder really is.
-
-=back
-
-. log LEVEL
-
-. manager OBJECT
-
-=over 4
-
-Any L<Mail::Box::Manager|Mail::Box::Manager> or L<Mail::Box::Manage::User|Mail::Box::Manage::User> OBJECT.
-
-=back
-
-. marked BOOLEAN|C<undef>
-
-=over 4
-
-Whether the folder is flagged for some reason, for instance because
-new messages have arrived.
-
-=back
-
-. name STRING
-
-. only_subs BOOLEAN
-
-=over 4
-
-Some folder types can have messages in their toplevel folder, other
-cannot. That determines the default.
-See L<Mail::Box::topFolderWithMessages()|Mail::Box/"Sub-folders">
-
-=back
-
-. parent OBJECT
-
-. subf_type CLASS
-
-=over 4
-
-The type for a subfolder collection, must extend CLASS
-L<Mail::Box::Collection|Mail::Box::Collection>.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<deleted>({BOOLEAN])
-
-=over 4
-
-=back
-
-$obj-E<gt>B<description>
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<folderType>
-
-=over 4
-
-Returns the type of this folder.
-
-=back
-
-$obj-E<gt>B<fullname>([DELIMETER])
-
-=over 4
-
-Returns the name of the folder, from the toplevel until this one, with
-the DELIMETER string between each level. DELIMETER default to a forward
-slash (a C</>).
-
-=back
-
-$obj-E<gt>B<inferiors>([BOOLEAN])
-
-=over 4
-
-C<Inferiors> are C<subfolders>. When this flag is set, it is permitted
-to create subfolders.
-
-=back
-
-$obj-E<gt>B<location>([FILENAME|DIRECTORY|undef])
-
-=over 4
-
-Returns the directory or filename of the folder. If this is not pre-defined,
-it is computed based on the knowledge about the folder type. Be sure to set
-the location of the toplevel folder to the folderdir of the user to get
-this to work.
-
-=back
-
-$obj-E<gt>B<manager>
-
-=over 4
-
-Returns the manager (usually a L<Mail::Box::Manage::User|Mail::Box::Manage::User> which owns
-the folders. May be undefined, by default from parent.
-
-=back
-
-$obj-E<gt>B<marked>([BOOLEAN|undef])
-
-=over 4
-
-When something special has happened with the folder, this flag can
-be set (or cleared). The C<undef> status is an "unknown". In the
-IMAP4 protocol, C<0> will result in a C<\Unmarked>, a C<1> results
-in a C<\Marked>, and C<undef> in nothing.
-
-=back
-
-$obj-E<gt>B<name>([NEWNAME])
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<onlySubfolders>([BOOLEAN])
-
-=over 4
-
-Than this folder be opened (without trying) or not? The default
-depends on the folder type, and whether this is the toplevel folder
-or not. See L<Mail::Box::topFolderWithMessages()|Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topfolder>
-
-=over 4
-
-Run up the tree to find the highest level folder.
-
-=back
-
-=head2 Collections
-
-
-$obj-E<gt>B<add>(COLLECTION, ROLE)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<addCollection>(OBJECT | ([TYPE], OPTIONS))
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<collection>(NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<find>(COLLECTION, ROLE)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<parent>([PARENT])
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<removeCollection>(OBJECT|NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<type>
-
-Mail::Box::Identity-E<gt>B<type>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<user>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-=head2 Attributes
-
-
-=head2 Subfolders
-
-
-$obj-E<gt>B<addSubfolder>(L<Mail::Box::Identity|Mail::Box::Identity>|DATA)
-
-=over 4
-
-Add a new folder into the administration. With DATA, a new object
-will be instantiated first. The identity is returned on success.
-
-=back
-
-$obj-E<gt>B<folder>([[NAME, ...], NAME])
-
-=over 4
-
-Returns the subfolder's object with NAME or C<undef> if it does not
-exist. When multiple NAMEs are added, those super folders are traverst
-first. Without any NAME, the current object is returned
-
-I<Example:> get some folder
-
-
- my $a = $user->folders->folder('b', 'a');
-
- my $name = "a:b:c";
- my $delim = ":";
- my $f = $user->folders->folder(split $delim, $name);
-
-=back
-
-$obj-E<gt>B<foreach>(CODE)
-
-=over 4
-
-For each of the subfolders found below this point call CODE. This current
-folder is called first. Be warned that you may find identities with
-the L<deleted()|Mail::Box::Identity/"Attributes"> flag on.
-
-=back
-
-$obj-E<gt>B<open>(OPTIONS)
-
-=over 4
-
-Open the folder which is described by this identity. Returned is some
-L<Mail::Box|Mail::Box>. The options are passed to L<Mail::Box::Manager::open()|Mail::Box::Manager/"Manage open folders">.
-
-=back
-
-$obj-E<gt>B<remove>([NAME])
-
-=over 4
-
-Remove the folder (plus subfolders) with the NAME. Without NAME, this
-C<Mail::Box::Identity> itself is removed.
-
-The removed structure is returned, which is C<undef> if not
-found. This is only an administrative remove, you still need a
-L<Mail::Box::Manager::delete()|Mail::Box::Manager/"Manage existing folders">.
-
-=back
-
-$obj-E<gt>B<rename>(FOLDER, [NEWSUBNAME])
-
-=over 4
-
-Move the folder to a different super-FOLDER, under a NEW SUBfolder NAME.
-
-I<Example:> renaming a folder
-
-
- my $top = $user->topfolder;
- my $new = $top->folder('xyz') or die;
- my $f = $top->folder('abc', 'def')->rename($new, '123');
-
- print $f->name; # 123
- print $f->fullname; # =/xyz/123
-
-=back
-
-$obj-E<gt>B<subfolderNames>
-
-=over 4
-
-Convenience method: returns the names of the collected subfolders.
-
-=back
-
-$obj-E<gt>B<subfolders>
-
-=over 4
-
-Returns the subfolders or C<undef> if there are none. This
-information is lazy evaluated and cached. In LIST context, the folder
-objects are returned (L<Mail::Box::Identity|Mail::Box::Identity> objects), in SCALAR context
-the collection, the L<Mail::Box::Collection|Mail::Box::Collection>.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Identity-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Identity-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Identity-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> $object is not a collection.
-
-The first argument is an object, but not of a class which extends
-L<User::Identity::Collection|User::Identity::Collection>.
-
-I<Error:> Cannot load collection module for $type ($class).
-
-Either the specified $type does not exist, or that module named $class returns
-compilation errors. If the type as specified in the warning is not
-the name of a package, you specified a nickname which was not defined.
-Maybe you forgot the 'require' the package which defines the nickname.
-
-I<Error:> Creation of a collection via $class failed.
-
-The $class did compile, but it was not possible to create an object
-of that class using the options you specified.
-
-I<Error:> Don't know what type of collection you want to add.
-
-If you add a collection, it must either by a collection object or a
-list of options which can be used to create a collection object. In
-the latter case, the type of collection must be specified.
-
-I<Error:> It is not permitted to add subfolders to $name
-
-The L<inferiors()|Mail::Box::Identity/"Attributes"> flag prohibits the creation of subfolders to this
-folder.
-
-I<Warning:> No collection $name
-
-The collection with $name does not exist and can not be created.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> The toplevel folder cannot be removed this way
-
-The L<Mail::Box::Identity|Mail::Box::Identity> folder administration structure requires
-a top directory. That top is registered somewhere (for instance
-by a L<Mail::Box::Manage::User|Mail::Box::Manage::User>). If you need to remove the top,
-you have to look for a method of that object.
-
-I<Error:> Toplevel directory requires explicit folder type
-
-
-I<Error:> Toplevel directory requires explicit location
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Identity.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Identity.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/DotLock.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,108 +0,0 @@
-
-use strict;
-
-package Mail::Box::Locker::DotLock;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Locker';
-
-use IO::File;
-use Carp;
-use File::Spec;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- unless($args->{file})
- { my $folder = $args->{folder} or confess;
- my $org = $folder->organization;
-
- $args->{file}
- = $org eq 'FILE' ? $folder->filename . '.lock'
- : $org eq 'DIRECTORY' ? File::Spec->catfile($folder->directory, '.lock')
- : croak "Need lock file name for DotLock.";
- }
-
- $self->SUPER::init($args);
-}
-
-#-------------------------------------------
-
-sub name() {'DOTLOCK'}
-
-#-------------------------------------------
-
-sub _try_lock($)
-{ my ($self, $lockfile) = @_;
- return if -e $lockfile;
-
- my $flags = $^O eq 'MSWin32'
- ? O_CREAT|O_EXCL|O_WRONLY
- : O_CREAT|O_EXCL|O_WRONLY|O_NONBLOCK;
-
- my $lock = IO::File->new($lockfile, $flags, 0600)
- or return 0;
-
- close $lock;
- 1;
-}
-
-#-------------------------------------------
-
-sub unlock()
-{ my $self = shift;
- return $self unless $self->{MBL_has_lock};
-
- my $lock = $self->filename;
-
- unlink $lock
- or warn "Couldn't remove lockfile $lock: $!\n";
-
- delete $self->{MBL_has_lock};
- $self;
-}
-
-#-------------------------------------------
-
-sub lock()
-{ my $self = shift;
- return 1 if $self->hasLock;
-
- my $lockfile = $self->filename;
- my $end = $self->{MBL_timeout} eq 'NOTIMEOUT' ? -1
- : $self->{MBL_timeout};
- my $expire = $self->{MBL_expires}/86400; # in days for -A
-
- while(1)
- {
- return $self->{MBL_has_lock} = 1
- if $self->_try_lock($lockfile);
-
- if(-e $lockfile && -A $lockfile > $expire)
- {
- if(unlink $lockfile)
- { warn "Removed expired lockfile $lockfile.\n";
- redo;
- }
- else
- { warn "Failed to remove expired lockfile $lockfile: $!\n";
- last;
- }
- }
-
- last unless --$end;
- sleep 1;
- }
-
- return 0;
-}
-
-#-------------------------------------------
-
-sub isLocked() { -e shift->filename }
-
-#-------------------------------------------
-
-1;
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/DotLock.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/DotLock.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,285 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Locker::DotLock - lock a folder with a separate file
-
-
-=head1 INHERITANCE
-
- Mail::Box::Locker::DotLock
- is a Mail::Box::Locker
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Box::Locker
-
-
-=head1 DESCRIPTION
-
-The C<::DotLock> object lock the folder by creating a file with the
-same name as the folder, extended by C<.lock>.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Locker::DotLock-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- expires L<Mail::Box::Locker> 1 hour
- file <folderfile>C<.lock>
- folder L<Mail::Box::Locker> <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- method L<Mail::Box::Locker> C<'DOTLOCK'>
- timeout L<Mail::Box::Locker> 10 seconds
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. expires SECONDS
-
-. file FILENAME
-
-=over 4
-
-Name of the file to lock. By default, the folder's name is extended with
-C<.lock>.
-
-=back
-
-. folder FOLDER
-
-. log LEVEL
-
-. method STRING|CLASS|ARRAY
-
-. timeout SECONDS|'NOTIMEOUT'
-
-. trace LEVEL
-
-=back
-
-=head2 The Locker
-
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<folder>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-=head2 Locking
-
-
-$obj-E<gt>B<hasLock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<isLocked>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<lock>(FOLDER)
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<unlock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Locker::DotLock-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Locker::DotLock-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Locker::DotLock-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box::Locker/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/DotLock.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/DotLock.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Flock.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,107 +0,0 @@
-
-use strict;
-
-package Mail::Box::Locker::Flock;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Locker';
-
-use IO::File;
-use Fcntl qw/:DEFAULT :flock/;
-use Errno qw/EAGAIN/;
-
-
-#-------------------------------------------
-
-sub name() {'FLOCK'}
-
-#-------------------------------------------
-
-sub _try_lock($)
-{ my ($self, $file) = @_;
- flock $file, LOCK_EX|LOCK_NB;
-}
-
-sub _unlock($)
-{ my ($self, $file) = @_;
- flock $file, LOCK_UN;
- delete $self->{MBL_has_lock};
- $self;
-}
-
-#-------------------------------------------
-
-
-# 'r+' is require under Solaris and AIX, other OSes are satisfied with 'r'.
-my $lockfile_access_mode = ($^O eq 'solaris' || $^O eq 'aix') ? 'r+' : 'r';
-
-sub lock()
-{ my $self = shift;
- return 1 if $self->hasLock;
-
- my $filename = $self->filename;
-
- my $file = IO::File->new($filename, $lockfile_access_mode);
- unless($file)
- { $self->log(ERROR =>
- "Unable to open flock file $filename for $self->{MBL_folder}: $!");
- return 0;
- }
-
- my $end = $self->{MBL_timeout} eq 'NOTIMEOUT' ? -1 : $self->{MBL_timeout};
-
- while(1)
- { if($self->_try_lock($file))
- { $self->{MBL_has_lock} = 1;
- $self->{MBLF_filehandle} = $file;
- return 1;
- }
-
- if($! != EAGAIN)
- { $self->log(ERROR =>
- "Will never get a flock on $filename for $self->{MBL_folder}: $!");
- last;
- }
-
- last unless --$end;
- sleep 1;
- }
-
- return 0;
-}
-
-#-------------------------------------------
-
-
-sub isLocked()
-{ my $self = shift;
- my $filename = $self->filename;
-
- my $file = IO::File->new($filename, $lockfile_access_mode);
- unless($file)
- { $self->log(ERROR =>
- "Unable to check lock file $filename for $self->{MBL_folder}: $!");
- return 0;
- }
-
- $self->_try_lock($file) or return 0;
- $self->_unlock($file);
- $file->close;
-
- 1;
-}
-
-#-------------------------------------------
-
-sub unlock()
-{ my $self = shift;
-
- $self->_unlock(delete $self->{MBLF_filehandle})
- if $self->hasLock;
-
- $self;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Flock.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Flock.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,296 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Locker::Flock - lock a folder using kernel file-locking
-
-
-=head1 INHERITANCE
-
- Mail::Box::Locker::Flock
- is a Mail::Box::Locker
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Box::Locker
-
-
-=head1 DESCRIPTION
-
-The C<::Flock> object lock the folder by creating an exclusive lock on
-the file using the kernel's C<flock> facilities. This lock is created
-on a separate file-handle to the folder file, so not the handle which
-is reading.
-
-File locking does not work in some situations, for instance for
-operating systems do not support C<flock>.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Locker::Flock-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- expires L<Mail::Box::Locker> 1 hour
- file L<Mail::Box::Locker> undef
- folder L<Mail::Box::Locker> <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- method L<Mail::Box::Locker> C<'FLOCK'>
- timeout L<Mail::Box::Locker> 10 seconds
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. expires SECONDS
-
-. file FILENAME
-
-. folder FOLDER
-
-. log LEVEL
-
-. method STRING|CLASS|ARRAY
-
-. timeout SECONDS|'NOTIMEOUT'
-
-. trace LEVEL
-
-=back
-
-=head2 The Locker
-
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<folder>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-=head2 Locking
-
-
-$obj-E<gt>B<hasLock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<isLocked>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<lock>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<unlock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Locker::Flock-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Locker::Flock-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Locker::Flock-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box::Locker/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to check lock file $filename for $folder: $!
-
-To check whether the filename is used to flock a folder, the file must be
-opened. Apparently this fails, which does not mean that the folder is
-locked neither that it is unlocked.
-
-I<Error:> Unable to open flock file $filename for $folder: $!
-
-For flock-ing a folder it must be opened, which does not succeed for the
-specified reason.
-
-I<Error:> Will never get a flock at $filename for $folder: $!
-
-Tried to flock the folder, but it did not succeed. The error code received
-from the OS indicates that it will not succeed ever, so we do not need to
-try again.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Flock.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Flock.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Multi.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,111 +0,0 @@
-
-use strict;
-
-package Mail::Box::Locker::Multi;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Locker';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- my @use
- = exists $args->{use} ? @{$args->{use}}
- : $^O =~ m/mswin/i ? qw/ POSIX Flock/
- : qw/NFS POSIX Flock/;
-
- my (@lockers, @used);
-
- foreach my $method (@use)
- { my $locker = eval
- { Mail::Box::Locker->new
- ( %$args
- , method => $method
- , timeout => 1
- )
- };
- next unless defined $locker;
-
- push @lockers, $locker;
- push @used, $method;
- }
-
- $self->{MBLM_lockers} = \@lockers;
- $self->log(PROGRESS => "Multi-locking via @used.");
- $self;
-}
-
-#-------------------------------------------
-
-sub name() {'MULTI'}
-
-#-------------------------------------------
-
-sub _try_lock($)
-{ my $self = shift;
- my @successes;
-
- foreach my $locker ($self->lockers)
- {
- unless($locker->lock)
- { $_->unlock foreach @successes;
- return 0;
- }
- push @successes, $locker;
- }
-
- 1;
-}
-
-#-------------------------------------------
-
-sub unlock()
-{ my $self = shift;
- return $self unless $self->{MBL_has_lock};
-
- $_->unlock foreach $self->lockers;
- delete $self->{MBL_has_lock};
-
- $self;
-}
-
-#-------------------------------------------
-
-sub lock()
-{ my $self = shift;
- return 1 if $self->hasLock;
-
- my $end = $self->{MBL_timeout} eq 'NOTIMEOUT' ? -1 : $self->{MBL_timeout};
-
- while(1)
- { return $self->{MBL_has_lock} = 1
- if $self->_try_lock;
-
- last unless --$end;
- sleep 1;
- }
-
- return 0;
-}
-
-#-------------------------------------------
-
-sub isLocked()
-{ my $self = shift;
- $self->_try_lock($self->filename) or return 0;
- $self->unlock;
- 1;
-}
-
-#-------------------------------------------
-
-
-sub lockers() { @{shift->{MBLM_lockers}} }
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Multi.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Multi.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,309 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Locker::Multi - lock a folder in all ways which work
-
-
-=head1 INHERITANCE
-
- Mail::Box::Locker::Multi
- is a Mail::Box::Locker
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Box::Locker
-
-
-=head1 DESCRIPTION
-
-The C<::Multi> locker locks a folder in each way it can. This way, the
-chance is highest that any other program will leave the folder alone
-during our access to it.
-
-NFS-lock and Flock are tried. More may be added when the ways to
-lock are extended. DotLock overlaps with NFS-lock, but NFS-lock is
-safer, so that version is preferred.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Locker::Multi-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- expires L<Mail::Box::Locker> 1 hour
- file L<Mail::Box::Locker> undef
- folder L<Mail::Box::Locker> <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- method L<Mail::Box::Locker> C<'MULTI'>
- timeout L<Mail::Box::Locker> 10 seconds
- trace L<Mail::Reporter> C<'WARNINGS'>
- use <all possible>
-
-. expires SECONDS
-
-. file FILENAME
-
-. folder FOLDER
-
-. log LEVEL
-
-. method STRING|CLASS|ARRAY
-
-. timeout SECONDS|'NOTIMEOUT'
-
-. trace LEVEL
-
-. use ARRAY
-
-=over 4
-
-Array of locker types and locker objects to be used to lock one
-folder. The type names are converted into objects.
-
-Some locking types are not available on some platforms, so they will
-not be excluded from the default list (NFS POSIX Flock).
-
-=back
-
-I<Example:> using a subset of multi-lockers
-
-
- my $locker = Mail::Box::Locker::Multy->new(use => ['DOTLOCK','FLOCK']);
-
-=back
-
-=head2 The Locker
-
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<folder>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<lockers>
-
-=over 4
-
-Returns a list with all locker objects used by this object.
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-=head2 Locking
-
-
-$obj-E<gt>B<hasLock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<isLocked>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<lock>(FOLDER)
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<unlock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Locker::Multi-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Locker::Multi-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Locker::Multi-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box::Locker/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/Multi.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/Multi.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/NFS.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,134 +0,0 @@
-
-use strict;
-
-package Mail::Box::Locker::NFS;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Locker';
-
-use Sys::Hostname;
-use IO::File;
-use Carp;
-
-
-sub name() {'NFS'}
-
-#-------------------------------------------
-
-# METHOD nfs
-# This hack is copied from the Mail::Folder packages, as written
-# by Kevin Jones. Cited from his code:
-# Whhheeeee!!!!!
-# In NFS, the O_CREAT|O_EXCL isn't guaranteed to be atomic.
-# So we create a temp file that is probably unique in space
-# and time ($folder.lock.$time.$pid.$host).
-# Then we use link to create the real lock file. Since link
-# is atomic across nfs, this works.
-# It loses if it's on a filesystem that doesn't do long filenames.
-
-my $hostname = hostname;
-
-sub _tmpfilename()
-{ my $self = shift;
- return $self->{MBL_tmp} if $self->{MBL_tmp};
-
- my $folder = $self->{MBL_folder};
- $self->{MBL_tmp} = $self->filename . $$;
-}
-
-sub _construct_tmpfile()
-{ my $self = shift;
- my $tmpfile = $self->_tmpfilename;
-
- my $fh = IO::File->new($tmpfile, O_CREAT|O_WRONLY, 0600)
- or return undef;
-
- $fh->close;
- $tmpfile;
-}
-
-sub _try_lock($$)
-{ my ($self, $tmpfile, $lockfile) = @_;
-
- return undef
- unless link $tmpfile, $lockfile;
-
- my $linkcount = (stat $tmpfile)[3];
-
- unlink $tmpfile;
- $linkcount == 2;
-}
-
-sub _unlock($$)
-{ my ($self, $tmpfile, $lockfile) = @_;
-
- unlink $lockfile
- or warn "Couldn't remove lockfile $lockfile: $!\n";
-
- unlink $tmpfile;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub lock()
-{ my $self = shift;
- return 1 if $self->hasLock;
-
- my $folder = $self->{MBL_folder};
- my $lockfile = $self->filename;
- my $tmpfile = $self->_construct_tmpfile or return;
- my $end = $self->{MBL_timeout} eq 'NOTIMEOUT' ? -1
- : $self->{MBL_timeout};
- my $expires = $self->{MBL_expires}/86400; # in days for -A
-
- if(-e $lockfile && -A $lockfile > $expires)
- { if(unlink $lockfile)
- { $self->log(WARNING => "Removed expired lockfile $lockfile.") }
- else { $self->log(ERROR =>
- "Unable to remove expired lockfile $lockfile: $!") }
- }
-
- while(1)
- { if($self->_try_lock($tmpfile, $lockfile))
- { $self->{MBL_has_lock} = 1;
- return 1;
- }
-
- last unless --$end;
- sleep 1;
- }
-
- return 0;
-}
-
-#-------------------------------------------
-
-sub isLocked()
-{ my $self = shift;
- my $tmpfile = $self->_construct_tmpfile or return 0;
- my $lockfile = $self->filename;
-
- my $fh = $self->_try_lock($tmpfile, $lockfile) or return 0;
-
- close $fh;
- $self->_unlock($tmpfile, $lockfile);
- 1;
-}
-
-#-------------------------------------------
-
-sub unlock($)
-{ my $self = shift;
- return $self unless $self->hasLock;
-
- $self->_unlock($self->_tmpfilename, $self->filename);
- delete $self->{MBL_has_lock};
- $self;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/NFS.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/NFS.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,292 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Locker::NFS - lock a folder with a separate file, NFS-safe
-
-
-=head1 INHERITANCE
-
- Mail::Box::Locker::NFS
- is a Mail::Box::Locker
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Box::Locker
-
-
-=head1 DESCRIPTION
-
-Like the C<::DotLock> locker, but then in an NFS-safe fashion. Over NFS,
-the creation of a file is not atomic. The C<::DotLock> locker depends
-on an atomic C<open> system call, hence in not usable to lock a folder
-which accessed over NFS. The C<::NFS>
-locker is therefore more complicated (so therefore slower), but will work
-for NFS --and for local disks as well.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Locker::NFS-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- expires L<Mail::Box::Locker> 1 hour
- file L<Mail::Box::Locker> undef
- folder L<Mail::Box::Locker> <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- method L<Mail::Box::Locker> C<'NFS'>
- timeout L<Mail::Box::Locker> 10 seconds
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. expires SECONDS
-
-. file FILENAME
-
-. folder FOLDER
-
-. log LEVEL
-
-. method STRING|CLASS|ARRAY
-
-. timeout SECONDS|'NOTIMEOUT'
-
-. trace LEVEL
-
-=back
-
-=head2 The Locker
-
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<folder>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-=head2 Locking
-
-
-$obj-E<gt>B<hasLock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<isLocked>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<lock>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<unlock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Locker::NFS-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Locker::NFS-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Locker::NFS-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box::Locker/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Removed expired lockfile $filename.
-
-A lock file was found which was older than the expiration period as
-specified with L<new(timeout)|Mail::Box::Locker/"METHODS">. The lock file was succesfully
-removed.
-
-I<Error:> Unable to remove expired lockfile $lockfile: $!
-
-A lock file was found which was older than the expiration period as
-specified with the L<new(timeout)|Mail::Box::Locker/"METHODS"> option. It is impossible to remove that
-lock file, so we need to wait until it vanishes by some external cause.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/NFS.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/NFS.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/POSIX.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,105 +0,0 @@
-
-use strict;
-
-package Mail::Box::Locker::POSIX;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Locker';
-
-use POSIX;
-use Fcntl;
-use IO::File;
-
-
-#-------------------------------------------
-
-sub name() {'POSIX'}
-
-#-------------------------------------------
-
-sub _try_lock($)
-{ my ($self, $file) = @_;
- $? = fcntl($file, F_SETLK, pack('s @256', F_WRLCK)) || 0;
- $?==0;
-}
-
-sub _unlock($)
-{ my ($self, $file) = @_;
- fcntl($file, F_SETLK, pack('s @256', F_UNLCK));
- delete $self->{MBL_has_lock};
- $self;
-}
-
-#-------------------------------------------
-
-
-sub lock()
-{ my $self = shift;
- return 1 if $self->hasLock;
-
- my $filename = $self->filename;
-
- my $file = IO::File->new($filename, 'r+');
- unless(defined $file)
- { $self->log(ERROR =>
- "Unable to open POSIX lock file $filename for $self->{MBL_folder}: $!");
- return 0;
- }
-
- my $end = $self->{MBL_timeout} eq 'NOTIMEOUT' ? -1 : $self->{MBL_timeout};
-
- while(1)
- { if($self->_try_lock($file))
- { $self->{MBL_has_lock} = 1;
- $self->{MBLF_filehandle} = $file;
- return 1;
- }
-
- if($? != EAGAIN)
- { $self->log(ERROR =>
- "Will never get a POSIX lock on $filename for $self->{MBL_folder}: $!");
- last;
- }
-
- last unless --$end;
- sleep 1;
- }
-
- return 0;
-}
-
-#-------------------------------------------
-
-
-sub isLocked()
-{ my $self = shift;
- my $filename = $self->filename;
-
- my $file = IO::File->new($filename, "r");
- unless($file)
- { $self->log(ERROR =>
- "Unable to check lock file $filename for $self->{MBL_folder}: $!");
- return 0;
- }
-
- $self->_try_lock($file) or return 0;
- $self->_unlock($file);
- $file->close;
-
- 1;
-}
-
-#-------------------------------------------
-
-sub unlock()
-{ my $self = shift;
-
- $self->_unlock(delete $self->{MBLF_filehandle})
- if $self->hasLock;
-
- $self;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/POSIX.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/POSIX.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,293 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Locker::POSIX - lock a folder using kernel file-locking
-
-
-=head1 INHERITANCE
-
- Mail::Box::Locker::POSIX
- is a Mail::Box::Locker
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Box::Locker
-
-
-=head1 DESCRIPTION
-
-This locker object is created by the folder to get an exclusive lock on
-the file which contains the data using the kernel's POSIX facilities. This
-lock is created on a separate file-handle to the folder file, so not the
-handle which is reading. Not all platforms support POSIX locking.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Locker::POSIX-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- expires L<Mail::Box::Locker> 1 hour
- file L<Mail::Box::Locker> undef
- folder L<Mail::Box::Locker> <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- method L<Mail::Box::Locker> C<POSIX>
- timeout L<Mail::Box::Locker> 10 seconds
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. expires SECONDS
-
-. file FILENAME
-
-. folder FOLDER
-
-. log LEVEL
-
-. method STRING|CLASS|ARRAY
-
-. timeout SECONDS|'NOTIMEOUT'
-
-. trace LEVEL
-
-=back
-
-=head2 The Locker
-
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<folder>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box::Locker/"The Locker">
-
-=back
-
-=head2 Locking
-
-
-$obj-E<gt>B<hasLock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-$obj-E<gt>B<isLocked>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<lock>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<unlock>
-
-=over 4
-
-See L<Mail::Box::Locker/"Locking">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Locker::POSIX-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Locker::POSIX-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Locker::POSIX-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box::Locker/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to check lock file $filename for $folder: $!
-
-To check whether the filename is used to flock a folder, the file must be
-opened. Apparently this fails, which does not mean that the folder is
-locked neither that it is unlocked.
-
-I<Error:> Unable to open POSIX lock file $filename for $folder: $!
-
-For POSIX style locking, a folder it must be opened, which does not
-succeed for the specified reason.
-
-I<Error:> Will never get a POSIX lock at $filename for $folder: $!
-
-Tried to lock the folder, but it did not succeed. The error code received
-from the OS indicates that it will not succeed ever, so we do not need to
-try again.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker/POSIX.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker/POSIX.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,129 +0,0 @@
-
-use strict;
-
-package Mail::Box::Locker;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Carp;
-use Scalar::Util 'weaken';
-
-#-------------------------------------------
-
-
-my %lockers =
- ( DOTLOCK => __PACKAGE__ .'::DotLock'
- , FLOCK => __PACKAGE__ .'::Flock'
- , MULTI => __PACKAGE__ .'::Multi'
- , NFS => __PACKAGE__ .'::NFS'
- , NONE => __PACKAGE__
- , POSIX => __PACKAGE__ .'::POSIX'
- );
-
-sub new(@)
-{ my $class = shift;
-
- return $class->SUPER::new(@_)
- unless $class eq __PACKAGE__;
-
- # Try to figure out which locking method we really want (bootstrap)
-
- my %args = @_;
- my $method = !defined $args{method} ? 'DOTLOCK'
- : ref $args{method} eq 'ARRAY' ? 'MULTI'
- : uc $args{method};
-
- my $create = $lockers{$method} || $args{$method};
-
- local $" = ' or ';
- confess "No locking method $method defined: use @{[ keys %lockers ]}"
- unless $create;
-
- # compile the locking module (if needed)
- eval "require $create";
- confess $@ if $@;
-
- $args{use} = $args{method} if ref $args{method} eq 'ARRAY';
-
- $create->SUPER::new(%args);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MBL_folder} = $args->{folder}
- or croak "No folder specified to be locked.\n";
-
- weaken($self->{MBL_folder});
-
- $self->{MBL_expires} = $args->{expires} || 3600; # one hour
- $self->{MBL_timeout} = $args->{timeout} || 10; # ten secs
- $self->{MBL_filename} = $args->{file} || $args->{folder}->name;
- $self->{MBL_has_lock} = 0;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub name {shift->notImplemented}
-
-#-------------------------------------------
-
-sub lockMethod($$$$)
-{ confess "Method removed: use inheritance to implement own method."
-}
-
-#-------------------------------------------
-
-
-sub folder() {shift->{MBL_folder}}
-
-#-------------------------------------------
-
-
-sub filename(;$)
-{ my $self = shift;
- $self->{MBL_filename} = shift if @_;
- $self->{MBL_filename};
-}
-
-#-------------------------------------------
-
-
-sub lock($) { shift->{MBL_has_lock} = 1 }
-
-#-------------------------------------------
-
-
-sub isLocked($) {0}
-
-#-------------------------------------------
-
-
-sub hasLock() {shift->{MBL_has_lock} }
-
-#-------------------------------------------
-
-
-# implementation hazard: the unlock must be self-reliant, without
-# help by the folder, because it may be called at global destruction
-# after the folder has been removed.
-
-sub unlock() { shift->{MBL_has_lock} = 0 }
-
-#-------------------------------------------
-
-
-sub DESTROY()
-{ my $self = shift;
- $self->unlock if $self->hasLock;
- $self->SUPER::DESTROY;
- $self;
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Locker.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,427 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Locker - manage the locking of mail folders
-
-
-=head1 INHERITANCE
-
- Mail::Box::Locker
- is a Mail::Reporter
-
- Mail::Box::Locker is extended by
- Mail::Box::Locker::DotLock
- Mail::Box::Locker::Flock
- Mail::Box::Locker::Multi
- Mail::Box::Locker::NFS
- Mail::Box::Locker::POSIX
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Locker;
- my $locker = new Mail::Box::Locker(folder => $folder);
-
- $locker->lock;
- $locker->isLocked;
- $locker->hasLock;
- $locker->unlock;
-
- use Mail::Box;
- my $folder = Mail::Box->new(lock_method => 'DOTLOCK');
- print $folder->locker->type;
-
-
-=head1 DESCRIPTION
-
-Each L<Mail::Box|Mail::Box> will create its own C<Mail::Box::Locker> object which
-will handle the locking for it. You can access of the object directly
-from the folder, as shown in the examples below.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Locker-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a new lock. You may do this directly. However, in most cases the
-lock will not be separately instantiated but will be the second class in
-a multiple inheritance construction with a L<Mail::Box|Mail::Box>.
-
-Generally the client program specifies the locking behavior through
-options given to the folder class.
-
- Option Defined in Default
- expires 1 hour
- file undef
- folder <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- method C<'DOTLOCK'>
- timeout 10 seconds
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. expires SECONDS
-
-=over 4
-
-How long can a lock exist? If a different e-mail program leaves a stale
-lock, then this lock will be removed automatically after the specified
-number of seconds.
-
-=back
-
-. file FILENAME
-
-=over 4
-
-Name of the file to lock. By default, the name of the folder is taken.
-
-=back
-
-. folder FOLDER
-
-=over 4
-
-Which FOLDER is to be locked, a L<Mail::Box|Mail::Box> object.
-
-=back
-
-. log LEVEL
-
-. method STRING|CLASS|ARRAY
-
-=over 4
-
-Which kind of locking, specified as one of the following names as STRING.
-You may also specify a CLASS name, or an ARRAY of names. In case of an
-ARRAY, a 'multi' locker is started with all thee
-full CLASS name.
-
-Supported locking names are
-
-=over 4
-
-=item 'DOTLOCK' | 'dotlock'
-
-The folder handler creates a file which signals that it is in use. This
-is a bit problematic, because not all mail-handling software agree on
-the name of the file to be created.
-
-On various folder types, the lockfile differs. See the documentation for
-each folder, which describes the locking strategy as well as special
-options to change the default behavior.
-
-=item 'FLOCK' | 'flock'
-
-For some folder handlers, locking is based on a file locking mechanism
-provided by the operating system. However, this does not work on all
-systems, such as network filesystems, and such. This also doesn't work on
-folders based on directories (L<Mail::Box::Dir|Mail::Box::Dir> and derived).
-
-=item 'POSIX' | 'posix'
-
-Use the POSIX standard fcntl locking.
-
-=item 'MULTI' | 'multi'
-
-Use ALL available locking methods at the same time, to have a bigger
-chance that the folder will not be modified by some other application
-which uses an unspecified locking method. When one of the locking
-methods disallows access, the locking fails.
-
-=item 'NFS' | 'nfs'
-
-A kind of C<dotlock> file-locking mechanism, but adapted to work over
-NFS. Extra precaution is needed because an C<open O_EXCL> on NFS is
-not an atomic action.
-
-=item 'NONE' | 'none'
-
-Do not use locking.
-
-=back
-
-The other option is to produce your own C<Mail::Box::Locker> derived class,
-which implements the desired locking method. (Please consider offering it
-for inclusion in the public Mail::Box module!) Create an instance of that
-class with this parameter:
-
- my $locker = Mail::Box::Locker::MyOwn->new;
- $folder->open(locker => $locker);
-
-=back
-
-. timeout SECONDS|'NOTIMEOUT'
-
-=over 4
-
-How long to wait while trying to acquire the lock. The lock request will
-fail when the specified number of seconds is reached. If C<'NOTIMEOUT'> is
-specified, the module will wait until the lock can be taken.
-
-Whether it is possible to limit the wait time is platform- and
-locking-method-specific. For instance, the `dotlock' method on Windows
-will always wait until the lock has been received.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 The Locker
-
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-Returns the filename which is used to lock the folder, optionally after
-setting it to the specified FILENAME.
-
-I<Example:>
-
- print $locker->filename;
-
-=back
-
-$obj-E<gt>B<folder>
-
-=over 4
-
-Returns the folder object which is locker.
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-Returns the method used to lock the folder. See the L<new(method)|Mail::Box::Locker/"METHODS"> for
-details on how to specify the lock method. The name of the method is
-returned in upper-case.
-
-I<Example:>
-
- if($locker->name eq 'FLOCK') ...
-
-=back
-
-=head2 Locking
-
-
-$obj-E<gt>B<hasLock>
-
-=over 4
-
-Check whether the folder has the lock.
-
-I<Example:>
-
- if($locker->hasLock) {...}
- if($folder->locker->hasLock) {...}
-
-=back
-
-$obj-E<gt>B<isLocked>
-
-=over 4
-
-Test if the folder is locked by this or a different application.
-
-I<Example:>
-
- if($locker->isLocked) {...}
- if($folder->locker->isLocked) {...}
-
-=back
-
-$obj-E<gt>B<lock>(FOLDER)
-
-=over 4
-
-Get a lock on a folder. This will return false if the lock fails.
-
-I<Example:>
-
- die unless $locker->lock;
- if($folder->locker->lock) {...}
-
-=back
-
-$obj-E<gt>B<unlock>
-
-=over 4
-
-Undo the lock on a folder.
-
-I<Example:>
-
- $locker->unlock;
- $folder->locker->unlock;
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Locker-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Locker-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Locker-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-When the locker is destroyed, for instance when the folder is closed
-or the program ends, the lock will be automatically removed.
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Locker.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Locker.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Index.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,118 +0,0 @@
-
-use strict;
-
-package Mail::Box::MH::Index;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Mail::Message::Head::Subset;
-use Carp;
-
-
-#-------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- $self->{MBMI_filename} = $args->{filename}
- or croak "No index filename specified.";
-
- $self->{MBMI_head_wrap} = $args->{head_wrap} || 72;
- $self->{MBMI_head_type}
- = $args->{head_type} || 'Mail::Message::Head::Subset';
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub filename() {shift->{MBMI_filename}}
-
-#-------------------------------------------
-
-
-sub write(@)
-{ my $self = shift;
- my $index = $self->filename or return $self;
- my $fieldtype = 'Mail::Message::Field';
-
- # Remove empty index-file.
- unless(@_)
- { unlink $index;
- return $self;
- }
-
- my $written = 0;
-
- local *INDEX;
- open INDEX, '>', $index or return;
-
- foreach my $msg (@_)
- { my $head = $msg->head;
- next if $head->isDelayed;
-
- my $filename = $msg->filename;
- $head->setNoRealize($fieldtype->new('X-MailBox-Filename' => $filename));
- $head->setNoRealize($fieldtype->new('X-MailBox-Size' => -s $filename));
- $head->print(\*INDEX);
- $written++;
- }
-
- close INDEX;
-
- unlink $index unless $written;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub read(;$)
-{ my $self = shift;
- my $filename = $self->{MBMI_filename};
-
- my $parser = Mail::Box::Parser->new
- ( filename => $filename
- , mode => 'r'
- ) or return;
-
- my @options = ($self->logSettings, wrap_length => $self->{MBMI_head_wrap});
- my $type = $self->{MBMI_head_type};
- my $index_age= -M $filename;
- my %index;
-
- while(my $head = $type->new(@options)->read($parser))
- {
- # cleanup the index from files which were renamed
- my $msgfile = $head->get('x-mailbox-filename');
- my $size = int $head->get('x-mailbox-size');
- next unless -f $msgfile && -s _ == $size;
- next if defined $index_age && -M _ >= $index_age;
-
- # keep this one
- $index{$msgfile} = $head;
- }
-
- $parser->stop;
-
- $self->{MBMI_index} = \%index;
- $self;
-}
-
-#-------------------------------------------
-
-
-sub get($)
-{ my ($self, $msgfile) = @_;
- $self->{MBMI_index}{$msgfile};
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Index.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Index.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,288 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::MH::Index - keep index files for messages.
-
-
-=head1 INHERITANCE
-
- Mail::Box::MH::Index
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $index = Mail::Box::MH::Index->new;
- $index->read(...)
- $index->write(...)
-
-
-=head1 DESCRIPTION
-
-Message folders which store their data in one single file per message are
-very inefficient for producing subject overviews and for computing message
-threads. The C<Mail::Box::MH::Index> object is able to store and read a the
-headers of a set of C<Mail::Box::MH::Message> messages which are
-part of a single C<Mail::Box::MH> folder in one file.
-
-When the C<Mail::Box::MH::Index> functionality is enabled by specifying
-L<Mail::Box::MH::new(keep_index)|Mail::Box::MH/"METHODS"> when opening a folder, the index file
-is automatically read. When the folder is closed, a new index file is
-created.
-
-Special care is taken to avoid problems which occur when the user changes
-or removes message files without updating the index. If the index is not
-trustworthy it will not be used (costing some performance for the reader
-of the folder).
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::MH::Index-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- filename <required>
- head_type L<Mail::Message::Head::Subset|Mail::Message::Head::Subset>
- head_wrap 72
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. filename FILENAME
-
-=over 4
-
-The FILENAME which is used to store the headers of all the e-mails for
-one folder. This must be an absolute pathname.
-
-=back
-
-. head_type CLASS
-
-=over 4
-
-The type of headers which will be used to store header information when
-it is read from the index file. You can not be sure the index contains
-all header line (the mailbox may have been updated without updating
-the index) so this will usually be (an sub-class of)
-L<Mail::Message::Head::Subset|Mail::Message::Head::Subset>.
-
-=back
-
-. head_wrap INTEGER
-
-=over 4
-
-The preferred number of character in each header line.
-
-=back
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 The Index
-
-
-$obj-E<gt>B<filename>
-
-=over 4
-
-Returns the name of the index file.
-
-=back
-
-$obj-E<gt>B<get>(MSGFILE)
-
-=over 4
-
-Look if there is header info for the specified MSGFILE. The filename
-represents one message in folder type which are organized as directory.
-This method will return an object of the L<new(head_type)|Mail::Box::MH::Index/"Constructors"> as specified
-during creation of the index object, or C<undef> if the information
-is not known or not trustworthy -i.e. the file size changed.
-
-=back
-
-$obj-E<gt>B<read>
-
-=over 4
-
-Read the index file. The header objects can after this be requested
-with the get() method.
-
-=back
-
-$obj-E<gt>B<write>(MESSAGES)
-
-=over 4
-
-Write an index file containing the headers specified MESSAGES
-(Mail::Message objects).
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::MH::Index-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::MH::Index-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::MH::Index-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Index.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Index.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Labels.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,163 +0,0 @@
-
-use strict;
-
-package Mail::Box::MH::Labels;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Mail::Message::Head::Subset;
-
-use File::Copy;
-use Carp;
-
-
-#-------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
- $self->{MBML_filename} = $args->{filename}
- or croak "No label filename specified.";
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub filename() {shift->{MBML_filename}}
-
-#-------------------------------------------
-
-
-sub get($)
-{ my ($self, $msgnr) = @_;
- $self->{MBML_labels}[$msgnr];
-}
-
-#-------------------------------------------
-
-
-sub read()
-{ my $self = shift;
- my $seq = $self->filename;
-
- open SEQ, '<', $seq
- or return;
-
- my @labels;
-
- local $_;
- while(<SEQ>)
- { s/\s*\#.*$//;
- next unless length;
-
- next unless s/^\s*(\w+)\s*\:\s*//;
- my $label = $1;
-
- my $set = 1;
- if($label eq 'cur' ) { $label = 'current' }
- elsif($label eq 'unseen') { $label = 'seen'; $set = 0 }
-
- foreach (split /\s+/)
- { if( /^(\d+)\-(\d+)\s*$/ )
- { push @{$labels[$_]}, $label, $set foreach $1..$2;
- }
- elsif( /^\d+\s*$/ )
- { push @{$labels[$_]}, $label, $set;
- }
- }
- }
-
- close SEQ;
-
- $self->{MBML_labels} = \@labels;
- $self;
-}
-
-#-------------------------------------------
-
-
-sub write(@)
-{ my $self = shift;
- my $filename = $self->filename;
-
- # Remove when no messages are left.
- unless(@_)
- { unlink $filename;
- return $self;
- }
-
- open my $out, '>', $filename or return;
- $self->print($out, @_);
- close $out;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub append(@)
-{ my $self = shift;
- my $filename = $self->filename;
-
- open(my $out, '>>', $filename) or return;
- $self->print($out, @_);
- close $out;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub print($@)
-{ my ($self, $out) = (shift, shift);
-
- # Collect the labels from the selected messages.
- my %labeled;
- foreach my $message (@_)
- { my $labels = $message->labels;
- (my $seq = $message->filename) =~ s!.*/!!;
-
- push @{$labeled{unseen}}, $seq
- unless $labels->{seen};
-
- foreach (keys %$labels)
- { push @{$labeled{$_}}, $seq
- if $labels->{$_};
- }
- }
- delete $labeled{seen};
-
- # Write it out
-
- local $" = ' ';
- foreach (sort keys %labeled)
- {
- my @msgs = @{$labeled{$_}}; #they are ordered already.
- $_ = 'cur' if $_ eq 'current';
- print $out "$_:";
-
- while(@msgs)
- { my $start = shift @msgs;
- my $end = $start;
-
- $end = shift @msgs
- while @msgs && $msgs[0]==$end+1;
-
- print $out ($start==$end ? " $start" : " $start-$end");
- }
- print $out "\n";
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Labels.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Labels.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,270 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::MH::Labels - maintain MH message related labels
-
-
-=head1 INHERITANCE
-
- Mail::Box::MH::Labels
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $labels = Mail::Box::MH::Labels->new;
- $labels->read(...)
- $labels->write(...)
-
-
-=head1 DESCRIPTION
-
-MH type message folders use one dedicated file per folder-directory to list
-special tags to messages in that folder. By doing this, mail agents may
-avoid parsing all the messages, which is very resource consuming.
-
-Labels can be used to group messages, for instance to reflect which
-messages have been read or which look like spam. Some labels are
-predefined, but more can be added without limitation.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::MH::Labels-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- filename <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. filename FILENAME
-
-=over 4
-
-The FILENAME which is used in each directory to store the headers of all
-mails. The filename must be an absolute path.
-
-=back
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 The Label Table
-
-
-$obj-E<gt>B<append>(MESSAGES)
-
-=over 4
-
-Append the label information about the specified MESSAGES to the end
-of the label file. The information will not be merged with the
-information already present in the label file.
-
-=back
-
-$obj-E<gt>B<filename>
-
-=over 4
-
-Returns the name of the index file.
-
-=back
-
-$obj-E<gt>B<get>(MSGNR)
-
-=over 4
-
-Look if there is label info for message MSGNR.
-
-=back
-
-$obj-E<gt>B<print>(FILEHANDLE, MESSAGES)
-
-=over 4
-
-Print the labels of the specified messages to the opened file.
-
-=back
-
-$obj-E<gt>B<read>
-
-=over 4
-
-Read all label information from file.
-
-=back
-
-$obj-E<gt>B<write>(MESSAGES)
-
-=over 4
-
-Write the labels related to the specified messages to the label file.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::MH::Labels-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::MH::Labels-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::MH::Labels-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Labels.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Labels.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,22 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::MH::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Dir::Message';
-
-use File::Copy;
-use Carp;
-
-
-#-------------------------------------------
-
-
-# Purpose of doc is only the warning... no new implementation required.
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,993 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::MH::Message - one message in an MH-folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::MH::Message
- is a Mail::Box::Dir::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::MH ...
- my $message = $folder->message(10);
-
-
-=head1 DESCRIPTION
-
-A C<Mail::Box::MH::Message> represents one message in an
-L<Mail::Box::MH|Mail::Box::MH> folder . Each message is stored in a separate file,
-as for all L<Mail::Box::Dir|Mail::Box::Dir> folder types.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::MH::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"METHODS">
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::MH::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::MH::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::MH::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::MH::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"The message">
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-The order of this message in the folder, counted from zero. Do not
-change the number (unless you understand the implications).
-
-WARNING: This sequence number has nothing to do with the message's
-filename, which in case of MH folders are also numbers! If you need
-that one, use the File::Basename subroutine basename of the filename.
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::MH::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FILENAME)
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadHead>
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<parser>
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::MH::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::MH::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::MH::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::MH::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot create parser for $filename.
-
-For some reason (the previous message have told you already) it was not possible
-to create a message parser for the specified filename.
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> Cannot write message to $filename: $!
-
-When a modified or new message is written to disk, it is first written
-to a temporary file in the folder directory. For some reason, it is
-impossible to create this file.
-
-I<Error:> Failed to move $new to $filename: $!
-
-When a modified or new message is written to disk, it is first written
-to a temporary file in the folder directory. Then, the new file is
-moved to replace the existing file. Apparently, the latter fails.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-For some reason, the header of the message could be read, but the body
-cannot. Probably the file has disappeared or the permissions were
-changed during the progress of the program.
-
-I<Error:> Unable to read delayed head.
-
-Mail::Box tries to be I<lazy> with respect to parsing messages. When a
-directory organized folder is opened, only the filenames of messages are
-collected. At first use, the messages are read from their file. Apperently,
-a message is used for the first time here, but has disappeared or is
-unreadible for some other reason.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-=head2 Labels
-
-
-=head3 The .mh_sequences file
-
-Typically, the file which contains the labels is called C<.mh_sequences>.
-The MH messages are numbered from C<1>. As example content for
-C<.mh_sequences>:
-
- cur: 93
- unseen: 32 35-56 67-80
-
-To generalize labels on messages, two are treated specially:
-
-=over 4
-
-=item * cur
-
-The C<cur> specifies the number of the message where the user stopped
-reading mail from this folder at last access. Internally in these
-modules referred to as label C<current>.
-
-=item * unseen
-
-With C<unseen> is listed which message was never read.
-This must be a mistake in the design of MH: it must be a source of
-confusion. People should never use labels with a negation in the
-name:
-
- if($seen) if(!$unseen) #yuk!
- if(!$seen) if($unseen)
- unless($seen) unless($unseen) #yuk!
-
-So: label C<unseen> is translated into C<seen> for internal use.
-
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,440 +0,0 @@
-
-use strict;
-package Mail::Box::MH;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Dir';
-
-use Mail::Box::MH::Index;
-use Mail::Box::MH::Message;
-use Mail::Box::MH::Labels;
-
-use Carp;
-use File::Spec ();
-use File::Basename 'basename';
-use IO::Handle ();
-
-# Since MailBox 2.052, the use of File::Spec is reduced to the minimum,
-# because it is too slow. The '/' directory separators do work on
-# Windows too.
-
-
-my $default_folder_dir = exists $ENV{HOME} ? "$ENV{HOME}/.mh" : '.';
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{folderdir} ||= $default_folder_dir;
- $args->{lock_file} ||= $args->{index_filename};
-
- $self->SUPER::init($args);
-
- my $folderdir = $self->folderdir;
- my $directory = $self->directory;
- return unless -d $directory;
-
- # About the index
-
- $self->{MBM_keep_index} = $args->{keep_index} || 0;
- $self->{MBM_index} = $args->{index};
- $self->{MBM_index_type} = $args->{index_type} || 'Mail::Box::MH::Index';
- for($args->{index_filename})
- { $self->{MBM_index_filename}
- = !defined $_ ? "$directory/.index" # default
- : File::Spec->file_name_is_absolute($_) ? $_ # absolute
- : "$directory/$_"; # relative
- }
-
- # About labels
-
- $self->{MBM_labels} = $args->{labels};
- $self->{MBM_labels_type} = $args->{labels_type} || 'Mail::Box::MH::Labels';
- for($args->{labels_filename})
- { $self->{MBM_labels_filename}
- = !defined $_ ? "$directory/.mh_sequences"
- : File::Spec->file_name_is_absolute($_) ? $_ # absolute
- : "$directory/$_"; # relative
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub create($@)
-{ my ($thingy, $name, %args) = @_;
- my $class = ref $thingy || $thingy;
- my $folderdir = $args{folderdir} || $default_folder_dir;
- my $directory = $class->folderToDirectory($name, $folderdir);
-
- return $class if -d $directory;
-
- if(mkdir $directory, 0700)
- { $class->log(PROGRESS => "Created folder $name.");
- return $class;
- }
- else
- { $class->log(ERROR => "Cannot create MH folder $name: $!");
- return;
- }
-}
-
-#-------------------------------------------
-
-sub foundIn($@)
-{ my $class = shift;
- my $name = @_ % 2 ? shift : undef;
- my %args = @_;
- my $folderdir = $args{folderdir} || $default_folder_dir;
- my $directory = $class->folderToDirectory($name, $folderdir);
-
- return 0 unless -d $directory;
- return 1 if -f "$directory/1";
-
- # More thorough search required in case some numbered messages
- # disappeared (lost at fsck or copy?)
-
- return unless opendir DIR, $directory;
- foreach (readdir DIR)
- { next unless m/^\d+$/; # Look for filename which is a number.
- closedir DIR;
- return 1;
- }
-
- closedir DIR;
- 0;
-}
-
-#-------------------------------------------
-
-sub type() {'mh'}
-
-#-------------------------------------------
-
-sub listSubFolders(@)
-{ my ($class, %args) = @_;
- my $dir;
- if(ref $class)
- { $dir = $class->directory;
- $class = ref $class;
- }
- else
- { my $folder = $args{folder} || '=';
- my $folderdir = $args{folderdir} || $default_folder_dir;
- $dir = $class->folderToDirectory($folder, $folderdir);
- }
-
- $args{skip_empty} ||= 0;
- $args{check} ||= 0;
-
- # Read the directories from the directory, to find all folders
- # stored here. Some directories have to be removed because they
- # are created by all kinds of programs, but are no folders.
-
- return () unless -d $dir && opendir DIR, $dir;
-
- my @dirs = grep { !/^\d+$|^\./ && -d "$dir/$_" && -r _ }
- readdir DIR;
-
- closedir DIR;
-
- # Skip empty folders. If a folder has sub-folders, then it is not
- # empty.
- if($args{skip_empty})
- { my @not_empty;
-
- foreach my $subdir (@dirs)
- { if(-f "$dir/$subdir/1")
- { # Fast found: the first message of a filled folder.
- push @not_empty, $subdir;
- next;
- }
-
- opendir DIR, "$dir/$subdir" or next;
- my @entities = grep !/^\./, readdir DIR;
- closedir DIR;
-
- if(grep /^\d+$/, @entities) # message 1 was not there, but
- { push @not_empty, $subdir; # other message-numbers exist.
- next;
- }
-
- foreach (@entities)
- { next unless -d "$dir/$subdir/$_";
- push @not_empty, $subdir;
- last;
- }
-
- }
-
- @dirs = @not_empty;
- }
-
- # Check if the files we want to return are really folders.
-
- @dirs = map { m/(.*)/ && $1 ? $1 : () } @dirs; # untaint
- return @dirs unless $args{check};
-
- grep { $class->foundIn("$dir/$_") } @dirs;
-}
-
-#-------------------------------------------
-
-sub openSubFolder($)
-{ my ($self, $name) = @_;
-
- my $subdir = $self->nameOfSubFolder($name);
- unless(-d $subdir || mkdir $subdir, 0755)
- { warn "Cannot create subfolder $name for $self: $!\n";
- return;
- }
-
- $self->SUPER::openSubFolder($name, @_);
-}
-
-#-------------------------------------------
-
-sub topFolderWithMessages() { 1 }
-
-#-------------------------------------------
-
-
-sub appendMessages(@)
-{ my $class = shift;
- my %args = @_;
-
- my @messages = exists $args{message} ? $args{message}
- : exists $args{messages} ? @{$args{messages}}
- : return ();
-
- my $self = $class->new(@_, access => 'a')
- or return ();
-
- my $directory= $self->directory;
- return unless -d $directory;
-
- my $locker = $self->locker;
- unless($locker->lock)
- { $self->log(ERROR => "Cannot append message without lock on $self.");
- return;
- }
-
- my $msgnr = $self->highestMessageNumber +1;
-
- foreach my $message (@messages)
- { my $filename = "$directory/$msgnr";
- $message->create($filename)
- or $self->log(ERROR =>
- "Unable to write message for $self to $filename: $!\n");
-
- $msgnr++;
- }
-
- my $labels = $self->labels->append(@messages);
-
- $locker->unlock;
- $self->close;
-
- @messages;
-}
-
-#-------------------------------------------
-
-
-sub highestMessageNumber()
-{ my $self = shift;
-
- return $self->{MBM_highest_msgnr}
- if exists $self->{MBM_highest_msgnr};
-
- my $directory = $self->directory;
-
- opendir DIR, $directory or return;
- my @messages = sort {$a <=> $b} grep /^\d+$/, readdir DIR;
- closedir DIR;
-
- $messages[-1];
-}
-
-#-------------------------------------------
-
-
-sub index()
-{ my $self = shift;
- return () unless $self->{MBM_keep_index};
- return $self->{MBM_index} if defined $self->{MBM_index};
-
- $self->{MBM_index} = $self->{MBM_index_type}->new
- ( filename => $self->{MBM_index_filename}
- , $self->logSettings
- )
-
-}
-
-#-------------------------------------------
-
-
-sub labels()
-{ my $self = shift;
- return $self->{MBM_labels} if defined $self->{MBM_labels};
-
- $self->{MBM_labels} = $self->{MBM_labels_type}->new
- ( filename => $self->{MBM_labels_filename}
- , $self->logSettings
- )
-}
-
-#-------------------------------------------
-
-sub readMessageFilenames
-{ my ($self, $dirname) = @_;
-
- opendir DIR, $dirname or return;
-
- # list of numerically sorted, untainted filenames.
- my @msgnrs
- = sort {$a <=> $b}
- map { /^(\d+)$/ && -f "$dirname/$1" ? $1 : () }
- readdir DIR;
-
- closedir DIR;
-
- @msgnrs;
-}
-
-#-------------------------------------------
-
-sub readMessages(@)
-{ my ($self, %args) = @_;
-
- my $directory = $self->directory;
- return unless -d $directory;
-
- my $locker = $self->locker;
- $locker->lock or return;
-
- my @msgnrs = $self->readMessageFilenames($directory);
-
- my $index = $self->{MBM_index};
- unless($index)
- { $index = $self->index;
- $index->read if $index;
- }
-
- my $labels = $self->{MBM_labels};
- unless($labels)
- { $labels = $self->labels;
- $labels->read if $labels;
- }
-
- my $body_type = $args{body_delayed_type};
- my $head_type = $args{head_delayed_type};
- my @log = $self->logSettings;
-
- foreach my $msgnr (@msgnrs)
- {
- my $msgfile = "$directory/$msgnr";
-
- my $head;
- $head = $index->get($msgfile) if $index;
- $head ||= $head_type->new(@log);
-
- my $message = $args{message_type}->new
- ( head => $head
- , filename => $msgfile
- , folder => $self
- , fix_header => $self->{MB_fix_headers}
- );
-
- my $labref = $labels ? $labels->get($msgnr) : ();
- $message->label(seen => 1, $labref ? @$labref : ());
-
- $message->storeBody($body_type->new(@log, message => $message));
- $self->storeMessage($message);
- }
-
- $self->{MBM_highest_msgnr} = $msgnrs[-1];
- $self;
-}
-
-#-------------------------------------------
-
-sub delete(@)
-{ my $self = shift;
- $self->SUPER::delete(@_);
-
- my $dir = $self->directory;
- return 1 unless opendir DIR, $dir;
- IO::Handle::untaint \*DIR;
-
- # directories (subfolders) are not removed, as planned
- unlink "$dir/$_" for readdir DIR;
- closedir DIR;
-
- rmdir $dir; # fails when there are subdirs (without recurse)
-}
-
-#-------------------------------------------
-
-
-sub writeMessages($)
-{ my ($self, $args) = @_;
-
- # Write each message. Two things complicate life:
- # 1 - we may have a huge folder, which should not be on disk twice
- # 2 - we may have to replace a message, but it is unacceptable
- # to remove the original before we are sure that the new version
- # is on disk.
-
- my $locker = $self->locker;
- $self->log(ERROR => "Cannot write folder $self without lock."), return
- unless $locker->lock;
-
- my $renumber = exists $args->{renumber} ? $args->{renumber} : 1;
- my $directory = $self->directory;
- my @messages = @{$args->{messages}};
-
- my $writer = 0;
- foreach my $message (@messages)
- {
- my $filename = $message->filename;
-
- my $newfile;
- if($renumber || !$filename)
- { $newfile = $directory . '/' . ++$writer;
- }
- else
- { $newfile = $filename;
- $writer = basename $filename;
- }
-
- $message->create($newfile);
- }
-
- # Write the labels- and the index-file.
-
- my $labels = $self->labels;
- $labels->write(@messages) if $labels;
-
- my $index = $self->index;
- $index->write(@messages) if $index;
-
- $locker->unlock;
-
- # Remove an empty folder. This is done last, because the code before
- # in this method will have cleared the contents of the directory.
-
- if(!@messages && $self->{MB_remove_empty})
- { # If something is still in the directory, this will fail, but I
- # don't mind.
- rmdir $directory;
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/MH.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,985 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::MH - handle MH folders
-
-
-=head1 INHERITANCE
-
- Mail::Box::MH
- is a Mail::Box::Dir
- is a Mail::Box
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::MH;
- my $folder = new Mail::Box::MH folder => $ENV{MAIL}, ...;
-
-
-=head1 DESCRIPTION
-
-This documentation describes how MH mailboxes work, and what you
-can do with the MH folder object C<Mail::Box::MH>.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::MH-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- access L<Mail::Box> C<'r'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <false>
- directory L<Mail::Box::Dir> <derived from folder name>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C<$ENV{MAIL}>
- folderdir L<Mail::Box> C<$ENV{HOME}/.mh>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- index undef
- index_filename <foldername>C</.index>
- index_type L<Mail::Box::MH::Index|Mail::Box::MH::Index>
- keep_dups L<Mail::Box> <false>
- keep_index 0
- labels undef
- labels_filename <foldername>C</.mh_sequence>
- labels_type L<Mail::Box::MH::Labels|Mail::Box::MH::Labels>
- lock_file L<Mail::Box> <index_file>
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> L<Mail::Box::Locker::DotLock|Mail::Box::Locker::DotLock>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::Message|Mail::Box::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- remove_when_empty L<Mail::Box> <true>
- save_on_exit L<Mail::Box> <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <depends on folder location>
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. directory DIRECTORY
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. index OBJECT
-
-=over 4
-
-You may specify an OBJECT of a type which extends L<Mail::Box::MH::Index|Mail::Box::MH::Index>
-(at least implements a C<get()> method), as alternative for an index file
-reader as created by C<Mail::Box::MH>.
-
-=back
-
-. index_filename FILENAME
-
-=over 4
-
-The FILENAME which is used in each directory to store the headers of all
-mails. The filename shall not contain a directory path. (e.g. Do not use
-C</usr/people/jan/.index>, nor C<subdir/.index>, but say C<.index>.)
-
-=back
-
-. index_type CLASS
-
-. keep_dups BOOLEAN
-
-. keep_index BOOLEAN
-
-=over 4
-
-Keep an index file of the specified mailbox, one file per directory.
-Using an index file will speed up things considerably, because it avoids
-reading all the message files the moment that you open the folder. When
-you open a folder, you can use the index file to retrieve information such
-as the subject of each message, instead of having to read possibly
-thousands of messages.
-
-=back
-
-. labels OBJECT
-
-=over 4
-
-You may specify an OBJECT of a type which extends L<Mail::Box::MH::Labels|Mail::Box::MH::Labels>
-(at least implements the C<get()> method), as alternative for labels file
-reader as created by C<Mail::Box::MH>.
-
-=back
-
-. labels_filename FILENAME
-
-=over 4
-
-In MH-folders, messages can be labeled, for instance based on the
-sender or whether it is read or not. This status is kept in a
-file which is usually called C<.mh_sequences>, but that name can
-be overruled with this flag.
-
-=back
-
-. labels_type CLASS
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::MH-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-Append a message to a folder which is not open.
-
- Option Defined in Default
- folder L<Mail::Box> <required>
- message L<Mail::Box> undef
- messages L<Mail::Box> undef
- share L<Mail::Box> <false>
-
-. folder FOLDERNAME
-
-. message MESSAGE
-
-. messages ARRAY-OF-MESSAGES
-
-. share BOOLEAN
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<directory>
-
-=over 4
-
-See L<Mail::Box::Dir/"The folder">
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::MH-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::MH-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::MH-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-Mail::Box::MH-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- folderdir L<Mail::Box> undef
-
-. folderdir DIRECTORY
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<folderToDirectory>(FOLDERNAME, FOLDERDIR)
-
-=over 4
-
-See L<Mail::Box::Dir/"Internals">
-
-=back
-
-Mail::Box::MH-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<highestMessageNumber>
-
-=over 4
-
-Returns the highest number which is used in the folder to store a file.
-This method may be called when the folder is read (then this number can
-be derived without file-system access), but also when the folder is not
-read (yet).
-
-=back
-
-$obj-E<gt>B<index>
-
-=over 4
-
-Create a index reader/writer object.
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-Create a label reader/writer object.
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessageFilenames>(DIRECTORY)
-
-=over 4
-
-See L<Mail::Box::Dir/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- messages L<Mail::Box> <required>
- renumber <true>
-
-. messages ARRAY
-
-. renumber BOOLEAN
-
-=over 4
-
-Permit renumbering of message. By default this is true, but for some
-unknown reason, you may be thinking that messages should not be renumbered.
-
-=back
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::MH-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::MH-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::MH-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::MH-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot append message without lock on $folder.
-
-It is impossible to append one or more messages to the folder which is
-not opened, because locking it failes. The folder may be in use by
-an other application, or you may need to specify some lock related
-options (see L<new()|Mail::Box::MH/"METHODS">).
-
-I<Error:> Cannot create MH folder $name: $!
-
-For some reason, it is impossible to create the folder. Check the permissions
-and the name of the folder. Does the path to the directory to be created
-exist?
-
-I<Error:> Cannot write folder $name without lock.
-
-It is impossible to get a lock on the folder, which means that the changes
-can not be made. You may need to tune the lock related options which
-are available at folder creation.
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> Folder $name is opened read-only
-
-You can not write to this folder unless you have opened the folder to
-write or append with L<new(access)|Mail::Box/"Constructors">, or the C<force> option is set true.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Unable to write message for $folder to $filename: $!
-
-The new message could not be written to its new file, for the specific
-reason.
-
-I<Error:> Writing folder $name failed
-
-For some reason (you probably got more error messages about this problem)
-it is impossible to write the folder, although you should because there
-were changes made.
-
-
-=head1 DETAILS
-
-
-=head2 How MH folders work
-
-MH-type folders use a directory to store the messages of one folder. Each
-message is stored in a separate file. This seems useful, because changes
-in a folder change only a few of these small files, in contrast with
-file-based folders where changes in a folder cause rewrites of huge
-folder files.
-
-However, MH-based folders perform very bad if you need header information
-of all messages. For instance, if you want to have full knowledge about
-all message-threads (see L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager>) in the folder, it
-requires to read all header lines in all message files. And usually, reading
-your messages in threads is desired.
-
-So, each message is written in a separate file. The filenames are
-numbers, which count from C<1>. Next to these message files, a
-directory may contain a file named C<.mh_sequences>, storing labels which
-relate to the messages. Furthermore, a folder-directory may contain
-sub-directories, which are seen as sub-folders.
-
-=head2 This implementation
-
-This implementation supports the C<.mh-sequences> file and sub-folders.
-Next to this, considerable effort it made to avoid reading each message-file.
-This should boost performance of the MailBox distribution over other
-Perl-modules which are able to read folders.
-
-Folder types which store their messages each in one file, together in
-one directory, are bad for performance. Consider that you want to know
-the subjects of all messages, while browser through a folder with your
-mail-reading client. This would cause all message-files to be read.
-
-L<Mail::Box::MH|Mail::Box::MH> has two ways to try improve performance. You can use
-an index-file, and use on delay-loading. The combination performs even
-better. Both are explained in the next sections.
-
-=head2 An index-file
-
-If you specify L<new(keep_index)|Mail::Box::MH/"METHODS">, then all header-lines of all messages
-from the folder which have been read once, will also be written into
-one dedicated index-file (one file per folder). The default filename
-is C<.index>
-
-However, index-files are not supported by any other reader which supports
-MH (as far as I know). If you read the folders with such I client, it
-will not cause unrecoverable conflicts with this index-file, but at most
-be bad for performance.
-
-If you do not (want to) use an index-file, then delay-loading may
-save your day.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/MH.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/MH.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,121 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::Maildir::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Dir::Message';
-
-use File::Copy;
-
-
-sub filename(;$)
-{ my $self = shift;
- my $oldname = $self->SUPER::filename();
- return $oldname unless @_;
-
- my $newname = shift;
- return $newname if defined $oldname && $oldname eq $newname;
-
- my ($id, $semantics, $flags)
- = $newname =~ m!(.*?)(?:\:([12])\,([A-Z]*))!
- ? ($1, $2, $3)
- : ($newname, '','');
-
- my %flags;
- $flags{$_}++ foreach split //, $flags;
-
- $self->SUPER::label
- ( draft => ($flags{D} || 0)
- , flagged => ($flags{F} || 0)
- , replied => ($flags{R} || 0)
- , seen => ($flags{S} || 0)
- , deleted => ($flags{T} || 0)
-
- , passed => ($flags{P} || 0) # uncommon
- );
-
- if(defined $oldname && ! move $oldname, $newname)
- { $self->log(ERROR => "Cannot move $oldname to $newname: $!");
- return undef;
- }
-
- $self->SUPER::filename($newname);
-}
-
-#-------------------------------------------
-
-
-sub guessTimestamp()
-{ my $self = shift;
- my $timestamp = $self->SUPER::guessTimestamp;
- return $timestamp if defined $timestamp;
-
- $self->filename =~ m/^(\d+)/ ? $1 : undef;
-}
-
-#-------------------------------------------
-
-
-sub label(@)
-{ my $self = shift;
- return $self->SUPER::label unless @_;
-
- my $return = $self->SUPER::label(@_);
- $self->labelsToFilename;
- $return;
-}
-
-#-------------------------------------------
-
-
-sub labelsToFilename()
-{ my $self = shift;
- my $labels = $self->labels;
- my $old = $self->filename;
-
- my ($folderdir, $set, $oldname)
- = $old =~ m!(.*)/(new|cur|tmp)/([^:]*)(\:[^:]*)?$!;
-
- my $newflags # alphabeticly ordered!
- = ($labels->{draft} ? 'D' : '')
- . ($labels->{flagged} ? 'F' : '')
- . ($labels->{passed} ? 'P' : '')
- . ($labels->{replied} ? 'R' : '')
- . ($labels->{seen} ? 'S' : '')
- . ($labels->{deleted} ? 'T' : '');
-
- my $newset = $labels->{accepted} ? 'cur' : 'new';
- if($set ne $newset)
- { my $folder = $self->folder;
- $folder->modified(1) if defined $folder;
- }
-
- my $new = File::Spec->catfile($folderdir, $newset, "$oldname:2,$newflags");
-
- if($new ne $old)
- { unless(move $old, $new)
- { $self->log(ERROR => "Cannot rename $old to $new: $!");
- return;
- }
- $self->log(PROGRESS => "Moved $old to $new.");
- $self->SUPER::filename($new);
- }
-
- $new;
-}
-
-#-------------------------------------------
-
-
-sub accept(;$)
-{ my $self = shift;
- my $accept = @_ ? shift : 1;
- $self->label(accepted => $accept);
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1037 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Maildir::Message - one message in a Maildir folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::Maildir::Message
- is a Mail::Box::Dir::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::Maildir ...
- my $message = $folder->message(10);
-
-
-=head1 DESCRIPTION
-
-A C<Mail::Box::Maildir::Message> represents one message in an
-L<Mail::Box::Maildir|Mail::Box::Maildir> folder. Each message is stored in a separate file.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::Maildir::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"METHODS">
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::Maildir::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::Maildir::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::Maildir::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::Maildir::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<filename>([FILENAME])
-
-=over 4
-
-Returns the current filename for this message. If the FILENAME argument
-is specified, a new filename will be set. For maildir messages this
-means that modifications are immediately performed: there will be
-a rename (move) from the old name to the new name. Labels may change
-within in the message object as well.
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-The filename of a C<Mail::Box::Maildir::Message> contains a timestamp. This
-is a wild guess about the actual time of sending of the message: it is the
-time of receipt which may be seconds to hours off. But is still a good
-guess... When the message header is not parsed, then this date is used.
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Labels
-
-
-$obj-E<gt>B<labelsToFilename>
-
-=over 4
-
-When the labels on a message change, this may implicate a change in
-the message's filename. The change will take place immediately. The
-new filename (which may be the same as the old filename) is returned.
-C<undef> is returned when the rename is required but fails.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<accept>([BOOLEAN])
-
-=over 4
-
-Accept a message for the folder. This will move it from the C<new>
-or C<tmp> sub-directories into the C<cur> sub-directory (or back when
-the BOOLEAN is C<false>). When you accept an already accepted message,
-nothing will happen.
-
-=back
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::Maildir::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FILENAME)
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadHead>
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<parser>
-
-=over 4
-
-See L<Mail::Box::Dir::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Maildir::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Maildir::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Maildir::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::Maildir::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot create parser for $filename.
-
-For some reason (the previous message have told you already) it was not possible
-to create a message parser for the specified filename.
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> Cannot write message to $filename: $!
-
-When a modified or new message is written to disk, it is first written
-to a temporary file in the folder directory. For some reason, it is
-impossible to create this file.
-
-I<Error:> Failed to move $new to $filename: $!
-
-When a modified or new message is written to disk, it is first written
-to a temporary file in the folder directory. Then, the new file is
-moved to replace the existing file. Apparently, the latter fails.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-For some reason, the header of the message could be read, but the body
-cannot. Probably the file has disappeared or the permissions were
-changed during the progress of the program.
-
-I<Error:> Unable to read delayed head.
-
-Mail::Box tries to be I<lazy> with respect to parsing messages. When a
-directory organized folder is opened, only the filenames of messages are
-collected. At first use, the messages are read from their file. Apperently,
-a message is used for the first time here, but has disappeared or is
-unreadible for some other reason.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-=head2 Labels
-
-
-=head3 Flags in filename
-
-When new messages arrive on system and have to be stored in a maildir folder,
-they are put in the C<new> sub-directory of the folder (first created in
-the C<tmp> sub-directory and then immediately moved to C<new>).
-The following information was found at L<http://cr.yp.to/proto/maildir.html>.
-
-Each message is written in a separate file. The filename is
-constructed from the time-of-arrival, a hostname, an unique component,
-a syntax marker, and flags. For example C<1014220791.meteor.42:2,DF>.
-The filename must match:
-
- my ($time, $unique, $hostname, $info)
- = $filename =~ m!^(\d+)\.(.*)\.(\w+)(\:.*)?$!;
- my ($semantics, $flags)
- = $info =~ m!([12])\,([DFPRST]*)$!;
- my @flags = split //, $flags;
-
-When an application opens the folder, there may be messages in C<new>
-which are new arival, and messages in C<cur>. The latter are labeled
-C<accepted>. To move a message from C<new> to C<cur>, you have two
-options with the same effect:
-
- $msg->accept;
- $msg->label(accept => 1);
-
-See L<accept()|Mail::Box::Maildir::Message/"Internals">, L<label()|Mail::Message/"Flags">, L<Mail::Box::Maildir::new(accept_new)|Mail::Box::Maildir/"METHODS">,
-and L<Mail::Box::Maildir::acceptMessages()|Mail::Box::Maildir/"Internals">
-
-The messages are moved, and their name is immediately
-extended with flags. An example:
-
- new/897979431.meteor.42 may become
- cur/897979431.meteor.42:2,FS
-
-The added characters C<':2,'> refer to the "second state of processing",
-where the message has been inspected. And the characters (which should
-be in alphabetic order) mean
-
- D => draft
- F => flagged
- R => replied (answered)
- S => seen
- T => deleted (tagged for deletion)
-
-Some maildir clients support
- P => passed (resent/forwarded/bounced to someone else)
-
-The flags will immediately change when L<label()|Mail::Message/"Flags"> or L<delete()|Mail::Message/"Flags"> is used,
-which differs from other message implementations: maildir is stateless,
-and should not break when applications crash.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,404 +0,0 @@
-
-use strict;
-package Mail::Box::Maildir;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Dir';
-
-use Mail::Box::Maildir::Message;
-
-use Carp;
-use File::Copy 'move';
-use File::Basename 'basename';
-use Sys::Hostname 'hostname';
-use File::Remove 'remove';
-
-# Maildir is only supported on UNIX, because the filenames probably
-# do not work on other platforms. Since MailBox 2.052, the use of
-# File::Spec to create filenames has been removed: benchmarks showed
-# that catfile() consumed 20% of the time of a folder open(). And
-# '/' file separators work on Windows too!
-
-
-my $default_folder_dir = exists $ENV{HOME} ? "$ENV{HOME}/.maildir" : '.';
-
-sub init($)
-{ my ($self, $args) = @_;
-
- croak "No locking possible for maildir folders."
- if exists $args->{locker}
- || (defined $args->{lock_type} && $args->{lock_type} ne 'NONE');
-
- $args->{lock_type} = 'NONE';
- $args->{folderdir} ||= $default_folder_dir;
-
- return undef
- unless $self->SUPER::init($args);
-
- $self->acceptMessages if $args->{accept_new};
- $self;
-}
-
-#-------------------------------------------
-
-
-sub create($@)
-{ my ($thingy, $name, %args) = @_;
- my $class = ref $thingy || $thingy;
- my $folderdir = $args{folderdir} || $default_folder_dir;
- my $directory = $class->folderToDirectory($name, $folderdir);
-
- if($class->createDirs($directory))
- { $class->log(PROGRESS => "Created folder Maildir $name.");
- return $class;
- }
- else
- { $class->log(ERROR => "Cannot create Maildir folder $name.");
- return undef;
- }
-}
-
-#-------------------------------------------
-
-sub foundIn($@)
-{ my $class = shift;
- my $name = @_ % 2 ? shift : undef;
- my %args = @_;
- my $folderdir = $args{folderdir} || $default_folder_dir;
- my $directory = $class->folderToDirectory($name, $folderdir);
-
- -d "$directory/cur";
-}
-
-#-------------------------------------------
-
-sub type() {'maildir'}
-
-#-------------------------------------------
-
-sub listSubFolders(@)
-{ my ($class, %args) = @_;
- my $dir;
-
- if(ref $class)
- { $dir = $class->directory;
- $class = ref $class;
- }
- else
- { my $folder = $args{folder} || '=';
- my $folderdir = $args{folderdir} || $default_folder_dir;
- $dir = $class->folderToDirectory($folder, $folderdir);
- }
-
- $args{skip_empty} ||= 0;
- $args{check} ||= 0;
-
- # Read the directories from the directory, to find all folders
- # stored here. Some directories have to be removed because they
- # are created by all kinds of programs, but are no folders.
-
- return () unless -d $dir && opendir DIR, $dir;
-
- my @dirs;
- while(my $d = readdir DIR)
- { next if $d =~ m/^(new|tmp|cur|\.\.?)$/;
-
- my $dir = "$dir/$d";
- push @dirs, $d if -d $dir && -r _;
- }
-
- closedir DIR;
-
- # Skip empty folders.
-
- @dirs = grep {!$class->folderIsEmpty("$dir/$_")} @dirs
- if $args{skip_empty};
-
- # Check if the files we want to return are really folders.
-
- @dirs = map { m/(.*)/ && $1 } @dirs; # untaint
- return @dirs unless $args{check};
-
- grep { $class->foundIn("$dir/$_") } @dirs;
-}
-
-#-------------------------------------------
-
-sub openSubFolder($@)
-{ my ($self, $name) = (shift, shift);
- $self->createDirs($self->nameOfSubFolder($name));
- $self->SUPER::openSubFolder($name, @_);
-}
-
-#-------------------------------------------
-
-sub topFolderWithMessages() { 1 }
-
-#-------------------------------------------
-
-my $uniq = rand 1000;
-
-
-sub coerce($)
-{ my ($self, $message) = (shift, shift);
-
- my $is_native = $message->isa('Mail::Box::Maildir::Message');
- my $coerced = $self->SUPER::coerce($message, @_);
-
- my $basename = $is_native ? basename($message->filename)
- : ($message->timestamp || time) .'.'. hostname .'.'. $uniq++;
-
- my $dir = $self->directory;
- my $tmp = "$dir/tmp/$basename";
- my $new = "$dir/new/$basename";
-
- if($coerced->create($tmp) && $coerced->create($new))
- {$self->log(PROGRESS => "Added Maildir message in $new") }
- else {$self->log(ERROR => "Cannot create Maildir message file $new.") }
-
- $coerced->labelsToFilename unless $is_native;
- $coerced;
-}
-
-#-------------------------------------------
-
-
-sub createDirs($)
-{ my ($thing, $dir) = @_;
-
- $thing->log(ERROR => "Cannot create Maildir folder directory $dir: $!"), return
- unless -d $dir || mkdir $dir;
-
- my $tmp = "$dir/tmp";
- $thing->log(ERROR => "Cannot create Maildir folder subdir $tmp: $!"), return
- unless -d $tmp || mkdir $tmp;
-
- my $new = "$dir/new";
- $thing->log(ERROR => "Cannot create Maildir folder subdir $new: $!"), return
- unless -d $new || mkdir $new;
-
- my $cur = "$dir/cur";
- $thing->log(ERROR => "Cannot create Maildir folder subdir $cur: $!"), return
- unless -d $cur || mkdir $cur;
-
- $thing;
-}
-
-#-------------------------------------------
-
-
-sub folderIsEmpty($)
-{ my ($self, $dir) = @_;
- return 1 unless -d $dir;
-
- foreach (qw/tmp new cur/)
- { my $subdir = "$dir/$_";
- next unless -d $subdir;
-
- opendir DIR, $subdir or return 0;
- my $first = readdir DIR;
- closedir DIR;
-
- return 0 if defined $first;
- }
-
- opendir DIR, $dir or return 1;
- while(my $entry = readdir DIR)
- { next if $entry =~
- m/^(?:tmp|cur|new|bulletin(?:time|lock)|seriallock|\..?)$/;
-
- closedir DIR;
- return 0;
- }
-
- closedir DIR;
- 1;
-}
-
-#-------------------------------------------
-
-sub delete(@)
-{ my $self = shift;
-
- # Subfolders are not nested in the directory structure
- remove \1, $self->directory;
-}
-
-#-------------------------------------------
-
-sub readMessageFilenames
-{ my ($self, $dirname) = @_;
-
- opendir DIR, $dirname or return ();
-
- # unsorted list of untainted filenames.
- my @files = map { /^(\d[\w.:,=\-]+)$/
- && -f "$dirname/$1" ? $1 : () }
- readdir DIR;
- closedir DIR;
-
- # Sort the names. Solve the Y2K (actually the 1 billion seconds
- # since 1970 bug) which hunts Maildir. The timestamp, which is
- # the start of the filename will have some 0's in front, so each
- # timestamp has the same length.
-
- my %unified;
- m/^(\d+)/ and $unified{ ('0' x (9-length($1))).$_ } = $_ foreach @files;
-
- map { "$dirname/$unified{$_}" }
- sort keys %unified;
-}
-
-#-------------------------------------------
-
-sub readMessages(@)
-{ my ($self, %args) = @_;
-
- my $directory = $self->directory;
- return unless -d $directory;
-
- #
- # Read all messages
- #
-
- my $curdir = "$directory/cur";
- my @cur = map { [$_, 1] } $self->readMessageFilenames($curdir);
-
- my $newdir = "$directory/new";
- my @new = map { [$_, 0] } $self->readMessageFilenames($newdir);
- my @log = $self->logSettings;
-
- foreach (@cur, @new)
- { my ($filename, $accepted) = @$_;
- my $message = $args{message_type}->new
- ( head => $args{head_delayed_type}->new(@log)
- , filename => $filename
- , folder => $self
- , fix_header=> $self->{MB_fix_headers}
- , labels => [ accepted => $accepted ]
- );
-
- my $body = $args{body_delayed_type}->new(@log, message => $message);
- $message->storeBody($body) if $body;
- $self->storeMessage($message);
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub acceptMessages($)
-{ my ($self, %args) = @_;
- my @accept = $self->messages('!accepted');
- $_->accept foreach @accept;
- @accept;
-}
-
-#-------------------------------------------
-
-sub writeMessages($)
-{ my ($self, $args) = @_;
-
- # Write each message. Two things complicate life:
- # 1 - we may have a huge folder, which should not be on disk twice
- # 2 - we may have to replace a message, but it is unacceptable
- # to remove the original before we are sure that the new version
- # is on disk.
-
- my $writer = 0;
-
- my $directory = $self->directory;
- my @messages = @{$args->{messages}};
-
- my $tmpdir = "$directory/tmp";
- die "Cannot create directory $tmpdir: $!"
- unless -d $tmpdir || mkdir $tmpdir;
-
- foreach my $message (@messages)
- { next unless $message->isModified;
-
- my $filename = $message->filename;
- my $basename = basename $filename;
-
- my $newtmp = "$directory/tmp/$basename";
- open my $new, '>', $newtmp
- or croak "Cannot create file $newtmp: $!";
-
- $message->write($new);
- close $new;
-
- unlink $filename;
- move $newtmp, $filename
- or warn "Cannot move $newtmp to $filename: $!\n";
- }
-
- # Remove an empty folder. This is done last, because the code before
- # in this method will have cleared the contents of the directory.
-
- if(!@messages && $self->{MB_remove_empty})
- { # If something is still in the directory, this will fail, but I
- # don't mind.
- rmdir "$directory/cur";
- rmdir "$directory/tmp";
- rmdir "$directory/new";
- rmdir $directory;
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub appendMessages(@)
-{ my $class = shift;
- my %args = @_;
-
- my @messages = exists $args{message} ? $args{message}
- : exists $args{messages} ? @{$args{messages}}
- : return ();
-
- my $self = $class->new(@_, access => 'a');
- my $directory= $self->directory;
- return unless -d $directory;
-
- my $tmpdir = "$directory/tmp";
- croak "Cannot create directory $tmpdir: $!", return
- unless -d $tmpdir || mkdir $tmpdir;
-
- my $msgtype = $args{message_type} || 'Mail::Box::Maildir::Message';
-
- foreach my $message (@messages)
- { my $is_native = $message->isa($msgtype);
- my ($basename, $coerced);
-
- if($is_native)
- { $coerced = $message;
- $basename = basename $message->filename;
- }
- else
- { $coerced = $self->SUPER::coerce($message);
- $basename = ($message->timestamp||time).'.'. hostname.'.'.$uniq++;
- }
-
- my $dir = $self->directory;
- my $tmp = "$dir/tmp/$basename";
- my $new = "$dir/new/$basename";
-
- if($coerced->create($tmp) && $coerced->create($new))
- {$self->log(PROGRESS => "Appended Maildir message in $new") }
- else {$self->log(ERROR =>
- "Cannot append Maildir message in $new to folder $self.") }
- }
-
- $self->close;
-
- @messages;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,894 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Maildir - handle Maildir folders
-
-
-=head1 INHERITANCE
-
- Mail::Box::Maildir
- is a Mail::Box::Dir
- is a Mail::Box
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Maildir;
- my $folder = new Mail::Box::Maildir folder => $ENV{MAIL}, ...;
-
-
-=head1 DESCRIPTION
-
-This documentation describes how Maildir mailboxes work, and what you
-can do with the Maildir folder object C<Mail::Box::Maildir>.
-
-Maildir is B<not supported for Windows>, because it create filenames
-which are not accepted by the Windows system.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Maildir-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- accept_new <false>
- access L<Mail::Box> C<'r'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <false>
- directory L<Mail::Box::Dir> <derived from folder name>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C<$ENV{MAIL}>
- folderdir L<Mail::Box> C<$ENV{HOME}/.maildir>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups L<Mail::Box> <false>
- lock_file L<Mail::Box> <not used>
- lock_timeout L<Mail::Box> <not used>
- lock_type L<Mail::Box> C<'NONE'> (constant)
- lock_wait L<Mail::Box> <not used>
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::Message|Mail::Box::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- remove_when_empty L<Mail::Box> <true>
- save_on_exit L<Mail::Box> <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <depends on folder location>
-
-. accept_new BOOLEAN
-
-=over 4
-
-When the folder is open, some messages may be stored in the C<new>
-sub-directory. By default, these messages are immediately moved to
-the C<cur> directory when the folder is opened. Otherwise, you have
-to call L<acceptMessages()|Mail::Box::Maildir/"Internals"> or L<Mail::Box::Maildir::Message::accept()|Mail::Box::Maildir::Message/"Internals">.
-
-=back
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. directory DIRECTORY
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. keep_dups BOOLEAN
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::Maildir-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<directory>
-
-=over 4
-
-See L<Mail::Box::Dir/"The folder">
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::Maildir-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::Maildir-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::Maildir-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<acceptMessages>
-
-=over 4
-
-Accept all messages which are waiting in the C<new> directory to be
-moved to the C<cur> directory. This will not rescan the directory
-for newly arrived messages, because that's a task for L<update()|Mail::Box/"The folder">.
-
-=back
-
-Mail::Box::Maildir-E<gt>B<appendMessage>(OPTIONS)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-Mail::Box::Maildir-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- folderdir L<Mail::Box> undef
-
-. folderdir DIRECTORY
-
-=back
-
-$obj-E<gt>B<createDirs>(FOLDERDIR)
-
-Mail::Box::Maildir-E<gt>B<createDirs>(FOLDERDIR)
-
-=over 4
-
-The FOLDERDIR contains the absolute path of the location where the
-messages are kept. Maildir folders contain a C<tmp>, C<new>, and
-C<cur> sub-directory within that folder directory as well. This
-method will ensure that all directories exist.
-Returns false on failure.
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<folderIsEmpty>(FOLDERDIR)
-
-Mail::Box::Maildir-E<gt>B<folderIsEmpty>(FOLDERDIR)
-
-=over 4
-
-Checks whether the folder whose directory is specified as absolute FOLDERDIR
-is empty or not. A folder is empty when the C<tmp>, C<new>, and C<cur>
-subdirectories are empty and some files which are left there by application
-programs. The maildir spec explicitly states: C<.qmail>, C<bulletintime>,
-C<bulletinlock> and C<seriallock>. If any other files are found, the
-directory is considered not-empty.
-
-=back
-
-$obj-E<gt>B<folderToDirectory>(FOLDERNAME, FOLDERDIR)
-
-=over 4
-
-See L<Mail::Box::Dir/"Internals">
-
-=back
-
-Mail::Box::Maildir-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessageFilenames>(DIRECTORY)
-
-=over 4
-
-See L<Mail::Box::Dir/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::Maildir-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Maildir-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Maildir-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Maildir-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot append Maildir message in $new to folder $self.
-
-The message (or messages) could not be stored in the right directories
-for the Maildir folder.
-
-I<Error:> Cannot create Maildir directory $dir: $!
-
-A Maildir folder is represented by a directory, with some sub-directories. The
-top folder directory could not be created for the reason indicated.
-
-I<Error:> Cannot create Maildir folder $name.
-
-One or more of the directories required to administer a Maildir folder
-could not be created.
-
-I<Error:> Cannot create Maildir message file $new.
-
-A message is converted from some other message format into a Maildir format
-by writing it to a file with a name which contains the status flags of the
-message. Apparently, creating this file failed.
-
-I<Error:> Cannot create Maildir subdir $dir: $!
-
-Each Maildir folder has three sub-directories for administration: C<new>,
-C<tmp>, and C<cur>. The mentioned directory could not be created for
-the indicated reason.
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> Folder $name is opened read-only
-
-You can not write to this folder unless you have opened the folder to
-write or append with L<new(access)|Mail::Box/"Constructors">, or the C<force> option is set true.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Writing folder $name failed
-
-For some reason (you probably got more error messages about this problem)
-it is impossible to write the folder, although you should because there
-were changes made.
-
-
-=head1 DETAILS
-
-The explanation is complicated, but for normal use you should bother
-yourself with all details.
-
-=head2 How MAILDIR folders work
-
-Maildir-type folders use a directory to store the messages of one folder.
-Each message is stored in a separate file. This seems useful, because
-changes in a folder change only a few of these small files, in contrast with
-file-based folders where changes in a folder cause rewrites of huge
-folder-files.
-
-However, Maildir based folders perform very bad if you need header information
-of all messages. For instance, if you want to have full knowledge about
-all message-threads (see L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager>) in the folder, it
-requires to read all header lines in all message files. And usually, reading
-your messages as threads is desired. Maildir maintains a tiny amount
-of info visible in the filename, which may make it perform just a little
-bit faster than MH.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Maildir.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Maildir.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Manage/User.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,203 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::Manage::User;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Manager';
-
-use Mail::Box::Collection ();
-
-#-------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args) or return ();
-
- my $identity = $self->{MBMU_id} = $args->{identity};
- defined $identity or die;
-
- my $top = $args->{folder_id_type} || 'Mail::Box::Identity';
- my $coltype = $args->{collection_type} || 'Mail::Box::Collection';
-
- unless(ref $top)
- { my $name = $args->{topfolder_name};
- $name = '=' unless defined $name; # MailBox's abbrev to top
-
- $top = $top->new
- ( name => $name
- , manager => $self
- , location => scalar($self->folderdir)
- , folder_type => $self->defaultFolderType
- , collection_type => $coltype
- );
- }
-
- $self->{MBMU_topfolder} = $top;
- $self->{MBMU_delim} = $args->{delimiter} || '/';
- $self->{MBMU_inbox} = $args->{inbox};
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub identity() { shift->{MBMU_id} }
-
-#-------------------------------------------
-
-
-sub inbox(;$)
-{ my $self = shift;
- @_ ? ($self->{MBMU_inbox} = shift) : $self->{MBMU_inbox};
-}
-
-#-------------------------------------------
-
-
-# A lot of work still has to be done here: all moves etc must inform
-# the "existence" administration as well.
-
-#-------------------------------------------
-
-
-sub topfolder() { shift->{MBMU_topfolder} }
-
-#-------------------------------------------
-
-
-sub folder($)
-{ my ($self, $name) = @_;
- my $top = $self->topfolder or return ();
- my @path = split $self->{MBMU_delim}, $name;
- return () unless shift @path eq $top->name;
-
- $top->folder(@path);
-}
-
-#-------------------------------------------
-
-
-sub folderCollection($)
-{ my ($self, $name) = @_;
- my $top = $self->topfolder or return ();
-
- my @path = split $self->{MBMU_delim}, $name;
- unless(shift @path eq $top->name)
- { $self->log(ERROR => "Folder name $name not under top.");
- return ();
- }
-
- my $base = pop @path;
-
- ($top->folder(@path), $base);
-}
-
-#-------------------------------------------
-
-
-# This feature is thoroughly tested in the Mail::Box::Netzwert distribution
-
-sub create($@)
-{ my ($self, $name, %args) = @_;
- my ($dir, $base) = $self->folderCollection($name);
-
- unless(defined $dir)
- { unless($args{create_supers})
- { $self->log(ERROR => "Cannot create $name: higher levels missing");
- return undef;
- }
-
- (my $upper = $name) =~ s!$self->{MBMU_delim}$base!!
- or die "$name - $base";
-
- $dir = $self->create($upper, %args, deleted => 1);
- }
-
- my $id = $dir->folder($base);
- if(!defined $id)
- { my $idopt= $args{id_options} || [];
- $id = $dir->addSubfolder($base, @$idopt, deleted => $args{deleted});
- }
- elsif($args{deleted})
- { $id->deleted(1);
- return $id;
- }
- elsif($id->deleted)
- { # Revive! Raise the death!
- $id->deleted(0);
- }
- else
- { # Bumped into existing folder
- $self->log(ERROR => "Folder $name already exists");
- return undef;
- }
-
- if(!defined $args{create_real} || $args{create_real})
- { $self->defaultFolderType->create($id->location, %args)
- or return undef;
- }
-
- $id;
-}
-
-#-------------------------------------------
-
-
-sub delete($)
-{ my ($self, $name) = @_;
- my $id = $self->folder($name) or return ();
- $id->remove;
-
- $self->SUPER::delete($name);
-}
-
-#-------------------------------------------
-
-
-sub rename($$@)
-{ my ($self, $oldname, $newname, %args) = @_;
-
- my $old = $self->folder($oldname);
- unless(defined $old)
- { $self->log(WARNING
- => "Source for rename does not exist: $oldname to $newname");
- return ();
- }
-
- my ($newdir, $base) = $self->folderCollection($newname);
- unless(defined $newdir)
- { unless($args{create_supers})
- { $self->log(ERROR
- => "Cannot rename $oldname to $newname: higher levels missing");
- return ();
- }
-
- (my $upper = $newname) =~ s!$self->{MBMU_delim}$base!!
- or die "$newname - $base";
-
- $newdir = $self->create($upper, %args, deleted => 1);
- }
-
- my $oldlocation = $old->location;
- my $new = $old->rename($newdir, $base);
-
- my $newlocation = $new->location;
- if($oldlocation ne $newlocation)
- { require Carp;
- croak("Physical folder relocation not yet implemented");
-# this needs a $old->rename(xx,yy) which isn't implemented yet
- }
-
- $self->log(PROGRESS => "Renamed folder $oldname to $newname");
- $new;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Manage/User.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Manage/User.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,653 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Manage::User - manage the folders of a user
-
-
-=head1 INHERITANCE
-
- Mail::Box::Manage::User
- is a Mail::Box::Manager
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manage::User;
- use User::Identity;
-
- my $id = User::Identity->new(...);
- my $user = Mail::Box::Manage::User->new
- ( identity => $id
- , folderdir => "$ENV{HOME}/Mail"
- , inbox => $ENV{MAIL}
- );
-
- my $inbox = $user->open($user->inbox);
- my $top = $user->topfolder;
-
-
-=head1 DESCRIPTION
-
-Where the L<Mail::Box::Manager|Mail::Box::Manager> takes care of some set of open folder,
-this extension will add knowledge about some related person. At the
-same time, it will try to cache some information about that person's
-folder files.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Manage::User-E<gt>B<new>(ARGS)
-
-=over 4
-
-Use L<new(default_folder_type)|Mail::Box::Manager/"METHODS"> to explicitly state which kind of folders
-you use.
-
- Option Defined in Default
- autodetect L<Mail::Box::Manager> C<undef>
- collection_type L<Mail::Box::Collection|Mail::Box::Collection>
- default_folder_type L<Mail::Box::Manager> C<'mbox'>
- delimiter "/"
- folder_id_type L<Mail::Box::Identity|Mail::Box::Identity>
- folder_types L<Mail::Box::Manager> <all standard types>
- folderdir L<Mail::Box::Manager> C<[ '.' ]>
- folderdirs L<Mail::Box::Manager> <synonym for C<folderdir>>
- identity <required>
- inbox C<undef>
- log L<Mail::Reporter> C<'WARNINGS'>
- topfolder_name C<'='>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. autodetect TYPE|ARRAY-OF-TYPES
-
-. collection_type CLASS
-
-=over 4
-
-Subfolders grouped together.
-
-=back
-
-. default_folder_type NAME|CLASS
-
-. delimiter STRING
-
-=over 4
-
-The separator used in folder names. This doesn't need to be the
-same as your directory system is using.
-
-=back
-
-. folder_id_type CLASS|OBJECT
-
-. folder_types NEW-TYPE | ARRAY-OF-NEW-TYPES
-
-. folderdir DIRECTORY
-
-. folderdirs [DIRECTORIES]
-
-. identity OBJECT
-
-=over 4
-
-The main difference between the L<Mail::Box::Manager|Mail::Box::Manager> and this class, is
-the concept of some person (or virtual person) who's files are being
-administered by this object. The OBJECT is an L<User::Identity|User::Identity>.
-
-The smallest identity that will do:
-C<< my $id = User::Identity->new('myname') >>
-
-=back
-
-. inbox NAME
-
-=over 4
-
-The name of the user's inbox.
-
-=back
-
-. log LEVEL
-
-. topfolder_name STRING
-
-. trace LEVEL
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<defaultFolderType>
-
-=over 4
-
-See L<Mail::Box::Manager/"Attributes">
-
-=back
-
-$obj-E<gt>B<folderTypes>
-
-=over 4
-
-See L<Mail::Box::Manager/"Attributes">
-
-=back
-
-$obj-E<gt>B<folderdir>
-
-=over 4
-
-See L<Mail::Box::Manager/"Attributes">
-
-=back
-
-$obj-E<gt>B<identity>
-
-=over 4
-
-Returns a L<User::Identity|User::Identity> object.
-
-=back
-
-$obj-E<gt>B<inbox>([NAME])
-
-=over 4
-
-(Set and) get the NAME of the mailbox which is considered the folder
-for incoming mail. In many protocols, this folder is handled seperately.
-For instance in IMAP this is the only case-insensitive folder name.
-
-=back
-
-$obj-E<gt>B<registerType>(TYPE, CLASS [,OPTIONS])
-
-=over 4
-
-See L<Mail::Box::Manager/"Attributes">
-
-=back
-
-=head2 Manage open folders
-
-
-$obj-E<gt>B<close>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Manager/"Manage open folders">
-
-=back
-
-$obj-E<gt>B<closeAllFolders>(, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Manager/"Manage open folders">
-
-=back
-
-$obj-E<gt>B<isOpenFolder>(FOLDER)
-
-=over 4
-
-See L<Mail::Box::Manager/"Manage open folders">
-
-=back
-
-$obj-E<gt>B<open>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Manager/"Manage open folders">
-
-=back
-
-$obj-E<gt>B<openFolders>
-
-=over 4
-
-See L<Mail::Box::Manager/"Manage open folders">
-
-=back
-
-=head2 Manage existing folders
-
-
-$obj-E<gt>B<create>(NAME, OPTIONS)
-
-=over 4
-
-Creates a new folder with the specified name. An folder's administrative
-structure (L<Mail::Box::Identity|Mail::Box::Identity>) is returned, but the folder is not
-opened.
-
-In the accidental case that the folder already
-exists, a warning will be issued, and an empty list/undef returned.
-
-The OPTIONS are passed to L<Mail::Box::create()|Mail::Box/"Internals"> of your default folder
-type, except for the options intended for this method itself.
-
- Option Defined in Default
- create_real <true>
- create_supers <false>
- deleted <false>
- id_options []
-
-. create_real BOOLEAN
-
-=over 4
-
-When this option is false, the pysical folder will not be created, but
-only the administration is updated.
-
-=back
-
-. create_supers BOOLEAN
-
-=over 4
-
-When you create a folder where upper hierarchy level are missing, they
-will be created as well.
-
-=back
-
-. deleted BOOLEAN
-
-=over 4
-
-The folder starts as deleted.
-
-=back
-
-. id_options ARRAY
-
-=over 4
-
-Values passed to the instantiated L<Mail::Box::Identity|Mail::Box::Identity>. That object
-is very picky about the initiation values it accepts.
-
-=back
-
-=back
-
-$obj-E<gt>B<delete>(NAME)
-
-=over 4
-
-Remove all signs from the folder on the file-system. Messages still in
-the folder will be removed. This method returns a true value when the
-folder has been removed or not found, so "false" means failure.
-
-It is also possible to delete a folder using C<< $folder->delete >>,
-which will call this method here. OPTIONS, which are used for some
-other folder types, will be ignored here: the user's index contains the
-required details.
-
- Option Defined in Default
- recursive L<Mail::Box::Manager> <folder's default>
-
-. recursive BOOLEAN
-
-I<Example:> how to delete a folder
-
-
- print "no xyz (anymore)\n" if $user->delete('xyz');
-
-=back
-
-$obj-E<gt>B<folder>(NAME)
-
-=over 4
-
-Returns the folder description, a L<Mail::Box::Identity|Mail::Box::Identity>.
-
-=back
-
-$obj-E<gt>B<folderCollection>(NAME)
-
-=over 4
-
-Returns a pair: the folder collection (L<Mail::Box::Collection|Mail::Box::Collection>) and
-the base name of NAME.
-
-=back
-
-$obj-E<gt>B<rename>(OLDNAME, NEWNAME, OPTIONS)
-
-=over 4
-
-Rename the folder with name OLDNAME to NEWNAME. Both names are full
-pathnames.
-
- Option Defined in Default
- create_supers <false>
-
-. create_supers BOOLEAN
-
-=over 4
-
-When you rename a folder to a place where upper hierarchy levels are
-missing, they will get be defined, but with the deleted flag set.
-
-=back
-
-=back
-
-$obj-E<gt>B<topfolder>
-
-=over 4
-
-Returns the top folder of the user's mailbox storage.
-
-=back
-
-=head2 Move messages to folders
-
-
-$obj-E<gt>B<appendMessage>([FOLDER|FOLDERNAME,] MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Manager/"Move messages to folders">
-
-=back
-
-$obj-E<gt>B<copyMessage>([FOLDER|FOLDERNAME,] MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Manager/"Move messages to folders">
-
-=back
-
-$obj-E<gt>B<moveMessage>([FOLDER|FOLDERNAME,] MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Manager/"Move messages to folders">
-
-=back
-
-=head2 Manage message threads
-
-
-$obj-E<gt>B<threads>([FOLDERS], OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Manager/"Manage message threads">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<decodeFolderURL>(URL)
-
-=over 4
-
-See L<Mail::Box::Manager/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(FOLDER, MESSAGES)
-
-=over 4
-
-See L<Mail::Box::Manager/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(FOLDER, MESSAGES)
-
-=over 4
-
-See L<Mail::Box::Manager/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Manage::User-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Manage::User-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Manage::User-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot create $name: higher levels missing
-
-Unless you set L<create(create_supers)|Mail::Box::Manage::User/"Manage existing folders">, all higher level folders must
-exist before this new one can be created.
-
-I<Error:> Cannot rename $name to $new: higher levels missing
-
-Unless you set L<create(create_supers)|Mail::Box::Manage::User/"Manage existing folders">, all higher level folders must
-exist before this new one can be created.
-
-I<Error:> Folder $name is already open.
-
-You cannot ask the manager for a folder which is already open. In some
-older releases (before MailBox 2.049), this was permitted, but then
-behaviour changed, because many nasty side-effects are to be expected.
-For instance, an L<Mail::Box::update()|Mail::Box/"The folder"> on one folder handle would
-influence the second, probably unexpectedly.
-
-I<Error:> Folder $name is not a Mail::Box; cannot add a message.
-
-The folder where the message should be appended to is an object which is
-not a folder type which extends L<Mail::Box|Mail::Box>. Probably, it is not a folder
-at all.
-
-I<Warning:> Folder does not exist, failed opening $type folder $name.
-
-The folder does not exist and creating is not permitted (see
-L<open(create)|Mail::Box::Manager/"Manage open folders">) or did not succeed. When you do not have sufficient
-access rights to the folder (for instance wrong password for POP3),
-this warning will be produced as well.
-
-The manager tried to open a folder of the specified type. It may help
-to explicitly state the type of your folder with the C<type> option.
-There will probably be another warning or error message which is related
-to this report and provides more details about its cause. You may also
-have a look at L<new(autodetect)|Mail::Box::Manager/"METHODS"> and L<new(folder_types)|Mail::Box::Manager/"METHODS">.
-
-I<Warning:> Folder type $type is unknown, using autodetect.
-
-The specified folder type (see L<open(type)|Mail::Box::Manager/"Manage open folders">, possibly derived from
-the folder name when specified as url) is not known to the manager.
-This may mean that you forgot to require the L<Mail::Box|Mail::Box> extension
-which implements this folder type, but probably it is a typo. Usually,
-the manager is able to figure-out which type to use by itself.
-
-I<Error:> Illegal folder URL '$url'.
-
-The folder name was specified as URL, but not according to the syntax.
-See L<decodeFolderURL()|Mail::Box::Manager/"Internals"> for an description of the syntax.
-
-I<Error:> No foldername specified to open.
-
-C<open()> needs a folder name as first argument (before the list of options),
-or with the C<folder> option within the list. If no name was found, the
-MAIL environment variable is checked. When even that does not result in
-a usable folder, then this error is produced. The error may be caused by
-an accidental odd-length option list.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to remove folder $dir
-
-
-I<Error:> Use appendMessage() to add messages which are not in a folder.
-
-You do not need to copy this message into the folder, because you do
-not share the message between folders.
-
-I<Warning:> Use moveMessage() or copyMessage() to move between open folders.
-
-The message is already part of a folder, and now it should be appended
-to a different folder. You need to decide between copy or move, which
-both will clone the message (not the body, because they are immutable).
-
-I<Warning:> Will never create a folder $name without having write access.
-
-You have set L<open(create)|Mail::Box::Manager/"Manage open folders">, but only want to read the folder. Create is
-only useful for folders which have write or append access modes
-(see L<Mail::Box::new(access)|Mail::Box/"Constructors">).
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manage/User.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Manage/User.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Manager.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,562 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Box::Manager;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Mail::Box;
-
-use List::Util 'first';
-use Scalar::Util 'weaken';
-
-# failed compilation will not complain a second time
-# so we need to keep track.
-my %require_failed;
-
-#-------------------------------------------
-
-
-my @basic_folder_types =
- ( [ mbox => 'Mail::Box::Mbox' ]
- , [ mh => 'Mail::Box::MH' ]
- , [ maildir => 'Mail::Box::Maildir' ]
- , [ pop => 'Mail::Box::POP3' ]
- , [ pop3 => 'Mail::Box::POP3' ]
- , [ imap => 'Mail::Box::IMAP4' ]
- , [ imap4 => 'Mail::Box::IMAP4' ]
- );
-
-my @managers; # usually only one, but there may be more around :(
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- # Register all folder-types. There may be some added later.
-
- my @new_types;
- if(exists $args->{folder_types})
- { @new_types = ref $args->{folder_types}[0]
- ? @{$args->{folder_types}}
- : $args->{folder_types};
- }
-
- my @basic_types = reverse @basic_folder_types;
- if(my $basic = $args->{autodetect})
- { my %types = map { ( $_ => 1) } (ref $basic ? @$basic : ($basic));
- @basic_types = grep { $types{$_->[0]} } @basic_types;
- }
-
- $self->{MBM_folder_types} = [];
- $self->registerType(@$_) foreach @new_types, @basic_types;
-
- $self->{MBM_default_type} = $args->{default_folder_type} || 'mbox';
-
- # Inventory on existing folder-directories.
- $self->{MBM_folderdirs} = [ ];
- if(exists $args->{folderdir})
- { my @dirs = $args->{folderdir};
- @dirs = @{$dirs[0]} if ref $dirs[0];
- push @{$self->{MBM_folderdirs}}, @dirs;
- }
-
- if(exists $args->{folderdirs})
- { my @dirs = $args->{folderdirs};
- @dirs = @{$dirs[0]} if ref $dirs[0];
- push @{$self->{MBM_folderdirs}}, @dirs;
- }
- push @{$self->{MBM_folderdirs}}, '.';
-
- $self->{MBM_folders} = [];
- $self->{MBM_threads} = [];
-
- push @managers, $self;
- weaken $managers[-1];
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub registerType($$@)
-{ my ($self, $name, $class, @options) = @_;
- unshift @{$self->{MBM_folder_types}}, [$name, $class, @options];
- $self;
-}
-
-#-------------------------------------------
-
-
-sub folderdir()
-{ my $dirs = shift->{MBM_folderdirs} or return ();
- wantarray ? @$dirs : $dirs->[0];
-}
-
-#-------------------------------------------
-
-
-sub folderTypes()
-{ my $self = shift;
- my %uniq;
- $uniq{$_->[0]}++ foreach @{$self->{MBM_folder_types}};
- sort keys %uniq;
-}
-
-#-------------------------------------------
-
-
-sub defaultFolderType()
-{ my $self = shift;
- my $name = $self->{MBM_default_type};
- return $name if $name =~ m/\:\:/; # obviously a class name
-
- foreach my $def (@{$self->{MBM_folder_types}})
- { return $def->[1] if $def->[0] eq $name || $def->[1] eq $name;
- }
-
- undef;
-}
-
-#-------------------------------------------
-
-
-sub open(@)
-{ my $self = shift;
- my $name = @_ % 2 ? shift : undef;
- my %args = @_;
- $args{authentication} ||= 'AUTO';
-
- $name = defined $args{folder} ? $args{folder} : ($ENV{MAIL} || '')
- unless defined $name;
-
- if($name =~ m/^(\w+)\:/ && grep { $_ eq $1 } $self->folderTypes)
- { # Complicated folder URL
- my %decoded = $self->decodeFolderURL($name);
- if(keys %decoded)
- { # accept decoded info
- @args{keys %decoded} = values %decoded;
- }
- else
- { $self->log(ERROR => "Illegal folder URL '$name'.");
- return;
- }
- }
- else
- { # Simple folder name
- $args{folder} = $name;
- }
-
- my $type = $args{type};
- if(defined $type && $type eq 'pop3')
- { my $un = $args{username} ||= $ENV{USER} || $ENV{LOGIN};
- my $srv = $args{server_name} ||= 'localhost';
- my $port = $args{server_port} ||= 110;
- $args{folder} = $name = "pop3://$un\@$srv:$port";
- }
-
- unless(defined $name && length $name)
- { $self->log(ERROR => "No foldername specified to open.");
- return undef;
- }
-
- $args{folderdir} ||= $self->{MBM_folderdirs}->[0]
- if $self->{MBM_folderdirs};
-
- $args{access} ||= 'r';
-
- if($args{create} && $args{access} !~ m/w|a/)
- { $self->log(WARNING
- => "Will never create a folder $name without having write access.");
- undef $args{create};
- }
-
- # Do not open twice.
- if(my $folder = $self->isOpenFolder($name))
- { $self->log(ERROR => "Folder $name is already open.");
- return undef;
- }
-
- #
- # Which folder type do we need?
- #
-
- my ($folder_type, $class, @defaults);
- if($type)
- { # User-specified foldertype prevails.
- foreach (@{$self->{MBM_folder_types}})
- { (my $abbrev, $class, @defaults) = @$_;
-
- if($type eq $abbrev || $type eq $class)
- { $folder_type = $abbrev;
- last;
- }
- }
-
- $self->log(ERROR => "Folder type $type is unknown, using autodetect.")
- unless $folder_type;
- }
-
- unless($folder_type)
- { # Try to autodetect foldertype.
- foreach (@{$self->{MBM_folder_types}})
- { next unless $_;
- (my $abbrev, $class, @defaults) = @$_;
- next if $require_failed{$class};
-
- eval "require $class";
- if($@)
- { $require_failed{$class}++;
- next;
- }
-
- if($class->foundIn($name, @defaults, %args))
- { $folder_type = $abbrev;
- last;
- }
- }
- }
-
- unless($folder_type)
- { # Use specified default
- if(my $type = $self->{MBM_default_type})
- { foreach (@{$self->{MBM_folder_types}})
- { (my $abbrev, $class, @defaults) = @$_;
- if($type eq $abbrev || $type eq $class)
- { $folder_type = $abbrev;
- last;
- }
- }
- }
- }
-
- unless($folder_type)
- { # use first type (last defined)
- ($folder_type, $class, @defaults) = @{$self->{MBM_folder_types}[0]};
- }
-
- #
- # Try to open the folder
- #
-
- return if $require_failed{$class};
- eval "require $class";
- if($@)
- { $self->log(ERROR => "Failed for folder default $class: $@");
- $require_failed{$class}++;
- return ();
- }
-
- push @defaults, manager => $self;
- my $folder = $class->new(@defaults, %args);
- unless(defined $folder)
- { $self->log(WARNING =>
- "Folder does not exist, failed opening $folder_type folder $name.")
- unless $args{access} eq 'd';
- return;
- }
-
- $self->log(PROGRESS => "Opened folder $name ($folder_type).");
- push @{$self->{MBM_folders}}, $folder;
- $folder;
-}
-
-#-------------------------------------------
-
-
-sub openFolders() { @{shift->{MBM_folders}} }
-
-#-------------------------------------------
-
-
-sub isOpenFolder($)
-{ my ($self, $name) = @_;
- first {$name eq $_->name} $self->openFolders;
-}
-
-#-------------------------------------------
-
-
-sub close($@)
-{ my ($self, $folder, %options) = @_;
- return unless $folder;
-
- my $name = $folder->name;
- my @remaining = grep {$name ne $_->name} @{$self->{MBM_folders}};
-
- # folder opening failed:
- return if @{$self->{MBM_folders}} == @remaining;
-
- $self->{MBM_folders} = [ @remaining ];
- $_->removeFolder($folder) foreach @{$self->{MBM_threads}};
-
- $folder->close(close_by_manager => 1, %options)
- unless $options{close_by_self};
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub closeAllFolders(@)
-{ my ($self, @options) = @_;
- $_->close(@options) foreach $self->openFolders;
- $self;
-}
-
-END {map {defined $_ && $_->closeAllFolders} @managers}
-
-#-------------------------------------------
-
-
-sub delete($@)
-{ my ($self, $name, %args) = @_;
- my $recurse = delete $args{recursive};
-
- my $folder = $self->open(folder => $name, access => 'd', %args)
- or return $self; # still successful
-
- $folder->delete(recursive => $recurse);
-}
-
-#-------------------------------------------
-
-
-sub appendMessage(@)
-{ my $self = shift;
- my @appended = $self->appendMessages(@_);
- wantarray ? @appended : $appended[0];
-}
-
-sub appendMessages(@)
-{ my $self = shift;
- my $folder;
- $folder = shift if !ref $_[0] || $_[0]->isa('Mail::Box');
-
- my @messages;
- push @messages, shift while @_ && ref $_[0];
-
- my %options = @_;
- $folder ||= $options{folder};
-
- # Try to resolve filenames into opened-files.
- $folder = $self->isOpenFolder($folder) || $folder
- unless ref $folder;
-
- if(ref $folder)
- { # An open file.
- unless($folder->isa('Mail::Box'))
- { $self->log(ERROR =>
- "Folder $folder is not a Mail::Box; cannot add a message.\n");
- return ();
- }
-
- foreach (@messages)
- { next unless $_->isa('Mail::Box::Message') && $_->folder;
- $self->log(WARNING =>
- "Use moveMessage() or copyMessage() to move between open folders.");
- }
-
- return $folder->addMessages(@messages);
- }
-
- # Not an open file.
- # Try to autodetect the folder-type and then add the message.
-
- my ($name, $class, @gen_options, $found);
-
- foreach (@{$self->{MBM_folder_types}})
- { ($name, $class, @gen_options) = @$_;
- next if $require_failed{$class};
- eval "require $class";
- if($@)
- { $require_failed{$class}++;
- next;
- }
-
- if($class->foundIn($folder, @gen_options, access => 'a'))
- { $found++;
- last;
- }
- }
-
- # The folder was not found at all, so we take the default folder-type.
- my $type = $self->{MBM_default_type};
- if(!$found && $type)
- { foreach (@{$self->{MBM_folder_types}})
- { ($name, $class, @gen_options) = @$_;
- if($type eq $name || $type eq $class)
- { $found++;
- last;
- }
- }
- }
-
- # Even the default foldertype was not found (or nor defined).
- ($name, $class, @gen_options) = @{$self->{MBM_folder_types}[0]}
- unless $found;
-
- $class->appendMessages
- ( type => $name
- , messages => \@messages
- , @gen_options
- , %options
- , folder => $folder
- );
-}
-
-#-------------------------------------------
-
-
-sub copyMessage(@)
-{ my $self = shift;
- my $folder;
- $folder = shift if !ref $_[0] || $_[0]->isa('Mail::Box');
-
- my @messages;
- while(@_ && ref $_[0])
- { my $message = shift;
- $self->log(ERROR =>
- "Use appendMessage() to add messages which are not in a folder.")
- unless $message->isa('Mail::Box::Message');
- push @messages, $message;
- }
-
- my %args = @_;
- $folder ||= $args{folder};
- my $share = exists $args{share} ? $args{share} : $args{_delete};
-
- # Try to resolve filenames into opened-files.
- $folder = $self->isOpenFolder($folder) || $folder
- unless ref $folder;
-
- my @coerced
- = ref $folder
- ? map {$_->copyTo($folder, share => $args{share})} @messages
- : $self->appendMessages(@messages, %args, folder => $folder);
-
- # hidden option, do not use it: it's designed to optimize moveMessage
- if($args{_delete})
- { $_->label(deleted => 1) foreach @messages;
- }
-
- @coerced;
-}
-
-#-------------------------------------------
-
-
-sub moveMessage(@)
-{ my $self = shift;
- $self->copyMessage(@_, _delete => 1);
-}
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-
-sub threads(@)
-{ my $self = shift;
- my @folders;
- push @folders, shift
- while @_ && ref $_[0] && $_[0]->isa('Mail::Box');
- my %args = @_;
-
- my $base = 'Mail::Box::Thread::Manager';
- my $type = $args{threader_type} || $base;
-
- my $folders = delete $args{folder} || delete $args{folders};
- push @folders
- , ( !$folders ? ()
- : ref $folders eq 'ARRAY' ? @$folders
- : $folders
- );
-
- $self->log(INTERNAL => "No folders specified.")
- unless @folders;
-
- my $threads;
- if(ref $type)
- { # Already prepared object.
- $self->log(INTERNAL => "You need to pass a $base derived")
- unless $type->isa($base);
- $threads = $type;
- }
- else
- { # Create an object. The code is compiled, which safes us the
- # need to compile Mail::Box::Thread::Manager when no threads are needed.
- eval "require $type";
- $self->log(INTERNAL => "Unusable threader $type: $@") if $@;
-
- $self->log(INTERNAL => "You need to pass a $base derived")
- unless $type->isa($base);
-
- $threads = $type->new(manager => $self, %args);
- }
-
- $threads->includeFolder($_) foreach @folders;
- push @{$self->{MBM_threads}}, $threads;
- $threads;
-}
-
-#-------------------------------------------
-
-
-sub toBeThreaded($@)
-{ my $self = shift;
- $_->toBeThreaded(@_) foreach @{$self->{MBM_threads}};
-}
-
-#-------------------------------------------
-
-
-sub toBeUnthreaded($@)
-{ my $self = shift;
- $_->toBeUnthreaded(@_) foreach @{$self->{MBM_threads}};
-}
-
-#-------------------------------------------
-
-
-sub decodeFolderURL($)
-{ my ($self, $name) = @_;
-
- return unless
- my ($type, $username, $password, $hostname, $port, $path)
- = $name =~ m!^(\w+)\: # protocol
- (?://
- (?:([^:@./]*) # username
- (?:\:([^@/]*))? # password
- \@)?
- ([\w.-]+)? # hostname
- (?:\:(\d+))? # port number
- )?
- (.*) # foldername
- !x;
-
- $username ||= $ENV{USER} || $ENV{LOGNAME};
-
- $password ||= ''; # decode password from url
- $password =~ s/\+/ /g;
- $password =~ s/\%([A-Fa-f0-9]{2})/chr hex $1/ge;
-
- $hostname ||= 'localhost';
-
- $path ||= '=';
-
- ( type => $type, folder => $path
- , username => $username, password => $password
- , server_name => $hostname, server_port => $port
- );
-}
-
-#-------------------------------------------
-
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Manager.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Manager.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,807 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Manager - manage a set of folders
-
-
-=head1 INHERITANCE
-
- Mail::Box::Manager
- is a Mail::Reporter
-
- Mail::Box::Manager is extended by
- Mail::Box::Manage::User
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = new Mail::Box::Manager;
-
- # Create folder objects.
- my $folder = $mgr->open(folder => $ENV{MAIL});
- my $message1 = $folder->message(0);
- $mgr->copyMessage('Draft', $message);
-
- my @messages = $folder->message(0,3);
- $mgr->moveMessage('Outbox', @messages, create => 1 );
- $mgr->close($folder);
-
- # Create thread-detectors (see Mail::Box::Thread::Manager)
- my $t = $mgr->threads($inbox, $outbox);
-
- my $threads = $mgr->threads(folder => $folder);
- foreach my $thread ($threads->all)
- { $thread->print;
- }
-
- $mgr->registerType(mbox => 'Mail::Box::MyType');
-
-
-=head1 DESCRIPTION
-
-The manager keeps track on a set of open folders and a set of message-thread
-supporting objects. You are not obliged to use this object (you can
-directly create a L<Mail::Box::Mbox|Mail::Box::Mbox> if you prefer), but you will create
-more portable and safer code if you do use it.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Manager-E<gt>B<new>(ARGS)
-
-=over 4
-
- Option Defined in Default
- autodetect C<undef>
- default_folder_type C<'mbox'>
- folder_types <all standard types>
- folderdir C<[ '.' ]>
- folderdirs <synonym for C<folderdir>>
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. autodetect TYPE|ARRAY-OF-TYPES
-
-=over 4
-
-Select only a subset of the folder types which are implemented by MailBox
-to be detected automatically. This may improve the auto-detection of
-folder types. Normally, all folder types will be tried when a folder's
-name is incorrect, but this option limits the types which are checked
-and therefore may respond faster.
-
-=back
-
-. default_folder_type NAME|CLASS
-
-=over 4
-
-Specifies the default folder type for newly created folders. If this
-option is not specified, the most recently registered type is used (see
-L<registerType()|Mail::Box::Manager/"Attributes"> and the L<new(folder_types)|Mail::Box::Manager/"METHODS"> option.
-
-=back
-
-. folder_types NEW-TYPE | ARRAY-OF-NEW-TYPES
-
-=over 4
-
-Add one or more new folder types to the list of known types. The order is
-important: when you open a file without specifying its type, the
-manager will start trying the last added list of types, in order.
-
-Each TYPE is specified as an array which contains name, class, and
-defaults for options which overrule the usual defaults. You may specify
-folder-specific defaults as OPTIONS. They override the settings of
-the manager.
-
-=back
-
-. folderdir DIRECTORY
-
-=over 4
-
-The default directory, or directories, where folders are
-located. The C<Mail::Box::Manager> can autodetect the existing folder-types.
-There may be different kinds of folders opened at the same time, and
-messages can be moved between those types, although that may result in
-a loss of information depending on the folder types.
-
-=back
-
-. folderdirs [DIRECTORIES]
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<defaultFolderType>
-
-=over 4
-
-Returns the default folder type, some class name.
-
-=back
-
-$obj-E<gt>B<folderTypes>
-
-=over 4
-
-Returns the list of currently defined folder types.
-
-I<Example:>
-
- print join("\n", $manager->folderTypes), "\n";
-
-=back
-
-$obj-E<gt>B<folderdir>
-
-=over 4
-
-In list context, this returns all folderdirs specified. In SCALAR
-context only the first.
-
-=back
-
-$obj-E<gt>B<registerType>(TYPE, CLASS [,OPTIONS])
-
-=over 4
-
-With C<registerType> you can register one TYPE of folders. The CLASS
-is compiled automatically, so you do not need to C<use> them in your own
-modules. The TYPE is just an arbitrary name.
-
-The added types are prepended to the list of known types, so they are
-checked first when a folder is opened in autodetect mode.
-
-I<Example:>
-
- $manager->registerType(mbox => 'Mail::Box::Mbox',
- save_on_exit => 0, folderdir => '/tmp');
-
-=back
-
-=head2 Manage open folders
-
-
-$obj-E<gt>B<close>(FOLDER, OPTIONS)
-
-=over 4
-
-C<close> removes the specified folder from the list of open folders.
-Indirectly it will update the files on disk if needed (depends on
-the L<Mail::Box::new(save_on_exit)|Mail::Box/"Constructors"> flag for each folder). OPTIONS are
-passed to L<Mail::Box::close()|Mail::Box/"The folder"> of the folder.
-
-The folder's messages will also be withdrawn from the known message threads.
-You may also close the folder directly. The manager will be informed
-about this event and take appropriate actions.
-
- Option Defined in Default
- close_by_self <false>
-
-. close_by_self BOOLEAN
-
-=over 4
-
-Used internally to avoid confusion about how the close was started. Do
-not change this.
-
-=back
-
-I<Example:>
-
- my $inbox = $mgr->open('inbox');
- $mgr->close($inbox);
- $inbox->close; # alternative
-
-=back
-
-$obj-E<gt>B<closeAllFolders>(, OPTIONS)
-
-=over 4
-
-C<closeAllFolders> calls close() for each folder managed by
-this object. It is called just before the program stops (before global
-cleanup).
-
-=back
-
-$obj-E<gt>B<isOpenFolder>(FOLDER)
-
-=over 4
-
-Returns true if the FOLDER is currently open.
-
-I<Example:>
-
- print "Yes\n" if $mgr->isOpenFolder('Inbox');
-
-=back
-
-$obj-E<gt>B<open>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-Open a folder which name is specified as first parameter or with
-the option flag C<folder>. The folder type is autodetected unless
-the C<type> is specified.
-
-C<open> carries options for the manager which are described here, but
-may also have additional options for the folder type. For a
-description of the folder options, see the options to the constructor
-L<Mail::Box::new()|Mail::Box/"Constructors"> for each type of mail box.
-
- Option Defined in Default
- authenticate C<'AUTO'>
- create <false>
- folder C<$ENV{MAIL}>
- folderdir C<'.'>
- type <first, usually C<mbox>>
-
-. authenticate TYPE|ARRAY-OF-TYPES|'AUTO'
-
-=over 4
-
-The TYPE of authentication to be used, or a list of TYPES which the
-client prefers. The server may provide preferences as well, and that
-order will be kept. This option is only supported by a small subset of
-folder types, especially by POP and IMAP.
-
-=back
-
-. create BOOLEAN
-
-=over 4
-
-Create the folder if it does not exist. By default, this is not done.
-The C<type> option specifies which type of folder is created.
-
-=back
-
-. folder NAME|URL
-
-=over 4
-
-Which folder to open, specified by NAME or special URL.
-The URL format is composed as
-
- type://username:password@hostname:port/foldername
-
-Like real URLs, all fields are optional and have smart defaults, as long
-as the string starts with a known folder type. Far
-from all folder types support all these options, but at least they are
-always split-out. Be warned that special characters in the password should
-be properly url-encoded.
-
-When you specify anything which does not match the URL format, it is
-passed directly to the C<new> method of the folder which is opened.
-
-=back
-
-. folderdir DIRECTORY
-
-=over 4
-
-The directory where the folders are usually stored.
-
-=back
-
-. type FOLDERTYPENAME|FOLDERTYPE
-
-=over 4
-
-Specify the type of the folder. If you do not specify this option while
-opening a folder for reading, the manager checks all registered folder
-types in order for the ability to open the folder. If you open a new
-folder for writing, then the default will be the most recently registered
-type. (If you add more than one type at once, the first of the list is
-used.)
-
-=back
-
-I<Example:> opening folders via the manager
-
-
- my $jack = $manager->open(folder => '=jack',
- type => 'mbox');
-
- my $rcvd = $manager->open('myMail',
- type => 'Mail::Box::Mbox', access => 'rw');
-
- my $inbox = $manager->open('Inbox')
- or die "Cannot open Inbox.\n";
-
- my $pop = 'pop3://myself:secret@pop3.server.com:120/x';
- my $send = $manager->open($url);
-
- my $send = $manager->open(folder => '/x',
- type => 'pop3', username => 'myself', password => 'secret'
- server_name => 'pop3.server.com', server_port => '120');
-
-=back
-
-$obj-E<gt>B<openFolders>
-
-=over 4
-
-Returns a list of all open folders.
-
-=back
-
-=head2 Manage existing folders
-
-
-$obj-E<gt>B<delete>(FOLDERNAME, OPTIONS)
-
-=over 4
-
-Remove the named folder. The OPTIONS are the same as those for L<open()|Mail::Box::Manager/"Manage open folders">.
-
-The deletion of a folder can take some time. Dependent on the type of
-folder, the folder must be read first. For some folder-types this will
-be fast.
-
- Option Defined in Default
- recursive <folder's default>
-
-. recursive BOOLEAN
-
-=over 4
-
-Some folder can only be recursively deleted, other have more flexibility.
-
-=back
-
-=back
-
-=head2 Move messages to folders
-
-
-$obj-E<gt>B<appendMessage>([FOLDER|FOLDERNAME,] MESSAGES, OPTIONS)
-
-=over 4
-
-Append one or more messages to a folder (therefore, an C<appendMessages()>
-is defined as well). You may specify a FOLDERNAME or an opened folder
-as the first argument. When the name is that of an open folder, it is
-treated as if the folder-object was specified, and not directly access
-the folder-files. You may also specify the foldername as part of the
-options list.
-
-If a message is added to an already opened folder, it is only added to
-the structure internally in the program. The data will not be written to
-disk until a write of that folder takes place. When the name of an
-unopened folder is given, the folder is opened, the messages stored on
-disk, and then the folder is closed.
-
-A message must be an instance of a L<Mail::Message|Mail::Message>. The actual message
-type does not have to match the folder type--the folder will try to
-resolve the differences with minimal loss of information. The coerced
-messages (how the were actually written) are returned as list.
-
-The OPTIONS is a list of key/values, which are added to (overriding)
-the default options for the detected folder type.
-
-I<Example:>
-
- $mgr->appendMessage('=send', $message, folderdir => '/');
- $mgr->appendMessage($received, $inbox->messages);
-
- my @appended = $mgr->appendMessages($inbox->messages,
- folder => 'Drafts');
- $_->label(seen => 1) foreach @appended;
-
-=back
-
-$obj-E<gt>B<copyMessage>([FOLDER|FOLDERNAME,] MESSAGES, OPTIONS)
-
-=over 4
-
-Copy a message from one folder into another folder. If the destination
-folder is already opened, L<Mail::Box::copyTo()|Mail::Box/"The folder"> is used. Otherwise,
-L<Mail::Box::appendMessages()|Mail::Box/"The folder"> is called.
-
-You need to specify a folder's name or folder object as the first
-argument, or in the options list. The options are the same as those
-which can be specified when opening a folder.
-
- Option Defined in Default
- share <false>
-
-. share BOOLEAN
-
-=over 4
-
-Try to share the physical storage of the messages. The folder types
-may be different, but it all depends on the actual folder where the
-message is copied to. Silently ignored when not possible to share.
-
-=back
-
-I<Example:>
-
- my $drafts = $mgr->open(folder => 'Drafts');
- my $outbox = $mgr->open(folder => 'Outbox');
- $mgr->copyMessage($outbox, $drafts->message(0));
-
- my @messages = $drafts->message(1,2);
- $mgr->copyMessage('=Trash', @messages,
- folderdir => '/tmp', create => 1);
-
- $mgr->copyMessage($drafts->message(1),
- folder => '=Drafts' folderdir => '/tmp',
- create => 1);
-
-=back
-
-$obj-E<gt>B<moveMessage>([FOLDER|FOLDERNAME,] MESSAGES, OPTIONS)
-
-=over 4
-
-Move a message from one folder to another. Be warned that removals from
-a folder only take place when the folder is closed, so the message is only
-flagged to be deleted in the opened source folder.
-
- $mgr->moveMessage($received, $inbox->message(1))
-
-is equivalent to
-
- $mgr->copyMessage($received, $inbox->message(1), share => 1);
- $inbox->message(1)->delete;
-
- Option Defined in Default
- share <true>
-
-. share BOOLEAN
-
-=back
-
-=head2 Manage message threads
-
-
-$obj-E<gt>B<threads>([FOLDERS], OPTIONS)
-
-=over 4
-
-Create a new object which keeps track of message threads. You can
-read about the possible options in L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager>.
-As OPTIONS specify one folder or an array of FOLDERS.
-It is also permitted to specify folders before the options.
-
-I<Example:>
-
- my $t1 = $mgr->threads(folders => [ $inbox, $send ]);
- my $t2 = $mgr->threads($inbox);
- my $t3 = $mgr->threads($inbox, $send);
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<decodeFolderURL>(URL)
-
-=over 4
-
-Try to decompose a folder name which is specified as URL (see open())
-into separate options.
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(FOLDER, MESSAGES)
-
-=over 4
-
-Signal to the manager that all thread managers which are using the
-specified folder must be informed that new messages are
-coming in.
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(FOLDER, MESSAGES)
-
-=over 4
-
-Signal to the manager that all thread managers which are using the
-specified folder must be informed that new messages are
-or going out.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Manager-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Manager-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Manager-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Folder $name is already open.
-
-You cannot ask the manager for a folder which is already open. In some
-older releases (before MailBox 2.049), this was permitted, but then
-behaviour changed, because many nasty side-effects are to be expected.
-For instance, an L<Mail::Box::update()|Mail::Box/"The folder"> on one folder handle would
-influence the second, probably unexpectedly.
-
-I<Error:> Folder $name is not a Mail::Box; cannot add a message.
-
-The folder where the message should be appended to is an object which is
-not a folder type which extends L<Mail::Box|Mail::Box>. Probably, it is not a folder
-at all.
-
-I<Warning:> Folder does not exist, failed opening $type folder $name.
-
-The folder does not exist and creating is not permitted (see
-L<open(create)|Mail::Box::Manager/"Manage open folders">) or did not succeed. When you do not have sufficient
-access rights to the folder (for instance wrong password for POP3),
-this warning will be produced as well.
-
-The manager tried to open a folder of the specified type. It may help
-to explicitly state the type of your folder with the C<type> option.
-There will probably be another warning or error message which is related
-to this report and provides more details about its cause. You may also
-have a look at L<new(autodetect)|Mail::Box::Manager/"METHODS"> and L<new(folder_types)|Mail::Box::Manager/"METHODS">.
-
-I<Warning:> Folder type $type is unknown, using autodetect.
-
-The specified folder type (see L<open(type)|Mail::Box::Manager/"Manage open folders">, possibly derived from
-the folder name when specified as url) is not known to the manager.
-This may mean that you forgot to require the L<Mail::Box|Mail::Box> extension
-which implements this folder type, but probably it is a typo. Usually,
-the manager is able to figure-out which type to use by itself.
-
-I<Error:> Illegal folder URL '$url'.
-
-The folder name was specified as URL, but not according to the syntax.
-See L<decodeFolderURL()|Mail::Box::Manager/"Internals"> for an description of the syntax.
-
-I<Error:> No foldername specified to open.
-
-C<open()> needs a folder name as first argument (before the list of options),
-or with the C<folder> option within the list. If no name was found, the
-MAIL environment variable is checked. When even that does not result in
-a usable folder, then this error is produced. The error may be caused by
-an accidental odd-length option list.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Use appendMessage() to add messages which are not in a folder.
-
-You do not need to copy this message into the folder, because you do
-not share the message between folders.
-
-I<Warning:> Use moveMessage() or copyMessage() to move between open folders.
-
-The message is already part of a folder, and now it should be appended
-to a different folder. You need to decide between copy or move, which
-both will clone the message (not the body, because they are immutable).
-
-I<Warning:> Will never create a folder $name without having write access.
-
-You have set L<open(create)|Mail::Box::Manager/"Manage open folders">, but only want to read the folder. Create is
-only useful for folders which have write or append access modes
-(see L<Mail::Box::new(access)|Mail::Box/"Constructors">).
-
-
-=head1 DETAILS
-
-On many places in the documentation you can read that it is useful to
-have a manager object. There are two of them: the L<Mail::Box::Manager|Mail::Box::Manager>,
-which maintains a set of open folders, and an extension of it: the
-L<Mail::Box::Manage::User|Mail::Box::Manage::User>.
-
-=head2 Managing open folders
-
-It is useful to start your program by creating a folder manager object,
-an L<Mail::Box::Manager|Mail::Box::Manager>. The object takes a few burdons from your neck:
-
-=over 4
-
-=item * autodetect the type of folder which is used.
-
-This means that your application can be fully folder type independent.
-
-=item * autoload the required modules
-
-There are so many modules involved in MailBox, that it is useful to
-have some lazy autoloading of code. The manager knows which modules
-belong to which type of folder.
-
-=item * avoid double openings
-
-Your programming mistakes may cause the same folder to be opened twice.
-The result of that could be very destructive. Therefore, the manager
-keeps track on all open folders and avoids the same folder to be opened
-for the second time.
-
-=item * close folders at clean-up
-
-When the program is ending, the manager will cleanly close all folders
-which are still open. This is required, because the autodestruct
-sequence of Perl works in an unpredicatable order.
-
-=item * message thread detection
-
-MailBox can discover message threads which span multiple folders. Any set
-of open folders may be grouped in a tree of replies on replies on replies.
-When a folder is closed, it will automatically be removed from the threads,
-
-and a new folder can dynamically be added to the structure.
-=back
-
-The manager is really simplifying things, and should therefore be the
-base of all programs. However, it is possible to write useful programs
-without it.
-
-=head2 Managing a user
-
-One step further is the L<Mail::Box::Manage::User|Mail::Box::Manage::User> object (since MailBox
-v2.057), which not only keeps track on open folders, but also collects
-information about not-open folders.
-
-The user class is, as the name says, targeted on managing one single user.
-Where the L<Mail::Box::Manager|Mail::Box::Manager> will open any set of folder files, probably
-from multiple users, the user class want one root folder directory.
-
-In many aspects, the user manager simplifies the task for user-based servers
-and other user-centric applications by setting smart defaults.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Manager.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Manager.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,42 +0,0 @@
-
-use strict;
-package Mail::Box::Mbox::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::File::Message';
-
-
-#-------------------------------------------
-
-sub head(;$$)
-{ my $self = shift;
- return $self->SUPER::head unless @_;
-
- my ($head, $labels) = @_;
- $self->SUPER::head($head, $labels);
-
- $self->statusToLabels if $head && !$head->isDelayed;
- $head;
-}
-
-#-------------------------------------------
-
-sub label(@)
-{ my $self = shift;
- $self->loadHead; # be sure the status fields have been read
- my $return = $self->SUPER::label(@_);
- $return;
-}
-
-#-------------------------------------------
-
-sub labels(@)
-{ my $self = shift;
- $self->loadHead; # be sure the status fields have been read
- $self->SUPER::labels(@_);
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,913 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Mbox::Message - one message in a Mbox folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::Mbox::Message
- is a Mail::Box::File::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::Mbox folder => $ENV{MAIL}, ...;
- my $message = $folder->message(0);
-
-
-=head1 DESCRIPTION
-
-Maintain one message in an L<Mail::Box::Mbox|Mail::Box::Mbox> folder.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::Mbox::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::File::Message/"METHODS">
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::Mbox::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::Mbox::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::Mbox::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::Mbox::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<fromLine>([LINE])
-
-=over 4
-
-See L<Mail::Box::File::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Box::File::Message/"METHODS">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::Mbox::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER)
-
-=over 4
-
-See L<Mail::Box::File::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Mbox::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Mbox::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Mbox::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::Mbox::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,195 +0,0 @@
-
-use strict;
-package Mail::Box::Mbox;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::File';
-
-use Mail::Box::Mbox::Message;
-
-
-our $default_folder_dir = exists $ENV{HOME} ? $ENV{HOME} . '/Mail' : '.';
-our $default_sub_extension = '.d';
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->{MBM_sub_ext} # required during init
- = $args->{subfolder_extension} || $default_sub_extension;
-
- $self->SUPER::init($args);
-}
-
-#-------------------------------------------
-
-
-sub create($@)
-{ my ($thingy, $name, %args) = @_;
- my $class = ref $thingy || $thingy;
- $args{folderdir} ||= $default_folder_dir;
- $args{subfolder_extension} ||= $default_sub_extension;
-
- $class->SUPER::create($name, %args);
-}
-
-#-------------------------------------------
-
-
-sub foundIn($@)
-{ my $class = shift;
- my $name = @_ % 2 ? shift : undef;
- my %args = @_;
- $name ||= $args{folder} or return;
-
- my $folderdir = $args{folderdir} || $default_folder_dir;
- my $extension = $args{subfolder_extension} || $default_sub_extension;
- my $filename = $class->folderToFilename($name, $folderdir, $extension);
-
- if(-d $filename) # fake empty folder, with sub-folders
- { return 1 unless -f File::Spec->catfile($filename, '1') # MH
- || -d File::Spec->catdir($filename, 'cur'); # Maildir
- }
-
- return 0 unless -f $filename;
- return 1 if -z $filename; # empty folder is ok
-
- open my $file, '<', $filename or return 0;
- local $_;
- while(<$file>)
- { next if /^\s*$/; # skip empty lines
- $file->close;
- return substr($_, 0, 5) eq 'From '; # found Mbox separator?
- }
-
- return 1;
-}
-
-#-------------------------------------------
-
-sub delete(@)
-{ my $self = shift;
- $self->SUPER::delete(@_);
-
- my $subfdir = $self->filename . $default_sub_extension;
- rmdir $subfdir; # may fail, when there are still subfolders (no recurse)
-}
-
-#-------------------------------------------
-
-sub writeMessages($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::writeMessages($args) or return;
-
- if($self->{MB_remove_empty})
- { # Can the sub-folder directory be removed? Don't mind if this
- # doesn't work: probably no subdir or still something in it. This
- # is a rather blunt approach...
- rmdir $self->filename . $self->{MBM_sub_ext};
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-sub type() {'mbox'}
-
-#-------------------------------------------
-
-
-sub listSubFolders(@)
-{ my ($thingy, %args) = @_;
- my $class = ref $thingy || $thingy;
-
- my $skip_empty = $args{skip_empty} || 0;
- my $check = $args{check} || 0;
-
- my $folder = exists $args{folder} ? $args{folder} : '=';
- my $folderdir = exists $args{folderdir}
- ? $args{folderdir}
- : $default_folder_dir;
-
- my $extension = $args{subfolder_extension};
- my $dir;
- if(ref $thingy) # Mail::Box::Mbox
- { $extension ||= $thingy->{MBM_sub_ext};
- $dir = $thingy->filename;
- }
- else
- { $extension ||= $default_sub_extension;
- $dir = $class->folderToFilename($folder, $folderdir, $extension);
- }
-
- my $real = -d $dir ? $dir : "$dir$extension";
- return () unless opendir DIR, $real;
-
- # Some files have to be removed because they are created by all
- # kinds of programs, but are no folders.
-
- my @entries = grep { ! m/\.lo?ck$/ && ! m/^\./ } readdir DIR;
- closedir DIR;
-
- # Look for files in the folderdir. They should be readable to
- # avoid warnings for usage later. Furthermore, if we check on
- # the size too, we avoid a syscall especially to get the size
- # of the file by performing that check immediately.
-
- my %folders; # hash to immediately un-double names.
-
- foreach (@entries)
- { my $entry = File::Spec->catfile($real, $_);
- next unless -r $entry;
- if( -f _ )
- { next if $args{skip_empty} && ! -s _;
- next if $args{check} && !$class->foundIn($entry);
- $folders{$_}++;
- }
- elsif( -d _ )
- { # Directories may create fake folders.
- if($args{skip_empty})
- { opendir DIR, $entry or next;
- my @sub = grep !/^\./, readdir DIR;
- closedir DIR;
- next unless @sub;
- }
-
- (my $folder = $_) =~ s/$extension$//;
- $folders{$folder}++;
- }
- }
-
- map { m/(.*)/ && $1 } keys %folders; # untained names
-}
-
-#-------------------------------------------
-
-
-sub folderToFilename($$;$)
-{ my ($thingy, $name, $folderdir, $extension) = @_;
-
- $extension ||=
- ref $thingy ? $thingy->{MBM_sub_ext} : $default_sub_extension;
-
- $name =~ s#^=#$folderdir/#;
- my @parts = split m!/!, $name;
-
- my $real = shift @parts;
- $real = '/' if $real eq '';
-
- if(@parts)
- { my $file = pop @parts;
-
- $real = File::Spec->catdir($real.(-d $real ? '' : $extension), $_)
- foreach @parts;
-
- $real = File::Spec->catfile($real.(-d $real ? '' : $extension), $file);
- }
-
- $real;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,944 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Mbox - handle folders in Mbox format
-
-
-=head1 INHERITANCE
-
- Mail::Box::Mbox
- is a Mail::Box::File
- is a Mail::Box
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Mbox;
- my $folder = Mail::Box::Mbox->new(folder => $ENV{MAIL}, ...);
-
-
-=head1 DESCRIPTION
-
-This documentation describes how Mbox mailboxes work, and also describes
-what you can do with the Mbox folder object Mail::Box::Mbox.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Mbox-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- access L<Mail::Box> C<'r'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box::File> <see description>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <false>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C<$ENV{MAIL}>
- folderdir L<Mail::Box> C<$ENV{HOME}.'/Mail'>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups L<Mail::Box> <false>
- lock_extension L<Mail::Box::File> C<'.lock'>
- lock_file L<Mail::Box> <foldername><lock-extension>
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> L<Mail::Box::Locker::DotLock|Mail::Box::Locker::DotLock>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::Mbox::Message|Mail::Box::Mbox::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- remove_when_empty L<Mail::Box> <true>
- save_on_exit L<Mail::Box> <true>
- subfolder_extension C<'.d'>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <depends on folder location>
- write_policy L<Mail::Box::File> undef
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. keep_dups BOOLEAN
-
-. lock_extension FILENAME|STRING
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. subfolder_extension STRING
-
-=over 4
-
-Mbox folders do not support sub-folders. However, this module can
-simulate sub-directories if the user wants it to. When a subfolder of
-folder C<xyz> is created, we create a directory which is called C<xyz.d>
-to contain them. This extension C<.d> can be changed using this option.
-
-=back
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. write_policy 'REPLACE'|'INPLACE'|undef
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::Mbox-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::File/"METHODS">
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<filename>
-
-=over 4
-
-See L<Mail::Box::File/"The folder">
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::Mbox-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- check L<Mail::Box> <false>
- folder L<Mail::Box> <from calling object>
- folderdir L<Mail::Box> <from folder>
- skip_empty L<Mail::Box> <false>
- subfolder_extension <from object>
-
-. check BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. skip_empty BOOL
-
-. subfolder_extension STRING
-
-=over 4
-
-When the method is called on an open folder, the extension defined by it is
-used to detect sub-folders by default. Otherwise, C<'.d'> is taken.
-
-=back
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::Mbox-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::Mbox-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-Mail::Box::Mbox-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- folderdir L<Mail::Box> undef
- subfolder_extension undef
-
-. folderdir DIRECTORY
-
-. subfolder_extension STRING
-
-=over 4
-
-If a directory is found on the location of the folder to be created, this
-STRING is used to extend that directory name with. This will cause the
-directory to be seen as sub-folder for the created folder. This argument
-is passed to L<folderToFilename()|Mail::Box::Mbox/"Internals">.
-
-=back
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<folderToFilename>(FOLDERNAME, FOLDERDIR, [EXTENSION])
-
-Mail::Box::Mbox-E<gt>B<folderToFilename>(FOLDERNAME, FOLDERDIR, [EXTENSION])
-
-=over 4
-
-Translate a folder name into a filename, using the
-FOLDERDIR value to replace a leading C<=>. If no EXTENSION is specified and
-this method is called as instance method, new(subfolder_extension) is used.
-Otherwise, the extension default to C<'.d'>.
-
-=back
-
-Mail::Box::Mbox-E<gt>B<foundIn>([FOLDERNAME], [OPTIONS])
-
-=over 4
-
-If no FOLDERNAME is specified, then the value of the C<folder> option
-is taken. A mbox folder is a file which starts with a separator
-line: a line with C<'From '> as first characters. Blank lines which
-start the file are ignored, which is not for all MUA's acceptable.
-
- Option Defined in Default
- folder undef
- folderdir L<Mail::Box> undef
- subfolder_extension <from object>
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. subfolder_extension STRING
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<messageCreateOptions>([TYPE, CONFIG])
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<moveAwaySubFolder>(DIRECTORY, EXTENSION)
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<parser>
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::File/"Internals">
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-=head3 File based folders
-
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::Mbox-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Mbox-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Mbox-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Mbox-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot append messages to folder file $filename: $!
-
-Appending messages to a not-opened file-organized folder may fail when the
-operating system does not allow write access to the file at hand.
-
-I<Error:> Cannot move away sub-folder $dir
-
-
-I<Warning:> Cannot remove folder $name file $filename: $!
-
-Writing an empty folder will usually cause that folder to be removed,
-which fails for the indicated reason. L<new(remove_when_empty)|Mail::Box/"Constructors">
-
-I<Warning:> Cannot remove folder $name file $filename: $!
-
-Writing an empty folder will usually cause that folder to be removed,
-which fails for the indicated reason. L<new(remove_when_empty)|Mail::Box/"Constructors">
-controls whether the empty folder will removed; setting it to false
-(C<0>) may be needed to avoid this message.
-
-I<Error:> Cannot replace $filename by $tempname, to update folder $name: $!
-
-The replace policy wrote a new folder file to update the existing, but
-was unable to give the final touch: replacing the old version of the
-folder file for the indicated reason.
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> File too short to get write message $nr ($size, $need)
-
-Mail::Box is lazy: it tries to leave messages in the folders until they
-are used, which saves time and memory usage. When this message appears,
-something is terribly wrong: some lazy message are needed for updating the
-folder, but they cannot be retreived from the original file anymore. In
-this case, messages can be lost.
-
-This message does appear regularly on Windows systems when using the
-'replace' write policy. Please help to find the cause, probably something
-to do with Windows incorrectly handling multiple filehandles open in the
-same file.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Unable to update folder $self.
-
-When a folder is to be written, both replace and inplace write policies are
-tried, If both fail, the whole update fails. You may see other, related,
-error messages to indicate the real problem.
-
-
-=head1 DETAILS
-
-
-=head2 How MBOX folders work
-
-MBOX folders store many messages in one file. Each message begins with a
-line which starts with the string C<From >. Lines inside a message which
-accidentally start with C<From> are, in the file, preceded by `E<gt>'. This
-character is stripped when the message is read.
-
-In this respect must be noted that the format of the MBOX files is not
-strictly defined. The exact content of the separator lines differ between
-Mail User Agents (MUA's). Besides, some MUAs (like mutt) forget to encode
-the C<From > lines within message bodies, breaking other parsers....
-
-=head2 Simulation of sub-folders
-
-MBOX folders do not have a sub-folder concept as directory based folders
-do, but this MBOX module tries to simulate them. In this implementation
-a directory like
-
- Mail/subject1/
-
-is taken as an empty folder C<Mail/subject1>, with the folders in that
-directory as sub-folders for it. You may also use
-
- Mail/subject1
- Mail/subject1.d/
-
-where C<Mail/subject1> is the folder, and the folders in the
-C<Mail/subject1.d> directory are used as sub-folders. If your situation
-is similar to the first example and you want to put messages in that empty
-folder, the directory is automatically (and transparently) renamed, so
-that the second situation is reached.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Mbox.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Mbox.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Message/Destructed.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,104 +0,0 @@
-
-use strict;
-
-package Mail::Box::Message::Destructed;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Message';
-
-use Carp;
-
-
-sub new(@)
-{ my $class = shift;
- $class->log(ERROR => 'You cannot instantiate a destructed message');
- undef;
-}
-
-#-------------------------------------------
-
-sub isDummy() { 1 }
-
-#-------------------------------------------
-
-
-sub head(;$)
-{ my $self = shift;
- return undef if @_ && !defined(shift);
-
- $self->log(ERROR => "You cannot take the head of a destructed message");
- undef;
-}
-
-#-------------------------------------------
-
-
-sub body(;$)
-{ my $self = shift;
- return undef if @_ && !defined(shift);
-
- $self->log(ERROR => "You cannot take the body of a destructed message");
- undef;
-}
-
-#-------------------------------------------
-
-
-sub coerce($)
-{ my ($class, $message) = @_;
-
- unless($message->isa('Mail::Box::Message'))
- { $class->log(ERROR=>"Cannot coerce a ",ref($message), " into destruction");
- return ();
- }
-
- $message->body(undef);
- $message->head(undef);
- $message->modified(0);
-
- bless $message, $class;
-}
-
-#-------------------------------------------
-
-sub modified(;$)
-{ my $self = shift;
-
- $self->log(ERROR => 'Do not set the modified flag on a destructed message')
- if @_ && $_[0];
-
- 0;
-}
-
-sub isModified() { 0 }
-
-#-------------------------------------------
-
-
-sub label($;@)
-{ my $self = shift;
-
- if(@_==1)
- { my $label = shift;
- return $self->SUPER::label('deleted') if $label eq 'deleted';
- $self->log(ERROR => "Destructed message has no labels except 'deleted', requested is $label");
- return 0;
- }
-
- my %flags = @_;
- unless(keys %flags==1 && exists $flags{deleted})
- { $self->log(ERROR => "Destructed message has no labels except 'deleted', trying to set @{[ keys %flags ]}");
- return;
- }
-
- $self->log(ERROR => "Destructed messages can not be undeleted")
- unless $flags{deleted};
-
- 1;
-}
-
-#-------------------------------------------
-
-sub labels() { wantarray ? ('deleted') : { deleted => 1 } }
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Message/Destructed.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Message/Destructed.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,973 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Message::Destructed - a destructed message
-
-
-=head1 INHERITANCE
-
- Mail::Box::Message::Destructed
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- $folder->message(3)->destruct;
-
-
-=head1 DESCRIPTION
-
-When a message folder is read, each message will be parsed into Perl
-structures. Especially the header structure can consume a huge amount
-of memory (message bodies can be moved to external temporary files).
-Destructed messages have forcefully cleaned-up all header and body
-information, and are therefore much smaller. Some useful information
-is still in the object.
-
-BE WARNED: once a message is destructed, it cannot be revived. Destructing
-enforces irreversable deletion from the folder. If you have a folder opened
-for read-only, the message will stay in that folder, but otherwise it may
-be deleted.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::Message::Destructed-E<gt>B<new>(MESSAGE-ID, OPTIONS)
-
-=over 4
-
-You cannot instantiate a destructed message object. Destruction is
-done by calling L<Mail::Box::Message::destruct()|Mail::Box::Message/"Cleanup">.
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type L<Mail::Box::Message> <from folder>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- folder L<Mail::Box::Message> <required>
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- size L<Mail::Box::Message> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. folder FOLDER
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. size INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::Message::Destructed-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::Message::Destructed-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::Message::Destructed-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::Message::Destructed-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-When C<undef> is specified for HEAD, no change has to take place and
-the method returns silently. In all other cases, this method will
-complain that the header has been removed.
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-When C<undef> is specified for BODY, no change has to take place and
-the method returns silently. In all other cases, this method will
-complain that the body data has been removed.
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-It is possible to delete a destructed message, but not to undelete it.
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::Message::Destructed-E<gt>B<coerce>(MESSAGE)
-
-=over 4
-
-Coerce a L<Mail::Box::Message|Mail::Box::Message> into destruction.
-
-I<Example:> of coercion to death
-
-
- Mail::Box::Message::Destructed->coerce($folder->message(1));
- $folder->message(1)->destruct; # same
-
- my $msg = $folder->message(1);
- Mail::Box::Message::Destructed->coerce($msg);
- $msg->destruct; # same
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Message::Destructed-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Message::Destructed-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Message::Destructed-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::Message::Destructed-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot coerce a (class) into destruction
-
-Only real L<Mail::Box::Message|Mail::Box::Message> objects can get destructed into
-L<Mail::Box::Message::Destructed|Mail::Box::Message::Destructed> objects. L<Mail::Message|Mail::Message> free
-their memory immediately when the last reference is lost.
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> Destructed message has no labels except 'deleted'
-
-
-I<Error:> Destructed messages can not be undeleted
-
-Once a message is destructed, it can not be revived. Destruction is an
-optimization in memory usage: if you need an undelete functionality, then
-you can not use L<Mail::Box::Message::destruct()|Mail::Box::Message/"Cleanup">.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Box::Message::Destructed/"METHODS">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> You cannot instantiate a destructed message
-
-You cannot instantiate a destructed message object directly. Destruction
-is done by calling L<Mail::Box::Message::destruct()|Mail::Box::Message/"Cleanup"> on any existing
-folder message.
-
-I<Error:> You cannot take the head/body of a destructed message
-
-The message originated from a folder, but its memory has been freed-up
-forcefully by means of L<Mail::Box::Message::destruct()|Mail::Box::Message/"Cleanup">. Apparently,
-your program still tries to get to the header or body data after this
-destruction, which is not possible.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message/Destructed.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Message/Destructed.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,138 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message';
-
-use Date::Parse;
-use Scalar::Util 'weaken';
-
-
-#-------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- $self->{MBM_body_type} = $args->{body_type};
- $self->{MBM_folder} = $args->{folder};
- weaken($self->{MBM_folder});
-
- return $self if $self->isDummy;
- $self;
-}
-
-#-------------------------------------------
-
-sub head(;$)
-{ my $self = shift;
- return $self->SUPER::head unless @_;
-
- my $new = shift;
- my $old = $self->head;
- $self->SUPER::head($new);
-
- return unless defined $new || defined $old;
-
- my $folder = $self->folder
- or return $new;
-
- if(!defined $new && defined $old && !$old->isDelayed)
- { $folder->messageId($self->messageId, undef);
- $folder->toBeUnthreaded($self);
- }
- elsif(defined $new && !$new->isDelayed)
- { $folder->messageId($self->messageId, $self);
- $folder->toBeThreaded($self);
- }
-
- $new || $old;
-}
-
-#-------------------------------------------
-
-
-sub folder(;$)
-{ my $self = shift;
- if(@_)
- { $self->{MBM_folder} = shift;
- weaken($self->{MBM_folder});
- $self->modified(1);
- }
- $self->{MBM_folder};
-}
-
-#-------------------------------------------
-
-
-sub seqnr(;$)
-{ my $self = shift;
- @_ ? $self->{MBM_seqnr} = shift : $self->{MBM_seqnr};
-}
-
-#-------------------------------------------
-
-
-sub copyTo($@)
-{ my ($self, $folder) = (shift, shift);
- my $clone = $self->clone(@_);
-
- $folder->addMessage($clone);
-}
-
-#-------------------------------------------
-
-
-sub moveTo($@)
-{ my ($self, $folder, %args) = @_;
-
- $args{share} = 1
- unless exists $args{share} || exists $args{shallow_body};
-
- my $added = $folder->copyTo($folder, %args);
- $self->label(deleted => 1);
- $added;
-}
-
-#-------------------------------------------
-
-
-sub readBody($$;$)
-{ my ($self, $parser, $head, $getbodytype) = @_;
-
- unless($getbodytype)
- { my $folder = $self->{MBM_folder};
- $getbodytype = sub {$folder->determineBodyType(@_)} if defined $folder;
- }
-
- $self->SUPER::readBody($parser, $head, $getbodytype);
-}
-
-#-------------------------------------------
-
-
-sub diskDelete() { shift }
-
-#-------------------------------------------
-
-sub forceLoad() { # compatibility
- my $self = shift;
- $self->loadBody(@_);
- $self;
-}
-
-#-------------------------------------------
-
-
-sub destruct()
-{ require Mail::Box::Message::Destructed;
- Mail::Box::Message::Destructed->coerce(shift);
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1057 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Message - manage one message within a mail-folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
- Mail::Box::Message is extended by
- Mail::Box::Dir::Message
- Mail::Box::File::Message
- Mail::Box::Message::Destructed
- Mail::Box::Net::Message
-
-
-=head1 SYNOPSIS
-
- # Usually these message objects are created indirectly
- use Mail::Box::Manager;
- my $manager = Mail::Box::Manager->new;
- my $folder = $manager->open(folder => 'Mail/Drafts');
- my $msg = $folder->message(1);
- $msg->delete;
- $msg->size; # and much more
-
-
-=head1 DESCRIPTION
-
-These pages do only describe methods which relate to folders. If you
-access the knowledge of a message, then read L<Mail::Message|Mail::Message>.
-
-During its life, a message will pass through certain stages. These
-stages were introduced to reduce the access-time to the folder. Changing
-from stage, the message's body and head objects may change.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type <from folder>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- folder <required>
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- size undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-=over 4
-
-If the body of a message is used delay-loaded, the message must what type
-of message to become when it finally gets parsed. The folder which is
-delaying the load must specify the algorithm to determine that type.
-
-=back
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. folder FOLDER
-
-=over 4
-
-The folder where this message appeared in. The argument is
-an instance of (a sub-class of) a L<Mail::Box|Mail::Box>.
-
-=back
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. size INTEGER
-
-=over 4
-
-The size of the message, which includes head and body, but without the
-message separators which may be used by the folder type.
-
-=back
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-Copy the message to the indicated opened FOLDER, without deleting the
-original. The coerced message (the clone in the destination folder)
-is returned.
-
- Option Defined in Default
- shallow <false>
- shallow_body <false>
- shallow_head <false>
- share <false>
-
-. shallow BOOLEAN
-
-=over 4
-
-Used for L<clone(shallow)|Mail::Message/"Constructors">.
-
-=back
-
-. shallow_body BOOLEAN
-
-=over 4
-
-Used for L<clone(shallow_body)|Mail::Message/"Constructors">.
-
-=back
-
-. shallow_head BOOLEAN
-
-=over 4
-
-Used for L<clone(shallow_head)|Mail::Message/"Constructors">.
-
-=back
-
-. share BOOLEAN
-
-=over 4
-
-Try to share the physical storage of the message between the two folders.
-Sometimes, they even may be of different types. When not possible, this
-options will be silently ignored.
-
-=back
-
-I<Example:>
-
- my $draft = $mgr->open(folder => 'Draft');
- $message->copyTo($draft, share => 1);
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-In with folder did we detect this message/dummy? This is a reference
-to the folder-object.
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-Move the message from this folder to the FOLDER specified. This will
-create a copy using L<clone()|Mail::Message/"Constructors"> first. Then, this original message is
-flagged to get deleted. So until the source folder is closed, two copies
-of the message may stay in memory.
-
-The newly created message clone (part of the destination folder)
-is returned. All OPTIONS are passed to L<copyTo()|Mail::Box::Message/"The message">
-
- Option Defined in Default
- shallow_body <undef>
- share <true unless shallow_body exists>
-
-. shallow_body BOOLEAN
-
-=over 4
-
-Only create a shallow body, which means that the header can not be
-reused. A message can therefore not be shared in storage unless
-explicitly stated.
-
-=back
-
-. share BOOLEAN
-
-=over 4
-
-When there is a chance that the original message can be undeleted, then
-this must be set to false. Otherwise a shallow clone will be made, which
-will share the header which can be modified in the undeleted message.
-
-=back
-
-I<Example:> of moving a message
-
-
- my $t = $msg->moveTo('trash');
-
-is equivalent to
-
- my $t = $msg->copyTo('trash', share => 1);
- $msg->delete;
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-Get the number of this message is the current folder. It starts counting
-from zero. Do not change the number.
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-Remove a message from disk. This is not from the folder, but everything
-else, like parts of the message which are stored outside from the
-folder.
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-Read the body of one message. The PARSER gives access to the folder file.
-The HEAD has been read with L<readHead()|Mail::Message/"Internals">. The optional BODYTYPE supplies
-the class name of the body to be created, or a code reference to a
-routine which can produce a body type based on the head (passed as
-first argument).
-
-By default, the BODYTYPE will call L<Mail::Box::determineBodyType()|Mail::Box/"Internals">
-where the message will be added to.
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-Removes most of the memory occupied by the message by detaching the header
-and body. Then, the object changes into a L<Mail::Box::Message::Destructed|Mail::Box::Message::Destructed>
-which will catch all attempts to access the header and body. Be careful
-with the usage of this method.
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Net/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,93 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::Net::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Message';
-
-use File::Copy;
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->unique($args->{unique});
- $self;
-}
-
-#-------------------------------------------
-
-
-sub unique(;$)
-{ my $self = shift;
- @_ ? $self->{MBNM_unique} = shift : $self->{MBNM_unique};
-}
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-sub loadHead()
-{ my $self = shift;
- my $head = $self->head;
- return $head unless $head->isDelayed;
-
- my $folder = $self->folder;
- $folder->lazyPermitted(1);
-
- my $parser = $self->parser or return;
- $self->readFromParser($parser);
-
- $folder->lazyPermitted(0);
-
- $self->log(PROGRESS => 'Loaded delayed head.');
- $self->head;
-}
-
-#-------------------------------------------
-
-
-sub loadBody()
-{ my $self = shift;
-
- my $body = $self->body;
- return $body unless $body->isDelayed;
-
- my $head = $self->head;
- my $parser = $self->parser or return;
-
- if($head->isDelayed)
- { $head = $self->readHead($parser);
- if(defined $head)
- { $self->log(PROGRESS => 'Loaded delayed head.');
- $self->head($head);
- }
- else
- { $self->log(ERROR => 'Unable to read delayed head.');
- return;
- }
- }
- else
- { my ($begin, $end) = $body->fileLocation;
- $parser->filePosition($begin);
- }
-
- my $newbody = $self->readBody($parser, $head);
- unless(defined $newbody)
- { $self->log(ERROR => 'Unable to read delayed body.');
- return;
- }
-
- $self->log(PROGRESS => 'Loaded delayed body.');
- $self->storeBody($newbody->contentInfoFrom($head));
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Net/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Net/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,956 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Net::Message - one message from a distant folder
-
-
-=head1 INHERITANCE
-
- Mail::Box::Net::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
- Mail::Box::Net::Message is extended by
- Mail::Box::IMAP4::Message
- Mail::Box::POP3::Message
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::POP3 ...
- my $message = $folder->message(10);
-
-
-=head1 DESCRIPTION
-
-A L<Mail::Box::Net::Message|Mail::Box::Net::Message> represents one message in a folder which
-can only be accessed via some kind of protocol. On this moment, only
-a POP3 client is available. IMAP, DBI, and NNTP are other candidates.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::Net::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type L<Mail::Box::Message> <from folder>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- folder L<Mail::Box::Message> <required>
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- size L<Mail::Box::Message> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
- unique <unique string>
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. folder FOLDER
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. size INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. unique STRING
-
-=over 4
-
-The unique keys which identifies this message on the remote server.
-
-=back
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::Net::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::Net::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::Net::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::Net::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<unique>([STRING|undef])
-
-=over 4
-
-Returns the name of the file in which this message is actually stored. This
-will return C<undef> when the message is not stored in a file. When a STRING
-is specified, a new identifier is stored first.
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::Net::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Net::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Net::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Net::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::Net::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-
-I<Error:> Unable to read delayed head.
-
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Net/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Net.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,88 +0,0 @@
-
-use strict;
-package Mail::Box::Net;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use base 'Mail::Box';
-
-use Mail::Box::Net::Message;
-
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::File;
-use Mail::Message::Body::Delayed;
-use Mail::Message::Body::Multipart;
-
-use Mail::Message::Head;
-use Mail::Message::Head::Delayed;
-
-use Carp;
-use File::Copy;
-use File::Spec;
-use File::Basename;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{lock_type} ||= 'NONE';
- $args->{body_type} ||= 'Mail::Message::Body::Lines';
- $args->{folder} ||= '/';
- $args->{trusted} ||= 0;
-
- $self->SUPER::init($args);
-
- $self->{MBN_username} = $args->{username};
- $self->{MBN_password} = $args->{password};
- $self->{MBN_hostname} = $args->{server_name};
- $self->{MBN_port} = $args->{server_port};
-
- $self->log(WARNING => "The term 'hostname' is confusing wrt folder. You probably need 'server_name'")
- if exists $args->{hostname};
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub create(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub folderdir(;$) { undef }
-
-#-------------------------------------------
-
-sub organization() { 'REMOTE' }
-
-#-------------------------------------------
-
-sub url()
-{ my $self = shift;
-
- my ($user, $pass, $host, $port)
- = @$self{ qw/MBN_username MBN_password MBN_hostname MBN_port/ };
-
- my $perm = '';
- $perm = $user if defined $user;
- if(defined $pass)
- { $pass =~ s/(\W)/sprintf "%%%02X", ord $1/ge;
- $perm .= ':'.$pass;
- }
-
- $perm .= '@' if length $perm;
-
- my $loc = $host;
- $loc .= ':'.$port if length $port;
-
- my $name = $self->name;
- $loc .= '/'.$name if $name ne '/';
-
- $self->type . '://' . $perm . $loc;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Net.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Net.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,816 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Net - handle folders which are stored remote.
-
-
-=head1 INHERITANCE
-
- Mail::Box::Net
- is a Mail::Box
- is a Mail::Reporter
-
- Mail::Box::Net is extended by
- Mail::Box::IMAP4
- Mail::Box::POP3
-
-
-=head1 SYNOPSIS
-
- # Do not instantiate this object directly
-
-
-=head1 DESCRIPTION
-
-At the moment, this object is extended by
-
-=over 4
-
-=item * L<Mail::Box::POP3|Mail::Box::POP3>
-
-Implements the POP3 protocol.
-
-=item * L<Mail::Box::IMAP4|Mail::Box::IMAP4>
-
-Implements the IMAP4 protocol. B<UNDER DEVELOPMENT>
-
-=back
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Net-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- access L<Mail::Box> C<'r'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <false>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> C<'/'>
- folderdir L<Mail::Box> <not used>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups L<Mail::Box> <false>
- lock_file L<Mail::Box> undef
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> C<'NONE'>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::Message|Mail::Box::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- password undef
- remove_when_empty L<Mail::Box> <false>
- save_on_exit L<Mail::Box> <true>
- server_name undef
- server_port undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <false>
- username undef
-
-. access MODE
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. keep_dups BOOLEAN
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. password STRING
-
-=over 4
-
-The password which is required to contact the remote server.
-
-=back
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. server_name HOSTNAME
-
-=over 4
-
-The name of the host which contains the remote mail server.
-
-=back
-
-. server_port INTEGER
-
-=over 4
-
-Port number in use by the server application.
-
-=back
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. username STRING
-
-=over 4
-
-The username which is to be used for the remote server.
-
-=back
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-Mail::Box::Net-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-Not applicatable for folders on a remote server, so will always return
-the C<undef>.
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::Net-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::Net-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::Net-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDER, OPTIONS)
-
-Mail::Box::Net-E<gt>B<create>(FOLDER, OPTIONS)
-
-=over 4
-
-Create a new folder on the remote server.
-
- Option Defined in Default
- folderdir L<Mail::Box> <not used>
-
-. folderdir DIRECTORY
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-Mail::Box::Net-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::Net-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Net-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Net-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Net-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> Folder $name is opened read-only
-
-You can not write to this folder unless you have opened the folder to
-write or append with L<new(access)|Mail::Box/"Constructors">, or the C<force> option is set true.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Writing folder $name failed
-
-For some reason (you probably got more error messages about this problem)
-it is impossible to write the folder, although you should because there
-were changes made.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Net.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Net.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/POP3/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,91 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box::POP3::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Net::Message';
-
-use File::Copy;
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{body_type} ||= 'Mail::Message::Body::Lines';
-
- $self->SUPER::init($args);
- $self;
-}
-
-#-------------------------------------------
-
-
-sub size($)
-{ my $self = shift;
-
- return $self->SUPER::size
- unless $self->isDelayed;
-
- $self->folder->popClient->messageSize($self->unique);
-}
-
-#-------------------------------------------
-
-sub label(@)
-{ my $self = shift;
- $self->loadHead; # be sure the labels are read
- return $self->SUPER::label(@_) if @_==1;
-
- # POP3 can only set 'deleted' in the source folder. Don't forget
- my $olddel = $self->label('deleted') ? 1 : 0;
- my $ret = $self->SUPER::label(@_);
- my $newdel = $self->label('deleted') ? 1 : 0;
-
- $self->folder->popClient->deleted($newdel, $self->unique)
- if $newdel != $olddel;
-
- $ret;
-}
-
-#-------------------------------------------
-
-sub labels(@)
-{ my $self = shift;
- $self->loadHead; # be sure the labels are read
- $self->SUPER::labels(@_);
-}
-
-#-------------------------------------------
-
-
-sub loadHead()
-{ my $self = shift;
- my $head = $self->head;
- return $head unless $head->isDelayed;
-
- $head = $self->folder->getHead($self);
- $self->head($head);
-
- $self->statusToLabels; # not supported by al POP3 servers
- $head;
-}
-
-#-------------------------------------------
-
-sub loadBody()
-{ my $self = shift;
-
- my $body = $self->body;
- return $body unless $body->isDelayed;
-
- (my $head, $body) = $self->folder->getHeadAndBody($self);
- $self->head($head) if $head->isDelayed;
- $self->storeBody($body);
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/POP3/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/POP3/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,951 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::POP3::Message - one message on a POP3 server
-
-
-=head1 INHERITANCE
-
- Mail::Box::POP3::Message
- is a Mail::Box::Net::Message
- is a Mail::Box::Message
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $folder = new Mail::Box::POP3 ...
- my $message = $folder->message(10);
-
-
-=head1 DESCRIPTION
-
-A C<Mail::Box::POP3::Message> represents one message on a POP3 server,
-maintained by a L<Mail::Box::POP3|Mail::Box::POP3> folder. Each message is stored as
-separate entity on the server, and maybe temporarily in your program
-as well.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Box::POP3::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type L<Mail::Box::Message> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- folder L<Mail::Box::Message> <required>
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- size L<Mail::Box::Message> undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
- unique L<Mail::Box::Net::Message> <unique string>
-
-. body OBJECT
-
-. body_type CODE|CLASS
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. folder FOLDER
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. size INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. unique STRING
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Box::POP3::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Box::POP3::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Box::POP3::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Box::POP3::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<folder>([FOLDER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<moveTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<seqnr>([INTEGER])
-
-=over 4
-
-See L<Mail::Box::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-Returns the size of this message. If the message is still on the remote
-server, POP is used to ask for the size. When the message is already loaded
-onto the local system, the size of the parsed message is taken. These
-sizes can differ because the difference in line-ending representation.
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<unique>([STRING|undef])
-
-=over 4
-
-See L<Mail::Box::Net::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Box::POP3::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<diskDelete>
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<loadBody>
-
-=over 4
-
-See L<Mail::Box::Net::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Box::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::POP3::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::POP3::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::POP3::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Box::POP3::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Box::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read delayed body.
-
-
-I<Error:> Unable to read delayed head.
-
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/POP3/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/POP3.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,262 +0,0 @@
-
-package Mail::Box::POP3;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Net';
-
-use strict;
-use warnings;
-
-use Mail::Box::POP3::Message;
-use Mail::Box::Parser::Perl;
-use Mail::Box::FastScalar;
-
-use File::Spec;
-use File::Basename;
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{server_port} ||= 110;
- $args->{folder} ||= 'inbox';
-
- $self->SUPER::init($args);
-
- $self->{MBP_client} = $args->{pop_client};
- $self->{MBP_auth} = $args->{authenticate} || 'AUTO';
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub create($@) { undef } # fails
-
-#-------------------------------------------
-
-sub foundIn(@)
-{ my $self = shift;
- unshift @_, 'folder' if @_ % 2;
- my %options = @_;
-
- (exists $options{type} && lc $options{type} eq 'pop3')
- || (exists $options{folder} && $options{folder} =~ m/^pop/);
-}
-
-#-------------------------------------------
-
-
-sub addMessage($)
-{ my ($self, $message) = @_;
-
- $self->log(ERROR => "You cannot write a message to a pop server (yet)")
- if defined $message;
-
- undef;
-}
-
-#-------------------------------------------
-
-
-sub addMessages(@)
-{ my $self = shift;
-
- # error message described in addMessage()
- $self->log(ERROR => "You cannot write messages to a pop server (yet)")
- if @_;
-
- ();
-}
-
-#-------------------------------------------
-
-sub type() {'pop3'}
-
-#-------------------------------------------
-
-sub close(@)
-{ my $self = shift;
-
- $self->SUPER::close(@_);
-
- my $pop = delete $self->{MBP_client};
- $pop->disconnect if defined $pop;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub delete(@)
-{ my $self = shift;
- $self->log(WARNING => "POP3 folders cannot be deleted.");
- undef;
-}
-
-#-------------------------------------------
-
-
-sub listSubFolders(@) { () } # no
-
-#-------------------------------------------
-
-
-sub openSubFolder($@) { undef } # fails
-
-#-------------------------------------------
-
-sub topFolderWithMessages() { 1 } # Yes: only top folder
-
-#-------------------------------------------
-
-
-sub update() {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub popClient()
-{ my $self = shift;
-
- return $self->{MBP_client}
- if defined $self->{MBP_client};
-
- my $auth = $self->{auth};
-
- require Mail::Transport::POP3;
- my $client = Mail::Transport::POP3->new
- ( username => $self->{MBN_username}
- , password => $self->{MBN_password}
- , hostname => $self->{MBN_hostname}
- , port => $self->{MBN_port}
- , authenticate => $self->{MBP_auth}
- );
-
- $self->log(ERROR => "Cannot create POP3 client for $self.")
- unless defined $client;
-
- $self->{MBP_client} = $client;
-}
-
-#-------------------------------------------
-
-sub readMessages(@)
-{ my ($self, %args) = @_;
-
- my $pop = $self->popClient or return;
- my @log = $self->logSettings;
- my $seqnr = 0;
-
- foreach my $id ($pop->ids)
- { my $message = $args{message_type}->new
- ( head => $args{head_delayed_type}->new(@log)
- , unique => $id
- , folder => $self
- , seqnr => $seqnr++
- );
-
- my $body = $args{body_delayed_type}->new(@log, message => $message);
- $message->storeBody($body);
-
- $self->storeMessage($message);
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub getHead($)
-{ my ($self, $message) = @_;
- my $pop = $self->popClient or return;
-
- my $uidl = $message->unique;
- my $lines = $pop->header($uidl);
-
- unless(defined $lines)
- { $lines = [];
- $self->log(WARNING => "Message $uidl disappeared from POP3 server $self.");
- }
-
- my $text = join '', @$lines;
- my $parser = Mail::Box::Parser::Perl->new # not parseable by C parser
- ( filename => "$pop"
- , file => Mail::Box::FastScalar->new(\$text)
- , fix_headers => $self->{MB_fix_headers}
- );
-
- $self->lazyPermitted(1);
-
- my $head = $message->readHead($parser);
- $parser->stop;
-
- $self->lazyPermitted(0);
-
- $self->log(PROGRESS => "Loaded head of $uidl.");
- $head;
-}
-
-#-------------------------------------------
-
-
-sub getHeadAndBody($)
-{ my ($self, $message) = @_;
- my $pop = $self->popClient or return;
-
- my $uidl = $message->unique;
- my $lines = $pop->message($uidl);
-
- unless(defined $lines)
- { $lines = [];
- $self->log(WARNING => "Message $uidl disappeared from POP3 server $self.");
- }
-
- my $parser = Mail::Box::Parser::Perl->new # not parseable by C parser
- ( filename => "$pop"
- , file => IO::ScalarArray->new($lines)
- );
-
- my $head = $message->readHead($parser);
- unless(defined $head)
- { $self->log(ERROR => "Cannot find head back for $uidl on POP3 server $self.");
- $parser->stop;
- return undef;
- }
-
- my $body = $message->readBody($parser, $head);
- unless(defined $body)
- { $self->log(ERROR => "Cannot read body for $uidl on POP3 server $self.");
- $parser->stop;
- return undef;
- }
-
- $parser->stop;
-
- $self->log(PROGRESS => "Loaded message $uidl.");
- ($head, $body);
-}
-
-#-------------------------------------------
-
-
-sub writeMessages($@)
-{ my ($self, $args) = @_;
-
- if(my $modifications = grep {$_->isModified} @{$args->{messages}})
- { $self->log(WARNING =>
- "Update of $modifications messages ignored for POP3 folder $self.");
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/POP3.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/POP3.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,934 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::POP3 - handle POP3 folders as client
-
-
-=head1 INHERITANCE
-
- Mail::Box::POP3
- is a Mail::Box::Net
- is a Mail::Box
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::POP3;
- my $folder = new Mail::Box::POP3 folder => $ENV{MAIL}, ...;
-
-
-=head1 DESCRIPTION
-
-Maintain a folder which has its messages stored on a remote server. The
-communication between the client application and the server is implemented
-using the POP3 protocol. This class uses L<Mail::Transport::POP3|Mail::Transport::POP3> to
-hide the transport of information, and focusses solely on the correct
-handling of messages within a POP3 folder.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Box/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::POP3-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-For authentications, you have three choices: specify a foldername which
-resembles an URL, or specify a pop-client object, or separate options
-for user, password, pop-server and server-port.
-
- Option Defined in Default
- access L<Mail::Box> C<'r'>
- authenticate C<'AUTO'>
- body_delayed_type L<Mail::Box> L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type L<Mail::Box> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- coerce_options L<Mail::Box> C<[]>
- create L<Mail::Box> <not applicable>
- extract L<Mail::Box> C<10240>
- field_type L<Mail::Box> undef
- fix_headers L<Mail::Box> <false>
- folder L<Mail::Box> <not applicable>
- folderdir L<Mail::Box> <not used>
- head_delayed_type L<Mail::Box> L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Box> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups L<Mail::Box> <false>
- lock_file L<Mail::Box> undef
- lock_timeout L<Mail::Box> 1 hour
- lock_type L<Mail::Box> C<'NONE'>
- lock_wait L<Mail::Box> 10 seconds
- locker L<Mail::Box> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager L<Mail::Box> undef
- message_type L<Mail::Box> L<Mail::Box::POP3::Message|Mail::Box::POP3::Message>
- multipart_type L<Mail::Box> L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- password L<Mail::Box::Net> undef
- pop_client undef
- remove_when_empty L<Mail::Box> <false>
- save_on_exit L<Mail::Box> <true>
- server_name L<Mail::Box::Net> undef
- server_port L<Mail::Box::Net> 110
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Box> <false>
- username L<Mail::Box::Net> undef
-
-. access MODE
-
-. authenticate 'LOGIN'|'APOP'|'AUTO'
-
-=over 4
-
-POP3 can use two methods of authentication: the old LOGIN protocol, which
-transmits a username and password in plain text, and the newer APOP
-protocol which uses MD5 encryption. APOP is therefore much better, however
-not always supported by the server. With AUTO, first APOP is tried and
-if that fails LOGIN.
-
-=back
-
-. body_delayed_type CLASS
-
-. body_type CLASS|CODE
-
-. coerce_options ARRAY
-
-. create BOOLEAN
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-. field_type CLASS
-
-. fix_headers BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. head_delayed_type CLASS
-
-. head_type CLASS
-
-. keep_dups BOOLEAN
-
-. lock_file FILENAME
-
-. lock_timeout SECONDS
-
-. lock_type CLASS|STRING|ARRAY
-
-. lock_wait SECONDS
-
-. locker OBJECT
-
-. log LEVEL
-
-. manager MANAGER
-
-. message_type CLASS
-
-. multipart_type CLASS
-
-. password STRING
-
-. pop_client OBJECT
-
-=over 4
-
-You may want to specify your own pop-client object. The object
-which is passed must extend L<Mail::Transport::POP3|Mail::Transport::POP3>.
-
-=back
-
-. remove_when_empty BOOLEAN
-
-. save_on_exit BOOLEAN
-
-. server_name HOSTNAME
-
-. server_port INTEGER
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-. username STRING
-
-I<Example:>
-
- my $url = 'pop3://user:password@pop.xs4all.nl'
- my $pop = Mail::Box::POP3->new($url);
-
- my $pop = $mgr->open(type => 'pop3',
- username => 'myname', password => 'mypassword',
- server_name => 'pop.xs4all.nl');
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE)
-
-=over 4
-
-It is impossible to write messages to the average POP3 server. There are
-extensions to the protocol which do permit it, however these are not
-implemented (yet, patches welcome).
-
-C<undef> is returned, and an error displayed. However, no complaint is
-given when the MESSAGE is C<undef> itself.
-
- Option Defined in Default
- share L<Mail::Box> <not used>
-
-. share BOOLEAN
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGES)
-
-=over 4
-
-As useless as L<addMessage()|Mail::Box::POP3/"METHODS">. The only acceptable call to this method
-is without any message.
-
-=back
-
-Mail::Box::POP3-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-It is not possible to delete a POP3 folder remotely: the best we can do
-is remove all the messages in it... which is the action implemented here.
-A notice is logged about this.
-
- Option Defined in Default
- recursive L<Mail::Box> <not used>
-
-. recursive BOOLEAN
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Box::Net/"METHODS">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-$obj-E<gt>B<update>
-
-=over 4
-
-NOT IMPLEMENTED YET
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-See L<Mail::Box/"The folder">
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-See L<Mail::Box/"Folder flags">
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-See L<Mail::Box/"The messages">
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box::POP3-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-The standard POP3 protocol does not support sub-folders, so an
-empty list will be returned in any case.
-
- Option Defined in Default
- check L<Mail::Box> <false>
- folder L<Mail::Box> <from calling object>
- folderdir L<Mail::Box> <from folder>
- skip_empty L<Mail::Box> <false>
-
-. check BOOLEAN
-
-. folder FOLDERNAME
-
-. folderdir DIRECTORY
-
-. skip_empty BOOL
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box::POP3-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-$obj-E<gt>B<openSubFolder>(OPTIONS)
-
-=over 4
-
-It is not possible to open a sub-folder for a POP3 folder, because that
-is not supported by the official POP3 protocol. In any case, C<undef>
-is returned to indicate a failure.
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box::POP3-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-See L<Mail::Box/"Sub-folders">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<create>(FOLDER, OPTIONS)
-
-Mail::Box::POP3-E<gt>B<create>(FOLDER, OPTIONS)
-
-=over 4
-
-It is not possible to create a new folder on a POP3 server. This method
-will always return C<false>.
-
- Option Defined in Default
- folderdir L<Mail::Box> <not used>
-
-. folderdir DIRECTORY
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-Mail::Box::POP3-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<getHead>(MESSAGE)
-
-=over 4
-
-Read the header for the specified message from the remote server.
-
-=back
-
-$obj-E<gt>B<getHeadAndBody>(MESSAGE)
-
-=over 4
-
-Read all data for the specified message from the remote server.
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<popClient>
-
-=over 4
-
-Returns the pop client object. This does not establish the connection.
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box/"Internals">
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- messages L<Mail::Box> <required>
-
-. messages ARRAY
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box::POP3-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-See L<Mail::Box/"Other methods">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::POP3-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::POP3-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::POP3-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Box/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot create POP3 client for $name.
-
-The connection to the POP3 server cannot be established. You may see
-more, related, error messages about the failure.
-
-I<Error:> Cannot find head back for $uidl on POP3 server $name.
-
-The server told to have this message, but when asked for its headers, no
-single line was returned. Did the message get destroyed?
-
-I<Error:> Cannot read body for $uidl on POP3 server $name.
-
-The message's headers are retreived from the server, but the body seems
-to be lost. Did the message get destroyed between reading the header
-and reading the body?
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> Folder $name is opened read-only
-
-You can not write to this folder unless you have opened the folder to
-write or append with L<new(access)|Mail::Box/"Constructors">, or the C<force> option is set true.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message $uidl on POP3 server $name disappeared.
-
-The server indicated the existence of this message before, however it
-has no information about the message anymore.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Warning:> POP3 folders cannot be deleted.
-
-Each user has only one POP3 folder on a server. This folder is created and
-deleted by the server's administrator only.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Update of $nr messages ignored for POP3 folder $name.
-
-The standard POP3 implementation does not support writing from client back
-to the server. Therefore, modifications may be lost.
-
-I<Error:> Writing folder $name failed
-
-For some reason (you probably got more error messages about this problem)
-it is impossible to write the folder, although you should because there
-were changes made.
-
-I<Error:> You cannot write a message to a pop server (yet)
-
-Some extensions to the POP3 protocol do permit writing messages to the server,
-but the standard protocol only implements retreival. Feel invited to extend our
-implementation with writing.
-
-
-=head1 DETAILS
-
-
-=head2 How POP3 folders work
-
-Rfc1939 defines how POP3 works. POP3 is a really simple protocol to
-receive messages from a server to a user's client. POP3 is also
-really limited: it can only be used to fetch messages, but has not
-many ways to limit the amount of network traffic, like the IMAP4
-protocol has.
-
-One POP3 account represents only one folder: there is no way of
-sub-folders in POP3. POP3 doesn't support writing (except for
-some message status flags).
-
-=head2 This implementation
-
-The protocol specifics are implemented in L<Mail::Transport::POP3|Mail::Transport::POP3>,
-written by Liz Mattijsen. That module does not use any of the
-other POP3 modules available on CPAN for the reason that MailBox
-tries to be smarter: it is capable of re-establishing broken POP3
-connection when the server supports UIDs.
-
-The implementation has shown to work with many different POP servers.
-In the test directory of the distribution, you will find a small
-server implementation, which is used to test the client.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/POP3.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/POP3.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Parser/Perl.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,349 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Box::Parser::Perl;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Parser';
-
-use Mail::Message::Field;
-use List::Util 'sum';
-use IO::File;
-
-
-sub init(@)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args) or return;
-
- $self->{MBPP_trusted} = $args->{trusted};
- $self->{MBPP_fix} = $args->{fix_header_errors};
- $self;
-}
-
-#------------------------------------------
-
-sub pushSeparator($)
-{ my ($self, $sep) = @_;
- unshift @{$self->{MBPP_separators}}, $sep;
- $self->{MBPP_strip_gt}++ if $sep eq 'From ';
- $self;
-}
-
-#------------------------------------------
-
-sub popSeparator()
-{ my $self = shift;
- my $sep = shift @{$self->{MBPP_separators}};
- $self->{MBPP_strip_gt}-- if $sep eq 'From ';
- $sep;
-}
-
-#------------------------------------------
-
-sub filePosition(;$)
-{ my $self = shift;
- @_ ? $self->{MBPP_file}->seek(shift, 0) : $self->{MBPP_file}->tell;
-}
-
-my $empty = qr/^[\015\012]*$/;
-
-#------------------------------------------
-
-
-sub readHeader()
-{ my $self = shift;
- my $file = $self->{MBPP_file};
-
- my $start = $file->tell;
- my @ret = ($start, undef);
- my $line = $file->getline;
-
-LINE:
- while(defined $line)
- { last if $line =~ $empty;
- my ($name, $body) = split /\s*\:\s*/, $line, 2;
-
- unless(defined $body)
- { $self->log(WARNING =>
- "Unexpected end of header in ".$self->filename.":\n $line");
-
- if(@ret && $self->fixHeaderErrors)
- { $ret[-1][1] .= ' '.$line; # glue erroneous line to previous field
- $line = $file->getline;
- next LINE;
- }
- else
- { $file->seek(-length $line, 1);
- last LINE;
- }
- }
-
- $body = "\n" unless length $body;
-
- # Collect folded lines
- while($line = $file->getline)
- { $line =~ m!^[ \t]! ? ($body .= $line) : last;
- }
-
- $body =~ s/\015//g;
- push @ret, [ $name, $body ];
- }
-
- $ret[1] = $file->tell;
- @ret;
-}
-
-#------------------------------------------
-
-sub _is_good_end($)
-{ my ($self, $where) = @_;
-
- # No seps, then when have to trust it.
- my $sep = $self->{MBPP_separators}[0];
- return 1 unless defined $sep;
-
- my $file = $self->{MBPP_file};
- my $here = $file->tell;
- $file->seek($where, 0) or return 0;
-
- # Find first non-empty line on specified location.
- my $line = $file->getline;
- $line = $file->getline while defined $line && $line =~ $empty;
-
- # Check completed, return to old spot.
- $file->seek($here, 0);
- return 1 unless defined $line;
-
- substr($line, 0, length $sep) eq $sep
- && ($sep ne 'From ' || $line =~ m/ (19[789]|20[01])\d\b/ );
-}
-
-#------------------------------------------
-
-sub readSeparator()
-{ my $self = shift;
-
- my $sep = $self->{MBPP_separators}[0];
- return () unless defined $sep;
-
- my $file = $self->{MBPP_file};
- my $start = $file->tell;
-
- my $line = $file->getline;
- while(defined $line && $line =~ $empty)
- { $start = $file->tell;
- $line = $file->getline;
- }
-
- return () unless defined $line;
-
- $line =~ s/[\012\015\n]+$/\n/g;
- return ($start, $line)
- if substr($line, 0, length $sep) eq $sep;
-
- $file->seek($start, 0);
- ();
-}
-
-#------------------------------------------
-
-sub _read_stripped_lines(;$$)
-{ my ($self, $exp_chars, $exp_lines) = @_;
- $exp_lines = -1 unless defined $exp_lines;
- my @seps = @{$self->{MBPP_separators}};
-
- my $file = $self->{MBPP_file};
- my $lines = [];
-
- if(@seps && $self->{MBPP_trusted})
- { my $sep = $seps[0];
- my $l = length $sep;
-
- while(1)
- { my $where = $file->tell;
- my $line = $file->getline or last;
-
- if( substr($line, 0, $l) eq $sep
- && ($sep ne 'From ' || $line =~ m/ (?:19[789]\d|20[01]\d)/)
- )
- { $file->seek($where, 0);
- last;
- }
-
- push @$lines, $line;
- }
- }
- elsif(@seps)
- {
-
- LINE: while(1)
- { my $where = $file->getpos;
- my $line = $file->getline or last;
-
- foreach my $sep (@seps)
- { next if substr($line, 0, length $sep) ne $sep;
- next if $sep eq 'From ' && $line !~ m/ (?:19[789]\d|20[01]\d)/;
-
- $file->setpos($where);
- last LINE;
- }
-
- $line =~ s/\015$//;
- push @$lines, $line;
- }
- }
- else # File without separators.
- { $lines = ref $file eq 'Mail::Box::FastScalar' ? $file->getlines : [ $file->getlines ];
- }
-
- my $end = $file->tell;
- if($exp_lines > 0 )
- { while(@$lines > $exp_lines && $lines->[-1] =~ $empty)
- { $end -= length $lines->[-1];
- pop @$lines;
- }
- }
- elsif(@seps && @$lines && $lines->[-1] =~ $empty)
- { # blank line should be in place before a separator. Only that
- # line is removed.
- $end -= length $lines->[-1];
- pop @$lines;
- }
-
- map { s/^\>(\>*From\s)/$1/ } @$lines
- if $self->{MBPP_strip_gt};
-
- $end, $lines;
-}
-
-#------------------------------------------
-
-sub _take_scalar($$)
-{ my ($self, $begin, $end) = @_;
- my $file = $self->{MBPP_file};
- $file->seek($begin, 0);
-
- my $return;
- $file->read($return, $end-$begin);
- $return =~ s/\015//g;
- $return;
-}
-
-#------------------------------------------
-
-sub bodyAsString(;$$)
-{ my ($self, $exp_chars, $exp_lines) = @_;
- my $file = $self->{MBPP_file};
- my $begin = $file->tell;
-
- if(defined $exp_chars && $exp_chars>=0)
- { # Get at once may be successful
- my $end = $begin + $exp_chars;
-
- if($self->_is_good_end($end))
- { my $body = $self->_take_scalar($begin, $end);
- $body =~ s/^\>(\>*From\s)/$1/gm if $self->{MBPP_strip_gt};
- return ($begin, $file->tell, $body);
- }
- }
-
- my ($end, $lines) = $self->_read_stripped_lines($exp_chars, $exp_lines);
- return ($begin, $end, join('', @$lines));
-}
-
-#------------------------------------------
-
-sub bodyAsList(;$$)
-{ my ($self, $exp_chars, $exp_lines) = @_;
- my $file = $self->{MBPP_file};
- my $begin = $file->tell;
-
- my ($end, $lines) = $self->_read_stripped_lines($exp_chars, $exp_lines);
- ($begin, $end, $lines);
-}
-
-#------------------------------------------
-
-sub bodyAsFile($;$$)
-{ my ($self, $out, $exp_chars, $exp_lines) = @_;
- my $file = $self->{MBPP_file};
- my $begin = $file->tell;
-
- my ($end, $lines) = $self->_read_stripped_lines($exp_chars, $exp_lines);
-
- $out->print($_) foreach @$lines;
- ($begin, $end, scalar @$lines);
-}
-
-#------------------------------------------
-
-sub bodyDelayed(;$$)
-{ my ($self, $exp_chars, $exp_lines) = @_;
- my $file = $self->{MBPP_file};
- my $begin = $file->tell;
-
- if(defined $exp_chars)
- { my $end = $begin + $exp_chars;
-
- if($self->_is_good_end($end))
- { $file->seek($end, 0);
- return ($begin, $end, $exp_chars, $exp_lines);
- }
- }
-
- my ($end, $lines) = $self->_read_stripped_lines($exp_chars, $exp_lines);
- my $chars = sum(map {length} @$lines);
- ($begin, $end, $chars, scalar @$lines);
-}
-
-#------------------------------------------
-
-sub openFile($)
-{ my ($self, $args) = @_;
- my $fh = $args->{file} || IO::File->new($args->{filename}, $args->{mode});
-
- return unless $fh;
- $self->{MBPP_file} = $fh;
-
- binmode $fh, ':raw'
- if ref($fh) eq 'GLOB' || $fh->can('BINMODE');
-
- $self->{MBPP_separators} = [];
-
- # Prepare the first line.
- $self->{MBPP_start_line} = 0;
-
- my $line = $fh->getline || return $self;
-
- $line =~ s/[\012\015]+$/\n/;
- $self->{MBP_linesep} = $1;
- $fh->seek(0, 0);
-
-# binmode $fh, ':crlf' if $] < 5.007; # problem with perlIO
- $self;
-}
-
-#------------------------------------------
-
-sub closeFile()
-{ my $self = shift;
-
- delete $self->{MBPP_separators};
- delete $self->{MBPP_strip_gt};
-
- my $file = delete $self->{MBPP_file} or return;
- $file->close;
- $self;
-}
-#------------------------------------------
-
-
-sub fixHeaderErrors(;$)
-{ my $self = shift;
- @_ ? ($self->{MBPP_fix} = shift) : $self->{MBPP_fix};
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Parser/Perl.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Parser/Perl.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,434 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Parser::Perl - reading messages from file using Perl
-
-
-=head1 INHERITANCE
-
- Mail::Box::Parser::Perl
- is a Mail::Box::Parser
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
-
-
-=head1 DESCRIPTION
-
-The C<Mail::Box::Parser::Perl> implements parsing of messages
-in Perl. This may be a little slower than the C<C> based parser
-Mail::Box::Parser::C, but will also work on platforms where no C
-compiler is available.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Parser::Perl-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- file L<Mail::Box::Parser> undef
- filename L<Mail::Box::Parser> <required>
- fix_header_errors <false>
- log L<Mail::Reporter> C<'WARNINGS'>
- mode L<Mail::Box::Parser> C<'r'>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted <false>
-
-. file FILE-HANDLE
-
-. filename FILENAME
-
-. fix_header_errors BOOLEAN
-
-=over 4
-
-When header errors are detected, the parsing of the header will
-be stopped. Other header lines will become part of the body of
-the message. Set this flag to have the erroneous line added to
-the previous header line.
-
-=back
-
-. log LEVEL
-
-. mode OPENMODE
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=over 4
-
-Is the input from the file to be trusted, or does it require extra
-tests. Related to L<Mail::Box::new(trusted)|Mail::Box/"Constructors">.
-
-=back
-
-=back
-
-=head2 The parser
-
-
-$obj-E<gt>B<fileChanged>
-
-=over 4
-
-See L<Mail::Box::Parser/"The parser">
-
-=back
-
-$obj-E<gt>B<filename>
-
-=over 4
-
-See L<Mail::Box::Parser/"The parser">
-
-=back
-
-$obj-E<gt>B<fixHeaderErrors>([BOOLEAN])
-
-=over 4
-
-If set to C<true>, parsing of a header will not stop on an error, but
-attempt to add the erroneous this line to previous field. Without BOOLEAN,
-the current setting is returned.
-
-I<Example:>
-
- $folder->parser->fixHeaderErrors(1);
- my $folder = $mgr->open('folder', fix_header_errors => 1);
-
-=back
-
-$obj-E<gt>B<restart>
-
-=over 4
-
-See L<Mail::Box::Parser/"The parser">
-
-=back
-
-$obj-E<gt>B<start>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Parser/"The parser">
-
-=back
-
-$obj-E<gt>B<stop>
-
-=over 4
-
-See L<Mail::Box::Parser/"The parser">
-
-=back
-
-=head2 Parsing
-
-
-$obj-E<gt>B<bodyAsFile>(FILEHANDLE [,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<bodyAsList>([,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<bodyAsString>([,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<bodyDelayed>([,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<filePosition>([POSITION])
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<lineSeparator>
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<popSeparator>
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<pushSeparator>(STRING|REGEXP)
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-$obj-E<gt>B<readHeader>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<readSeparator>(OPTIONS)
-
-=over 4
-
-See L<Mail::Box::Parser/"Parsing">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<closeFile>
-
-=over 4
-
-See L<Mail::Box::Parser/"Internals">
-
-=back
-
-$obj-E<gt>B<defaultParserType>([CLASS])
-
-Mail::Box::Parser::Perl-E<gt>B<defaultParserType>([CLASS])
-
-=over 4
-
-See L<Mail::Box::Parser/"Internals">
-
-=back
-
-$obj-E<gt>B<openFile>(ARGS)
-
-=over 4
-
-See L<Mail::Box::Parser/"Internals">
-
-=back
-
-$obj-E<gt>B<takeFileInfo>
-
-=over 4
-
-See L<Mail::Box::Parser/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Parser::Perl-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Parser::Perl-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Parser::Perl-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> File $filename changed during access.
-
-When a message parser starts working, it takes size and modification time
-of the file at hand. If the folder is written, it checks wether there
-were changes in the file made by external programs.
-
-Calling L<Mail::Box::update()|Mail::Box/"The folder"> on a folder before it being closed
-will read these new messages. But the real source of this problem is
-locking: some external program (for instance the mail transfer agent,
-like sendmail) uses a different locking mechanism as you do and therefore
-violates your rights.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Unexpected end of header in $source: $line
-
-While parsing a message from the specified source (usually a file name),
-the parser found a syntax error. According to the MIME specification in the
-RFCs, each header line must either contain a colon, or start with a blank
-to indicate a folded field. Apparently, this header contains a line which
-starts on the first position, but not with a field name.
-
-By default, parsing of the header will be stopped. If there are more header
-lines after the erroneous line, they will be added to the body of the message.
-In case of new(fix_headers) set, the parsing of the header will be continued.
-The erroneous line will be added to the preceding field.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser/Perl.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Parser/Perl.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Parser.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,210 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Box::Parser;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-use Carp;
-
-
-sub new(@)
-{ my $class = shift;
-
- $class eq __PACKAGE__
- ? $class->defaultParserType->new(@_) # bootstrap right parser
- : $class->SUPER::new(@_);
-}
-
-sub init(@)
-{ my ($self, $args) = @_;
-
- $args->{trace} ||= 'WARNING';
-
- $self->SUPER::init($args);
-
- $self->{MBP_mode} = $args->{mode} || 'r';
-
- unless($self->{MBP_filename} = $args->{filename} || ref $args->{file})
- { $self->log(ERROR => "Filename or handle required to create a parser.");
- return;
- }
-
- $self->start(file => $args->{file});
-}
-
-#------------------------------------------
-
-
-sub start(@)
-{ my $self = shift;
- my %args = (@_, filename => $self->filename, mode => $self->{MBP_mode});
-
- $self->openFile(\%args)
- or return;
-
- $self->takeFileInfo;
-
- $self->log(PROGRESS => "Opened folder $args{filename} to be parsed");
- $self;
-}
-
-#------------------------------------------
-
-
-sub stop()
-{ my $self = shift;
-
- my $filename = $self->filename;
-
-# $self->log(WARNING => "File $filename changed during access.")
-# if $self->fileChanged;
-
- $self->log(NOTICE => "Close parser for file $filename");
- $self->closeFile;
-}
-
-#------------------------------------------
-
-
-sub restart()
-{ my $self = shift;
- my $filename = $self->filename;
-
- $self->closeFile or return;
-
- $self->openFile( {filename => $filename, mode => $self->{MBP_mode}} )
- or return;
-
- $self->takeFileInfo;
- $self->log(NOTICE => "Restarted parser for file $filename");
- $self;
-}
-
-#------------------------------------------
-
-
-sub fileChanged()
-{ my $self = shift;
- my ($size, $mtime) = (stat $self->filename)[7,9];
- return 0 if !defined $size || !defined $mtime;
- $size != $self->{MBP_size} || $mtime != $self->{MBP_mtime};
-}
-
-#------------------------------------------
-
-
-sub filename() {shift->{MBP_filename}}
-
-#------------------------------------------
-
-
-sub filePosition(;$) {shift->NotImplemented}
-
-#------------------------------------------
-
-
-sub pushSeparator($) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub popSeparator($) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub readSeparator($) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub readHeader() {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub bodyAsString() {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub bodyAsList() {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub bodyAsFile() {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub bodyDelayed() {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub lineSeparator() {shift->{MBP_linesep}}
-
-#------------------------------------------
-
-
-sub openFile(@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub closeFile(@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub takeFileInfo()
-{ my $self = shift;
- @$self{ qw/MBP_size MBP_mtime/ } = (stat $self->filename)[7,9];
-}
-
-#------------------------------------------
-
-
-my $parser_type;
-
-sub defaultParserType(;$)
-{ my $class = shift;
-
- # Select the parser manually?
- if(@_)
- { $parser_type = shift;
- return $parser_type if $parser_type->isa( __PACKAGE__ );
-
- confess "Parser $parser_type does not extend "
- . __PACKAGE__ . "\n";
- }
-
- # Already determined which parser we want?
- return $parser_type if $parser_type;
-
- # Try to use C-based parser.
- eval 'require Mail::Box::Parser::C';
-# warn "C-PARSER errors $@\n" if $@;
-
- return $parser_type = 'Mail::Box::Parser::C'
- unless $@;
-
- # Fall-back on Perl-based parser.
- require Mail::Box::Parser::Perl;
- $parser_type = 'Mail::Box::Parser::Perl';
-}
-
-#------------------------------------------
-
-
-sub DESTROY
-{ my $self = shift;
- $self->stop;
- $self->SUPER::DESTROY;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Parser.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Parser.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,520 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Parser - reading and writing messages
-
-
-=head1 INHERITANCE
-
- Mail::Box::Parser
- is a Mail::Reporter
-
- Mail::Box::Parser is extended by
- Mail::Box::Parser::Perl
-
-
-=head1 SYNOPSIS
-
- # Not instatiatiated itself
-
-
-=head1 DESCRIPTION
-
-The C<Mail::Box::Parser> manages the parsing of folders. Usually, you won't
-need to know anything about this module, except the options which are
-involved with this code.
-
-There are two implementations of this module planned:
-
-=over 4
-
-=item * L<Mail::Box::Parser::Perl|Mail::Box::Parser::Perl>
-
-A slower parser which only uses plain Perl. This module is a bit slower,
-and does less checking and less recovery.
-
-=item * Mail::Box::Parser::C
-
-A fast parser written in C<C>. This package is released as separate
-module on CPAN, because the module distribution via CPAN can not
-handle XS files which are not located in the root directory of the
-module tree. If a C compiler is available on your system, it will be
-used automatically.
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Parser-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a parser object which can handle one file. For
-mbox-like mailboxes, this object can be used to read a whole folder. In
-case of MH-like mailboxes, each message is contained in a single file,
-so each message has its own parser object.
-
- Option Defined in Default
- file undef
- filename <required>
- log L<Mail::Reporter> C<'WARNINGS'>
- mode C<'r'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. file FILE-HANDLE
-
-=over 4
-
-Any C<IO::File> or C<GLOB> which can be used to read the data from. In
-case this option is specified, the C<filename> is informational only.
-
-=back
-
-. filename FILENAME
-
-=over 4
-
-The name of the file to be read.
-
-=back
-
-. log LEVEL
-
-. mode OPENMODE
-
-=over 4
-
-File-open mode, which defaults to C<'r'>, which means `read-only'.
-See C<perldoc -f open> for possible modes. Only applicable
-when no C<file> is specified.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 The parser
-
-
-$obj-E<gt>B<fileChanged>
-
-=over 4
-
-Returns whether the file which is parsed has changed after the last
-time takeFileInfo() was called.
-
-=back
-
-$obj-E<gt>B<filename>
-
-=over 4
-
-Returns the name of the file this parser is working on.
-
-=back
-
-$obj-E<gt>B<restart>
-
-=over 4
-
-Restart the parser on a certain file, usually because the content has
-changed.
-
-=back
-
-$obj-E<gt>B<start>(OPTIONS)
-
-=over 4
-
-Start the parser by opening a file.
-
- Option Defined in Default
- file undef
-
-. file FILEHANDLE|undef
-
-=over 4
-
-The file is already open, for instance because the data must be read
-from STDIN.
-
-=back
-
-=back
-
-$obj-E<gt>B<stop>
-
-=over 4
-
-Stop the parser, which will include a close of the file. The lock on the
-folder will not be removed (is not the responsibility of the parser).
-
-=back
-
-=head2 Parsing
-
-
-$obj-E<gt>B<bodyAsFile>(FILEHANDLE [,CHARS [,LINES]])
-
-=over 4
-
-Try to read one message-body from the file, and immediately write
-it to the specified file-handle. Optionally, the predicted number
-of CHARacterS and/or LINES to be read can be supplied. These values may be
-C<undef> and may be wrong.
-
-The return is a list of three scalars: the location of the body (begin
-and end) and the number of lines in the body.
-
-=back
-
-$obj-E<gt>B<bodyAsList>([,CHARS [,LINES]])
-
-=over 4
-
-Try to read one message-body from the file. Optionally, the predicted number
-of CHARacterS and/or LINES to be read can be supplied. These values may be
-C<undef> and may be wrong.
-
-The return is a list of scalars, each containing one line (including
-line terminator), preceded by two integers representing the location
-in the file where this body started and ended.
-
-=back
-
-$obj-E<gt>B<bodyAsString>([,CHARS [,LINES]])
-
-=over 4
-
-Try to read one message-body from the file. Optionally, the predicted number
-of CHARacterS and/or LINES to be read can be supplied. These values may be
-C<undef> and may be wrong.
-
-The return is a list of three scalars, the location in the file
-where the body starts, where the body ends, and the string containing the
-whole body.
-
-=back
-
-$obj-E<gt>B<bodyDelayed>([,CHARS [,LINES]])
-
-=over 4
-
-Try to read one message-body from the file, but the data is skipped.
-Optionally, the predicted number of CHARacterS and/or LINES to be skipped
-can be supplied. These values may be C<undef> and may be wrong.
-
-The return is a list of four scalars: the location of the body (begin and
-end), the size of the body, and the number of lines in the body. The
-number of lines may be C<undef>.
-
-=back
-
-$obj-E<gt>B<filePosition>([POSITION])
-
-=over 4
-
-Returns the location of the next byte to be used in the file which is
-parsed. When a POSITION is specified, the location in the file is
-moved to the indicated spot first.
-
-=back
-
-$obj-E<gt>B<lineSeparator>
-
-=over 4
-
-Returns the character or characters which are used to separate lines
-in the folder file. This is based on the first line of the file.
-UNIX systems use a single LF to separate lines. Windows uses a CR and
-a LF. Mac uses CR.
-
-=back
-
-$obj-E<gt>B<popSeparator>
-
-=over 4
-
-Remove the last-pushed separator from the list which is maintained by the
-parser. This will return C<undef> when there is none left.
-
-=back
-
-$obj-E<gt>B<pushSeparator>(STRING|REGEXP)
-
-=over 4
-
-Add a boundary line. Separators tell the parser where to stop reading.
-A famous separator is the C<From>-line, which is used in Mbox-like
-folders to separate messages. But also parts (I<attachments>) is a
-message are divided by separators.
-
-The specified STRING describes the start of the separator-line. The
-REGEXP can specify a more complicated format.
-
-=back
-
-$obj-E<gt>B<readHeader>
-
-=over 4
-
-Read the whole message-header and return it as list of field-value
-pairs. Mind that some fields will appear more than once.
-
-The first element will represent the position in the file where the
-header starts. The follows the list of header field names and bodies.
-
-I<Example:>
-
- my ($where, @header) = $parser->readHeader;
-
-=back
-
-$obj-E<gt>B<readSeparator>(OPTIONS)
-
-=over 4
-
-Read the currently active separator (the last one which was pushed). The
-line (or C<undef>) is returned. Blank-lines before the separator lines
-are ignored.
-
-The return are two scalars, where the first gives the location of the
-separator in the file, and the second the line which is found as
-separator. A new separator is activated using L<pushSeparator()|Mail::Box::Parser/"Parsing">.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<closeFile>
-
-=over 4
-
-Close the file which was being parsed.
-
-=back
-
-$obj-E<gt>B<defaultParserType>([CLASS])
-
-Mail::Box::Parser-E<gt>B<defaultParserType>([CLASS])
-
-=over 4
-
-Returns the parser to be used to parse all subsequent
-messages, possibly first setting the parser using the optional argument.
-Usually, the parser is autodetected; the C<C>-based parser will be used
-when it can be, and the Perl-based parser will be used otherwise.
-
-The CLASS argument allows you to specify a package name to force a
-particular parser to be used (such as your own custom parser). You have
-to C<use> or C<require> the package yourself before calling this method
-with an argument. The parser must be a sub-class of C<Mail::Box::Parser>.
-
-=back
-
-$obj-E<gt>B<openFile>(ARGS)
-
-=over 4
-
-Open the file to be parsed. ARGS is a ref-hash of options.
-
- Option Defined in Default
- filename <required>
- mode <required>
-
-. filename FILENAME
-
-. mode STRING
-
-=back
-
-$obj-E<gt>B<takeFileInfo>
-
-=over 4
-
-Capture some data about the file being parsed, to be compared later.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Parser-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Parser-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Parser-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> File $filename changed during access.
-
-When a message parser starts working, it takes size and modification time
-of the file at hand. If the folder is written, it checks wether there
-were changes in the file made by external programs.
-
-Calling L<Mail::Box::update()|Mail::Box/"The folder"> on a folder before it being closed
-will read these new messages. But the real source of this problem is
-locking: some external program (for instance the mail transfer agent,
-like sendmail) uses a different locking mechanism as you do and therefore
-violates your rights.
-
-I<Error:> Filename or handle required to create a parser.
-
-A message parser needs to know the source of the message at creation. These
-sources can be a filename (string), file handle object or GLOB.
-See new(filename) and new(file).
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Parser.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Parser.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Search/Grep.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,165 +0,0 @@
-
-package Mail::Box::Search::Grep;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Search';
-
-use strict;
-use warnings;
-
-use Carp;
-
-#-------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{in} ||= ($args->{field} ? 'HEAD' : 'BODY');
-
- my $deliver = $args->{deliver} || $args->{details}; # details is old name
- $args->{deliver}
- = !defined $deliver ? $deliver
- : ref $deliver eq 'CODE' ? $deliver
- : $deliver eq 'PRINT' ? sub { $_[0]->printMatch($_[1]) }
- : ref $deliver eq 'ARRAY' ? sub { push @$deliver, $_[1] }
- : $deliver;
-
- $self->SUPER::init($args);
-
- my $take = $args->{field};
- $self->{MBSG_field_check}
- = !defined $take ? sub {1}
- : !ref $take ? do {$take = lc $take; sub { $_[1] eq $take }}
- : ref $take eq 'Regexp' ? sub { $_[1] =~ $take }
- : ref $take eq 'CODE' ? $take
- : croak "Illegal field selector $take.";
-
- my $match = $args->{match}
- or croak "No match pattern specified.\n";
- $self->{MBSG_match_check}
- = !ref $match ? sub { index("$_[1]", $match) >= $[ }
- : ref $match eq 'Regexp' ? sub { "$_[1]" =~ $match }
- : ref $match eq 'CODE' ? $match
- : croak "Illegal match pattern $match.";
-
- $self;
-}
-
-#-------------------------------------------
-
-sub search(@)
-{ my ($self, $object, %args) = @_;
- delete $self->{MBSG_last_printed};
- $self->SUPER::search($object, %args);
-}
-
-#-------------------------------------------
-
-sub inHead(@)
-{ my ($self, $part, $head, $args) = @_;
-
- my @details = (message => $part->toplevel, part => $part);
- my ($field_check, $match_check, $deliver)
- = @$self{ qw/MBSG_field_check MBSG_match_check MBS_deliver/ };
-
- my $matched = 0;
- LINES:
- foreach my $field ($head->orderedFields)
- { next unless $field_check->($head, $field->name)
- && $match_check->($head, $field);
-
- $matched++;
- last LINES unless $deliver; # no deliver: only one match needed
- $deliver->( {@details, field => $field} );
- }
-
- $matched;
-}
-
-
-#-------------------------------------------
-
-sub inBody(@)
-{ my ($self, $part, $body, $args) = @_;
-
- my @details = (message => $part->toplevel, part => $part);
- my ($field_check, $match_check, $deliver)
- = @$self{ qw/MBSG_field_check MBSG_match_check MBS_deliver/ };
-
- my $matched = 0;
- my $linenr = 0;
-
- LINES:
- foreach my $line ($body->lines)
- { $linenr++;
- next unless $match_check->($body, $line);
-
- $matched++;
- last LINES unless $deliver; # no deliver: only one match needed
- $deliver->( {@details, linenr => $linenr, line => $line} );
- }
-
- $matched;
-}
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-sub printMatch($;$)
-{ my $self = shift;
- my ($out, $match) = @_==2 ? @_ : (select, shift);
-
- $match->{field}
- ? $self->printMatchedHead($out, $match)
- : $self->printMatchedBody($out, $match)
-}
-
-#-------------------------------------------
-
-
-sub printMatchedHead($$)
-{ my ($self, $out, $match) = @_;
- my $message = $match->{message};
- my $msgnr = $message->seqnr;
- my $folder = $message->folder->name;
- my $lp = $self->{MBSG_last_printed} || '';
-
- unless($lp eq "$folder $msgnr") # match in new message
- { my $subject = $message->subject;
- $out->print("$folder, message $msgnr: $subject\n");
- $self->{MBSG_last_printed} = "$folder $msgnr";
- }
-
- my @lines = $match->{field}->string;
- my $inpart = $match->{part}->isPart ? 'p ' : ' ';
- $out->print($inpart, join $inpart, @lines);
- $self;
-}
-
-#-------------------------------------------
-
-
-sub printMatchedBody($$)
-{ my ($self, $out, $match) = @_;
- my $message = $match->{message};
- my $msgnr = $message->seqnr;
- my $folder = $message->folder->name;
- my $lp = $self->{MBSG_last_printed} || '';
-
- unless($lp eq "$folder $msgnr") # match in new message
- { my $subject = $message->subject;
- $out->print("$folder, message $msgnr: $subject\n");
- $self->{MBSG_last_printed} = "$folder $msgnr";
- }
-
- my $inpart = $match->{part}->isPart ? 'p ' : ' ';
- $out->print(sprintf "$inpart %2d: %s", $match->{linenr}, $match->{line});
- $self;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Search/Grep.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Search/Grep.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,377 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Search::Grep - select messages within a mail box like grep does
-
-
-=head1 INHERITANCE
-
- Mail::Box::Search::Grep
- is a Mail::Box::Search
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open('Inbox');
-
- my $filter = Mail::Box::Search::Grep->new
- ( label => 'selected'
- , in => 'BODY', match => qr/abc?d*e/
- );
-
- my @msgs = $filter->search($folder);
-
- my $filter = Mail::Box::Search::Grep->new
- ( field => 'To'
- , match => $my_email
- );
-
- if($filter->search($message)) {...}
-
-
-=head1 DESCRIPTION
-
-Try to find some text strings in the header and footer of messages. Various
-ways to limit the search to certain header fields, the whole header, only
-the body, the whole message, but even binary multiparts, are provided for.
-
-The name I<grep> is derived from the UNIX tool I<grep>, which means: "Get
-Regular Expression and Print". Although you can search using regular
-expressions (the Perl way of them), you do not have to print those as
-result.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Search::Grep-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a UNIX-grep like search filter.
-
- Option Defined in Default
- binaries L<Mail::Box::Search> <false>
- decode L<Mail::Box::Search> <true>
- delayed L<Mail::Box::Search> <true>
- deleted L<Mail::Box::Search> <false>
- deliver undef
- field undef
- in L<Mail::Box::Search> <$field ? C<'HEAD'> : C<'BODY'>>
- label L<Mail::Box::Search> undef
- limit L<Mail::Box::Search> C<0>
- log L<Mail::Reporter> C<'WARNINGS'>
- logical L<Mail::Box::Search> C<'REPLACE'>
- match <required>
- multiparts L<Mail::Box::Search> <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. binaries BOOLEAN
-
-. decode BOOLEAN
-
-. delayed BOOLEAN
-
-. deleted BOOLEAN
-
-. deliver undef|CODE|'DELETE'|LABEL|'PRINT'|REF-ARRAY
-
-=over 4
-
-Store the details about where the match was found. The search may take
-much longer when this feature is enabled.
-
-When an ARRAY is specified it will contain a list of references to hashes.
-Each hash contains the information of one match. A match in a header
-line will result in a line with fields C<message>, C<part>, and C<field>, where
-the field is a L<Mail::Message::Field|Mail::Message::Field> object. When the match is in
-the body the hash will contain a C<message>, C<part>, C<linenr>, and C<line>.
-
-In case of a CODE reference, that routine is called for each match. The
-first argument is this search object and the second a reference to same
-hash as would be stored in the array.
-
-The C<PRINT> will call L<printMatchedHead()|Mail::Box::Search::Grep/"The Results"> or L<printMatchedBody()|Mail::Box::Search::Grep/"The Results"> when
-any matching header resp body line was found. The output is minimized
-by not reprinting the message info on multiple matches in the same
-message.
-
-C<DELETE> will flag
-the message to be deleted in case of a match. When a multipart's part
-is matched, the whole message will be flagged for deletion.
-
-=back
-
-. field undef|STRING|REGEX|CODE
-
-=over 4
-
-Not valid in combination with C<in> set to C<BODY>.
-The STRING is one full field name (case-insensitive). Use a REGEX
-to select more than one header line to be scanned. CODE is a routine which
-is called for each field in the header. The CODE is called with the header
-as first, and the field as second argument. If the CODE returns true, the
-message is selected.
-
-=back
-
-. in 'HEAD'|'BODY'|'MESSAGE'
-
-. label STRING
-
-. limit NUMBER
-
-. log LEVEL
-
-. logical 'REPLACE'|'AND'|'OR'|'NOT'|'AND NOT'|'OR NOT'
-
-. match STRING|REGEX|CODE
-
-=over 4
-
-The pattern to be search for can be a REGular EXpression, or a STRING. In
-both cases, the match succeeds if it is found anywhere within the selected
-fields.
-
-With a CODE reference, that function will be called each field or body-line.
-When the result is true, the details are delivered. The call formats are
-
- $code->($head, $field); # for HEAD searches
- $code->($body, $linenr, $line); # for BODY searches
-
-The C<$head> resp C<$body> are one message's head resp. body object. The
-C<$field> is a header line which matches. The C<$line> and C<$linenr>
-tell the matching line in the body.
-
-Be warned that when you search in C<MESSAGE> the code must accept
-both formats.
-
-=back
-
-. multiparts BOOLEAN
-
-. trace LEVEL
-
-=back
-
-=head2 Searching
-
-
-$obj-E<gt>B<inBody>(PART, BODY)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<inHead>(PART, HEAD)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<search>(FOLDER|THREAD|MESSAGE|ARRAY-OF-MESSAGES)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<searchPart>(PART)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-=head2 The Results
-
-
-$obj-E<gt>B<printMatch>([FILEHANDLE], HASH)
-
-=over 4
-
-See L<Mail::Box::Search/"The Results">
-
-=back
-
-$obj-E<gt>B<printMatchedBody>(FILEHANDLE, MATCH)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<printMatchedHead>(FILEHANDLE, MATCH)
-
-=over 4
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Search::Grep-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Search::Grep-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Search::Grep-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/Grep.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Search/Grep.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Search/SpamAssassin.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,72 +0,0 @@
-
-package Mail::Box::Search::SpamAssassin;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Search';
-
-use strict;
-use warnings;
-
-use Mail::SpamAssassin;
-use Mail::Message::Wrapper::SpamAssassin;
-
-#-------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{in} ||= 'MESSAGE';
- $args->{label} = 'spam' unless exists $args->{label};
-
- $self->SUPER::init($args);
-
- $self->{MBSS_rewrite_mail}
- = defined $args->{rewrite_mail} ? $args->{rewrite_mail} : 1;
-
- $self->{MBSS_sa}
- = defined $args->{spamassassin} ? $args->{spamassassin}
- : Mail::SpamAssassin->new($args->{sa_options} || {});
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub assassinator() { shift->{MBSS_sa} }
-
-#-------------------------------------------
-
-sub searchPart($)
-{ my ($self, $message) = @_;
-
- my @details = (message => $message);
-
- my $sa = Mail::Message::Wrapper::SpamAssassin->new($message)
- or return;
-
- my $status = $self->assassinator->check($sa);
-
- my $is_spam = $status->is_spam;
- $status->rewrite_mail if $self->{MBSS_rewrite_mail};
-
- if($is_spam)
- { my $deliver = $self->{MBS_deliver};
- $deliver->( {@details, status => $status} ) if defined $deliver;
- }
-
- $is_spam;
-}
-
-#-------------------------------------------
-
-sub inHead(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-sub inBody(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Search/SpamAssassin.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Search/SpamAssassin.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,365 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Search::SpamAssassin - select spam messages with Mail::SpamAssassin
-
-
-=head1 INHERITANCE
-
- Mail::Box::Search::SpamAssassin
- is a Mail::Box::Search
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open('Inbox');
-
- my $spam = Mail::Box::Search::SpamAssassin->new;
- if($spam->search($message)) {...}
-
- my @msgs = $filter->search($folder);
- foreach my $msg ($folder->messages)
- { $msg->delete if $msg->label('spam');
- }
-
- my $spam2 = Mail::Box::Search::SpamAssassin
- ->new(deliver => 'DELETE');
- $spam2->search($folder);
- $mgr->moveMessages($spamfolder, $folder->messages('spam'));
-
-
-=head1 DESCRIPTION
-
-I<Spam> means "unsollicited e-mail", and is as name derived from a
-Monty Python scatch. Although Monty Python is fun, spam is a pain:
-it needlessly spoils minutes of time from most people: telephone
-bills, overful mailboxes which block honest e-mail, and accidentally
-removal of honest e-mail which looks like spam. Spam is the pest
-of Internet.
-
-Happily, Mail::Box can be used as spam filter, in combination with
-the useful Mail::SpamAssassin module (which must be installed separately).
-Each message which is searched is wrapped in a
-L<Mail::Message::Wrapper::SpamAssassin|Mail::Message::Wrapper::SpamAssassin> object.
-
-The spam-assassin module version 2 is not really well adapted for
-L<Mail::Message|Mail::Message> objects, which will make this search even slower than
-spam-detection already is.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Search::SpamAssassin-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a spam filter. Internally, a Mail::SpamAssassin object is
-maintained.
-
-Only the whole message can be searched; this is a limitation of
-the Mail::SpamAssassin module.
-
- Option Defined in Default
- binaries L<Mail::Box::Search> <false>
- decode L<Mail::Box::Search> <true>
- delayed L<Mail::Box::Search> <true>
- deleted L<Mail::Box::Search> <false>
- deliver L<Mail::Box::Search> undef
- in L<Mail::Box::Search> C<'MESSAGE'>
- label c<'spam'>
- limit L<Mail::Box::Search> C<0>
- log L<Mail::Reporter> C<'WARNINGS'>
- logical L<Mail::Box::Search> C<'REPLACE'>
- multiparts L<Mail::Box::Search> <true>
- rewrite_mail <true>
- sa_options C<{ }>
- spam_assassin undef
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. binaries BOOLEAN
-
-. decode BOOLEAN
-
-. delayed BOOLEAN
-
-. deleted BOOLEAN
-
-. deliver undef|CODE|'DELETE'
-
-. in 'HEAD'|'BODY'|'MESSAGE'
-
-. label STRING|undef
-
-=over 4
-
-Mark all selected message with the specified STRING. If this
-option is explicitly set to C<undef>, the label will not be set.
-
-=back
-
-. limit NUMBER
-
-. log LEVEL
-
-. logical 'REPLACE'|'AND'|'OR'|'NOT'|'AND NOT'|'OR NOT'
-
-. multiparts BOOLEAN
-
-. rewrite_mail BOOLEAN
-
-=over 4
-
-Add lines to the message header describing the results of the spam
-scan. See Mail::SpamAssassin::PerMsgStatus subroutine rewrite_mail.
-
-=back
-
-. sa_options HASH
-
-=over 4
-
-Options to create the internal Mail::SpamAssassin object; see its
-manual page for the available options. Other setting may be provided
-via SpamAssassins configuration file mechanism, which is explained in
-L<Mail::SpamAssassin::Conf>.
-
-=back
-
-. spam_assassin OBJECT
-
-=over 4
-
-Provide a Mail::SpamAssassin object to be used for searching spam. If
-none is specified, one is created internally. The object can be
-retreived with assassinator().
-
-=back
-
-. trace LEVEL
-
-I<Example:>
-
- my $filter = Mail::Box::Search::SpamAssassin
- ->new( found => 'DELETE' );
-
-=back
-
-=head2 Searching
-
-
-$obj-E<gt>B<assassinator>
-
-=over 4
-
-Returns the internally maintained assassinator object. You may want
-to reach this object for complex configuration.
-
-=back
-
-$obj-E<gt>B<inBody>(PART, BODY)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<inHead>(PART, HEAD)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<search>(FOLDER|THREAD|MESSAGE|ARRAY-OF-MESSAGES)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<searchPart>(PART)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-=head2 The Results
-
-
-$obj-E<gt>B<printMatch>([FILEHANDLE], HASH)
-
-=over 4
-
-See L<Mail::Box::Search/"The Results">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Search::SpamAssassin-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Search::SpamAssassin-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Search::SpamAssassin-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search/SpamAssassin.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Search/SpamAssassin.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Search.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,174 +0,0 @@
-
-package Mail::Box::Search;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use strict;
-use warnings;
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- my $in = $args->{in} || 'BODY';
- @$self{ qw/MBS_check_head MBS_check_body/ }
- = $in eq 'BODY' ? (0,1)
- : $in eq 'HEAD' ? (1,0)
- : $in eq 'MESSAGE' ? (1,1)
- : ($self->log(ERROR => "Search in BODY, HEAD or MESSAGE not $in."), return);
-
- $self->log(ERROR => "Cannot search in header."), return
- if $self->{MBS_check_head} && !$self->can('inHead');
-
- $self->log(ERROR => "Cannot search in body."), return
- if $self->{MBS_check_body} && !$self->can('inBody');
-
- my $deliver = $args->{deliver};
- $self->{MBS_deliver}
- = ref $deliver eq 'CODE' ? sub { $deliver->($self, $_[0]) }
- : !defined $deliver ? undef
- : $deliver eq 'DELETE'
- ? sub {$_[0]->{part}->toplevel->label(deleted => 1)}
- : $self->log(ERROR => "Don't know how to deliver results in $deliver.");
-
- my $logic = $args->{logical} || 'REPLACE';
- $self->{MBS_negative} = $logic =~ s/\s*NOT\s*$//;
- $self->{MBS_logical} = $logic;
-
- $self->{MBS_label} = $args->{label};
- $self->{MBS_binaries} = $args->{binaries} || 0;
- $self->{MBS_limit} = $args->{limit} || 0;
- $self->{MBS_decode} = $args->{decode} || 1;
- $self->{MBS_no_deleted} = not $args->{deleted};
- $self->{MBS_delayed} = defined $args->{delayed} ? $args->{delayed} : 1;
- $self->{MBS_multiparts}
- = defined $args->{multiparts} ? $args->{multiparts} : 1;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub search(@)
-{ my ($self, $object) = @_;
-
- my $label = $self->{MBS_label};
- my $limit = $self->{MBS_limit};
-
- my @messages
- = ref $object eq 'ARRAY' ? @$object
- : $object->isa('Mail::Box') ? $object->messages
- : $object->isa('Mail::Message') ? ($object)
- : $object->isa('Mail::Box::Thread::Node') ? $object->threadMessages
- : croak "Expect messages to search, not $object.";
-
- my $take = 0;
- if($limit < 0) { $take = -$limit; @messages = reverse @messages }
- elsif($limit > 0) { $take = $limit }
- elsif(!defined $label && !wantarray && !$self->{MBS_deliver}) {$take = 1 }
-
- my $logic = $self->{MBS_logical};
- my @selected;
- my $count = 0;
-
- foreach my $message (@messages)
- { next if $self->{MBS_no_deleted} && $message->isDeleted;
- next unless $self->{MBS_delayed} || !$message->isDelayed;
-
- my $set = defined $label ? $message->label($label) : 0;
-
- my $selected
- = $set && $logic eq 'OR' ? 1
- : !$set && $logic eq 'AND' ? 0
- : $self->{MBS_negative} ? ! $self->searchPart($message)
- : $self->searchPart($message);
-
- $message->label($label => $selected) if defined $label;
- if($selected)
- { push @selected, $message;
- $count++;
- last if $take && $count == $take;
- }
- }
-
- $limit < 0 ? reverse @selected : @selected;
-}
-
-
-#-------------------------------------------
-
-
-sub searchPart($)
-{ my ($self, $part) = @_;
-
- my $matched = 0;
- $matched = $self->inHead($part, $part->head)
- if $self->{MBS_check_head};
-
- return $matched unless $self->{MBS_check_body};
- return $matched if $matched && !$self->{MBS_deliver};
-
- my $body = $part->body;
- my @bodies;
-
- # Handle multipart parts.
-
- if($body->isMultipart)
- { return $matched unless $self->{MBS_multiparts};
- my $no_delayed = not $self->{MBS_delayed};
- @bodies = ($body->preamble, $body->epilogue);
-
- foreach my $piece ($body->parts)
- { next unless defined $piece;
- next if $no_delayed && $piece->isDelayed;
-
- $matched += $self->searchPart($piece);
- return $matched if $matched && !$self->{MBS_deliver};
- }
- }
- elsif($body->isNested)
- { return $matched unless $self->{MBS_multiparts};
- $matched += $self->searchPart($body->nested);
- }
- else
- { @bodies = ($body);
- }
-
- # Handle normal bodies.
-
- foreach (@bodies)
- { next unless defined $_;
- next if !$self->{MBS_binaries} && $_->isBinary;
- my $body = $self->{MBS_decode} ? $_->decoded : $_;
- my $inbody = $self->inBody($part, $body);
- $matched += $inbody;
- }
-
- $matched;
-}
-
-#-------------------------------------------
-
-
-sub inHead(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub inBody(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub printMatch($) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Search.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Search.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,447 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Search - select messages within a mail box
-
-
-=head1 INHERITANCE
-
- Mail::Box::Search
- is a Mail::Reporter
-
- Mail::Box::Search is extended by
- Mail::Box::Search::Grep
- Mail::Box::Search::SpamAssassin
- Mail::Server::IMAP4::Search
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open('Inbox');
-
- my $filter = Mail::Box::Search::[something]->new;
- my @msgs = $filter->search($folder, ...);
- if($filter->search($message)) {...}
-
-
-=head1 DESCRIPTION
-
-This C<Mail::Box::Search> class is the base class for various message scan
-algorithms. The selected messages can be labeled. Boolean operations on
-messages are supported.
-
-Currently implemented searches:
-
-=over 4
-
-=item L<Mail::Box::Search::Grep|Mail::Box::Search::Grep>
-
-Match header or body against a regular expression in a UNIX C<grep> like
-fashion.
-
-=item L<Mail::Box::Search::SpamAssassin|Mail::Box::Search::SpamAssassin>
-
-Try to detect spam, using Mail::SpamAssassin.
-
-=item Mail::Box::Search::IMAP
-
-Search an IMAP folder for special interface IMAP folders provide for it.
-UNDER CONSTRUCTION till L<Mail::Transport::IMAP4|Mail::Transport::IMAP4> is complete.
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Search-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a filter.
-
- Option Defined in Default
- binaries <false>
- decode <true>
- delayed <true>
- deleted <false>
- deliver undef
- in C<'BODY'>
- label undef
- limit C<0>
- log L<Mail::Reporter> C<'WARNINGS'>
- logical C<'REPLACE'>
- multiparts <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. binaries BOOLEAN
-
-=over 4
-
-Whether to include binary bodies in the search.
-
-=back
-
-. decode BOOLEAN
-
-=over 4
-
-Decode the messages before the search takes place. Even plain text messages
-can be encoded, for instance as C<quoted-printable>, which may disturb the
-results. However, decoding will slow-down the search.
-
-=back
-
-. delayed BOOLEAN
-
-=over 4
-
-Include the delayed messages (which will be parsed) in the search. If you
-set this to false, you may find fewer hits.
-
-=back
-
-. deleted BOOLEAN
-
-=over 4
-
-In most cases, you will not be interested in results which are
-found in messages flagged to be deleted. However, with this option
-you can specify you want them to be searched too.
-
-=back
-
-. deliver undef|CODE|'DELETE'
-
-=over 4
-
-The exact functionality of this parameter differs per search method, so
-read the applicable man-page. In any case C<undef> means that details
-are not collected for this search, which is the fastest search.
-
-C<DELETE> will flag the message to be flagged for deletion.
-You may also specify your own CODE reference. With an reference
-to an array, the information about the matches is collected as a list
-of hashes, one hash per match.
-
-=back
-
-. in 'HEAD'|'BODY'|'MESSAGE'
-
-=over 4
-
-Where to look for the match.
-
-=back
-
-. label STRING
-
-=over 4
-
-Mark all selected messages with the specified STRING. If this field is
-not specified, the message will not get a label; search() also returns
-a list of selected messages.
-
-=back
-
-. limit NUMBER
-
-=over 4
-
-Limit the search to the specified NUMBER of messages. When the NUMBER
-is positive, the search starts at the first message in the folder or
-thread. A negative NUMBER starts at the end of the folder. If the limit
-is set to zero, there is no limit.
-
-=back
-
-. log LEVEL
-
-. logical 'REPLACE'|'AND'|'OR'|'NOT'|'AND NOT'|'OR NOT'
-
-=over 4
-
-Only applicable in combination with a C<label>.
-How to handle the existing labels. In case of C<REPLACE>, messages
-which already are carrying the label are stripped from their
-selection (unless they match again). With C<AND>, the message must
-be selected by this search and already carry the label, otherwise the
-label will not be set. Specify C<OR> to have newly selected messages
-added to the set of already selected messages.
-
-C<NOT> is true for messages which do not fulfil the search. The
-details output will still contain the places where the match was
-found, however those messages will complementary set of messages will
-be labeled and returned.
-
-=back
-
-. multiparts BOOLEAN
-
-=over 4
-
-Are multiparts to be included in the search results? Some MUA have
-problems handling details received from the search. When this flag
-is turned off, the body of multiparts will be ignored. The parts
-search will include the preamble and epilogue.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 Searching
-
-
-$obj-E<gt>B<inBody>(PART, BODY)
-
-=over 4
-
-Tests whether body contains the requesting information. See the
-specific search module for its parameters.
-
-=back
-
-$obj-E<gt>B<inHead>(PART, HEAD)
-
-=over 4
-
-Tests whether header contains the requesting information. See the
-specific search module for its parameters.
-
-=back
-
-$obj-E<gt>B<search>(FOLDER|THREAD|MESSAGE|ARRAY-OF-MESSAGES)
-
-=over 4
-
-Check which messages from the FOLDER (Mail::Box) match the
-search parameters. The matched messages are returned as list. You
-can also specify a THREAD (a L<Mail::Box::Thread::Node|Mail::Box::Thread::Node>), one single
-MESSAGE (a L<Mail::Message|Mail::Message>), or an array of messages.
-
-Sometimes we know how only one match is needed. In this case, this
-searching will stop at the first match. For instance, when C<limit> is C<-1>
-or C<1>, or when the search in done in scalar context.
-
-I<Example:>
-
- my $grep = Mail::Box::Search::Grep->new
- ( match => 'My Name Is Nobody'
- , deliver => 'PRINT'
- );
-
- $grep->search($folder);
-
- my $message = $folder->message(3);
- $grep->search($message);
-
- my $thread = $message->threadStart;
- $grep->search($thread);
-
-=back
-
-$obj-E<gt>B<searchPart>(PART)
-
-=over 4
-
-Search this message PART for matches.
-
-=back
-
-=head2 The Results
-
-
-$obj-E<gt>B<printMatch>([FILEHANDLE], HASH)
-
-=over 4
-
-Print the information about the match (see L<new(deliver)|Mail::Box::Search/"METHODS">) in
-some understandable way. If no file handle
-is specified, the output will go to the selected filehandle (see
-C<perldoc -f select>).
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Search-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Search-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Search-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot search in body.
-
-Th search object does not implement L<inBody()|Mail::Box::Search/"Searching">, and can therefore
-not search a message body.
-
-I<Error:> Cannot search in header.
-
-Th search object does not implement L<inHead()|Mail::Box::Search/"Searching">, and can therefore
-not search a message header.
-
-I<Error:> Don't know how to deliver via results in $way.
-
-The search results cannot be delivered in the specific way, because that is
-not a defined alternative.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Search in BODY, HEAD or MESSAGE not $in.
-
-The C<in> option defines only three names.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Search.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Search.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Manager.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,367 +0,0 @@
-
-use strict;
-package Mail::Box::Thread::Manager;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Carp;
-use Mail::Box::Thread::Node;
-use Mail::Message::Dummy;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->{MBTM_manager} = $args->{manager}
- or croak "Need a manager to work with.";
-
- $self->{MBTM_thread_body}= $args->{thread_body}|| 0;
- $self->{MBTM_thread_type}= $args->{thread_type}||'Mail::Box::Thread::Node';
- $self->{MBTM_dummy_type} = $args->{dummy_type} ||'Mail::Message::Dummy';
-
- for($args->{timespan} || '3 days')
- { $self->{MBTM_timespan} = $_ eq 'EVER' ? 'EVER'
- : Mail::Box->timespan2seconds($_);
- }
-
- for($args->{window} || 10)
- { $self->{MBTM_window} = $_ eq 'ALL' ? 'ALL' : $_;
- }
- $self;
-}
-
-#-------------------------------------------
-
-
-sub folders() { values %{shift->{MBTM_folders}} }
-
-#-------------------------------------------
-
-
-sub includeFolder(@)
-{ my $self = shift;
-
- foreach my $folder (@_)
- { croak "Not a folder: $folder"
- unless ref $folder && $folder->isa('Mail::Box');
-
- my $name = $folder->name;
- next if exists $self->{MBTM_folders}{$name};
-
- $self->{MBTM_folders}{$name} = $folder;
- foreach my $msg ($folder->messages)
- { $self->inThread($msg) unless $msg->head->isDelayed;
- }
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub removeFolder(@)
-{ my $self = shift;
-
- foreach my $folder (@_)
- { croak "Not a folder: $folder"
- unless ref $folder && $folder->isa('Mail::Box');
-
- my $name = $folder->name;
- next unless exists $self->{MBTM_folders}{$name};
-
- delete $self->{MBTM_folders}{$name};
-
- $_->headIsRead && $self->outThread($_)
- foreach $folder->messages;
-
- $self->{MBTM_cleanup_needed} = 1;
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub thread($)
-{ my ($self, $message) = @_;
- my $msgid = $message->messageId;
- my $timestamp = $message->timestamp;
-
- $self->_process_delayed_nodes;
- my $thread = $self->{MBTM_ids}{$msgid} || return;
-
- my @missing;
- $thread->recurse
- ( sub { my $node = shift;
- push @missing, $node->messageId if $node->isDummy;
- 1;
- }
- );
-
- return $thread unless @missing;
-
- foreach my $folder ($self->folders)
- {
- # Pull-in all messages received after this-one, from any folder.
- my @now_missing = $folder->scanForMessages
- ( $msgid
- , [ @missing ]
- , $timestamp - 3600 # some clocks are wrong.
- , 0
- );
-
- if(@now_missing != @missing)
- { $self->_process_delayed_nodes;
- last unless @now_missing;
- @missing = @now_missing;
- }
- }
-
- $thread;
-}
-
-#-------------------------------------------
-
-
-sub threadStart($)
-{ my ($self, $message) = @_;
-
- my $thread = $self->thread($message) || return;
-
- while(my $parent = $thread->repliedTo)
- { unless($parent->isDummy)
- { # Message already found no special action to be taken.
- $thread = $parent;
- next;
- }
-
- foreach ($self->folders)
- { last unless $_->scanForMessages
- ( $thread->messageId
- , $parent->messageId
- , $thread->message->timestamp - $self->{MBTM_timespan}
- , $self->{MBTM_window}
- );
- }
-
- $self->_process_delayed_nodes;
- $thread = $parent;
- }
-
- $thread;
-}
-
-#-------------------------------------------
-
-
-sub all()
-{ my $self = shift;
- $_->find('not-existing') for $self->folders;
- $self->known;
-}
-
-#-------------------------------------------
-
-
-sub sortedAll(@)
-{ my $self = shift;
- $_->find('not-existing') for $self->folders;
- $self->sortedKnown(@_);
-}
-
-#-------------------------------------------
-
-
-sub known()
-{ my $self = shift->_process_delayed_nodes->_cleanup;
- grep {!defined $_->repliedTo} values %{$self->{MBTM_ids}};
-}
-
-#-------------------------------------------
-
-
-sub sortedKnown(;$$)
-{ my $self = shift;
- my $prepare = shift || sub {shift->startTimeEstimate||0};
- my $compare = shift || sub {(shift) <=> (shift)};
-
- # Special care for double keys.
- my %value;
- push @{$value{$prepare->($_)}}, $_ foreach $self->known;
- map { @{$value{$_}} } sort {$compare->($a, $b)} keys %value;
-}
-
-# When a whole folder is removed, many threads can become existing
-# only of dummies. They must be removed.
-
-sub _cleanup()
-{ my $self = shift;
- return $self unless $self->{MBTM_cleanup_needed};
-
- foreach ($self->known)
- { my $real = 0;
- $_->recurse
- ( sub { my $node = shift;
- foreach ($node->messages)
- { next if $_->isDummy;
- $real = 1;
- return 0;
- }
- 1;
- }
- );
-
- next if $real;
-
- $_->recurse
- ( sub { my $node = shift;
- my $msgid = $node->messageId;
- delete $self->{MBTM_ids}{$msgid};
- 1;
- }
- );
- }
-
- delete $self->{MBTM_cleanup_needed};
- $self;
-}
-
-#-------------------------------------------
-
-
-sub toBeThreaded($@)
-{ my ($self, $folder) = (shift, shift);
- return $self unless exists $self->{MBTM_folders}{$folder->name};
- $self->inThread($_) foreach @_;
- $self;
-}
-
-#-------------------------------------------
-
-
-sub toBeUnthreaded($@)
-{ my ($self, $folder) = (shift, shift);
- return $self unless exists $self->{MBTM_folders}{$folder->name};
- $self->outThread($_) foreach @_;
- $self;
-}
-
-#-------------------------------------------
-
-
-sub inThread($)
-{ my ($self, $message) = @_;
- my $msgid = $message->messageId;
- my $node = $self->{MBTM_ids}{$msgid};
-
- # Already known, but might reside in many folders.
- if($node) { $node->addMessage($message) }
- else
- { $node = Mail::Box::Thread::Node->new(message => $message
- , msgid => $msgid, dummy_type => $self->{MBTM_dummy_type}
- );
- $self->{MBTM_ids}{$msgid} = $node;
- }
-
- $self->{MBTM_delayed}{$msgid} = $node; # removes doubles.
-}
-
-# The relation between nodes is delayed, to avoid that first
-# dummy nodes have to be made, and then immediately upgrades
-# to real nodes. So: at first we inventory what we have, and
-# then build thread-lists.
-
-sub _process_delayed_nodes()
-{ my $self = shift;
- return $self unless $self->{MBTM_delayed};
-
- foreach my $node (values %{$self->{MBTM_delayed}})
- { $self->_process_delayed_message($node, $_)
- foreach $node->message;
- }
-
- delete $self->{MBTM_delayed};
- $self;
-}
-
-sub _process_delayed_message($$)
-{ my ($self, $node, $message) = @_;
- my $msgid = $message->messageId;
- my $head = $message->head; # will force parsing of head when not
- # done yet.
-
- my $replies;
- if(my $irt = $head->get('in-reply-to'))
- { for($irt =~ m/\<([^>]*)\>/)
- { my $msgid = $1;
- $msgid =~ s/\s+//g;
- $replies = $self->{MBTM_ids}{$msgid} || $self->createDummy($msgid);
- }
- }
-
- my @refs;
- if(my $refs = $head->get('references'))
- { while($refs =~ s/\<([^>]*)\>//s)
- { my $msgid = $1;
- $msgid =~ s/\s//gs;
- push @refs, $self->{MBTM_ids}{$msgid} || $self->createDummy($msgid);
- }
- }
-
- # Handle the `In-Reply-To' message header.
- # This is the most secure relationship.
-
- if($replies)
- { $node->follows($replies, 'REPLY')
- and $replies->followedBy($node);
- }
-
- # Handle the `References' message header.
- # The (ordered) list of message-IDs give an impression where this
- # message resides in the thread. There is a little less certainty
- # that the list is correctly ordered and correctly maintained.
-
- if(@refs)
- { push @refs, $node unless $refs[-1] eq $node;
- my $from = shift @refs;
-
- while(my $to = shift @refs)
- { $to->follows($from, 'REFERENCE')
- and $from->followedBy($to);
- $from = $to;
- }
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub outThread($)
-{ my ($self, $message) = @_;
- my $msgid = $message->messageId;
- my $node = $self->{MBTM_ids}{$msgid} or return $message;
-
- $node->{MBTM_messages}
- = [ grep {$_ ne $message} @{$node->{MBTM_messages}} ];
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub createDummy($)
-{ my ($self, $msgid) = @_;
- $self->{MBTM_ids}{$msgid} = $self->{MBTM_thread_type}->new
- (msgid => $msgid, dummy_type => $self->{MBTM_dummy_type});
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Manager.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Manager.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,579 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Thread::Manager - maintain threads within a set of folders
-
-
-=head1 INHERITANCE
-
- Mail::Box::Thread::Manager
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $mgr = Mail::Box::Thread::Manager->new;
- my $folder = $mgr->open(folder => '/tmp/inbox');
- my $threads = $mgr->threads(folder => $folder);
- my $threads = $mgr->threads($folder); # same
-
- foreach my $thread ($threads->all) {
- $thread->print;
- }
-
- $threads->includeFolder($folder);
- $threads->removeFolder($folder);
-
-
-=head1 DESCRIPTION
-
-A (message-)I<thread> is a message with links to messages which followed in
-reply of that message. And then the messages with replied to the messages,
-which replied the original message. And so on. Some threads are only
-one message long (never replied to), some threads are very long.
-
-The C<Mail::Box::Thread::Manager> is very powerful. Not only is it able to
-do a descent job on MH-like folders (makes a trade-off between perfection
-and speed), it also can maintain threads from messages residing in different
-opened folders. Both facilities are rare for mail-agents. The manager
-creates flexible trees with L<Mail::Box::Thread::Node|Mail::Box::Thread::Node> objects.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Thread::Manager-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-A C<Mail::Box::Thread::Manager> object is usually created by a
-L<Mail::Box::Manager|Mail::Box::Manager>. One manager can produce more than one of these
-objects. One thread manager can combine messages from a set of folders,
-which may be partially overlapping with other objects of the same type.
-
- Option Defined in Default
- dummy_type L<Mail::Message::Dummy|Mail::Message::Dummy>
- folder C<[ ]>
- folders C<[ ]>
- log L<Mail::Reporter> C<'WARNINGS'>
- thread_body <false>
- thread_type L<Mail::Box::Thread::Node|Mail::Box::Thread::Node>
- timespan C<'3 days'>
- trace L<Mail::Reporter> C<'WARNINGS'>
- window C<10>
-
-. dummy_type CLASS
-
-=over 4
-
-The type of dummy messages. Dummy messages are used to fill holes in
-detected threads: referred to by messages found in the folder, but itself
-not in the folder.
-
-=back
-
-. folder FOLDER | REF-ARRAY-FOLDERS
-
-=over 4
-
-Specifies which folders are to be covered by the threads. You can
-specify one or more open folders. When you close a folder, the
-manager will automatically remove the messages of that folder from
-your threads.
-
-=back
-
-. folders FOLDER | REF-ARRAY-FOLDERS
-
-=over 4
-
-Equivalent to the C<folder> option.
-
-=back
-
-. log LEVEL
-
-. thread_body BOOLEAN
-
-=over 4
-
-May thread-detection be based on the content of a message? This has
-a serious performance implication when there are many messages without
-C<In-Reply-To> and C<References> headers in the folder, because it
-will cause many messages to be parsed. NOT IMPLEMENTED YET.
-
-=back
-
-. thread_type CLASS
-
-=over 4
-
-Type of the thread nodes.
-
-=back
-
-. timespan TIME | 'EVER'
-
-=over 4
-
-Specify how fast threads usually work: the amount of time between an
-answer and a reply. This is used in combination with the C<window>
-option to determine when to give-up filling the holes in threads.
-
-See Mail::Box::timespan2seconds() for the possibilities for TIME.
-With 'EVER', the search for messages in a thread
-will only be limited by the window-size.
-
-=back
-
-. trace LEVEL
-
-. window INTEGER|'ALL'
-
-=over 4
-
-The thread-window describes how many messages should be checked at
-maximum to fill `holes' in threads for folder which use delay-loading
-of message headers.
-
-The constant 'ALL' will cause thread-detection not to stop trying
-to fill holes, but continue looking until the first message of the folder
-is reached. Gives the best quality results, but may perform bad.
-
-=back
-
-I<Example:>
-
- use Mail::Box::Manager;
- my $mgr = new Mail::Box::Manager;
- my $inbox = $mgr->open(folder => $ENV{MAIL});
- my $read = $mgr->open(folder => 'Mail/read');
- my $threads = $mgr->threads(folders => [$inbox, $read]);
-
- # longer alternative for last line:
- my $threads = $mgr->threads;
- $threads->includeFolder($inbox);
- $threads->includeFolder($read);
-
-=back
-
-=head2 Grouping Folders
-
-
-$obj-E<gt>B<folders>
-
-=over 4
-
-Returns the folders as managed by this threader.
-
-=back
-
-$obj-E<gt>B<includeFolder>(FOLDERS)
-
-=over 4
-
-Add one or more folders to the list of folders whose messages are
-organized in the threads maintained by this object. Duplicated
-inclusions will not cause any problems.
-
-From the folders, the messages which have their header lines parsed
-(see L<Mail::Box|Mail::Box> about lazy extracting) will be immediately scanned.
-Messages of which the header is known only later will have to report this
-(see L<toBeThreaded()|Mail::Box::Thread::Manager/"Internals">).
-
-I<Example:>
-
- $threads->includeFolder($inbox, $draft);
-
-=back
-
-$obj-E<gt>B<removeFolder>(FOLDERS)
-
-=over 4
-
-Remove one or more folders from the list of folders whose messages are
-organized in the threads maintained by this object.
-
-I<Example:>
-
- $threads->removeFolder($draft);
-
-=back
-
-=head2 The Threads
-
-
-$obj-E<gt>B<all>
-
-=over 4
-
-Returns all messages which start a thread. The list may contain dummy
-messages and messages which are scheduled for deletion.
-
-To be able to return all threads, thread construction on each
-message is performed first, which may be slow for some folder-types
-because is will enforce parsing of message-bodies.
-
-=back
-
-$obj-E<gt>B<known>
-
-=over 4
-
-Returns the list of all messages which are known to be the start of
-a thread. Threads containing messages which where not read from their
-folder (like often happens MH-folder messages) are not yet known, and
-hence will not be returned.
-
-The list may contain dummy messages, and messages which are scheduled
-for deletion. Threads are detected based on explicitly calling
-L<inThread()|Mail::Box::Thread::Manager/"Internals"> and L<thread()|Mail::Box::Thread::Manager/"The Threads"> with a messages from the folder.
-
-Be warned that, each time a message's header is read from the folder,
-the return of the method can change.
-
-=back
-
-$obj-E<gt>B<sortedAll>([PREPARE [COMPARE]])
-
-=over 4
-
-Returns L<all()|Mail::Box::Thread::Manager/"The Threads"> the threads by default, but sorted on timestamp.
-
-=back
-
-$obj-E<gt>B<sortedKnown>([PREPARE [,COMPARE]])
-
-=over 4
-
-Returns all L<known()|Mail::Box::Thread::Manager/"The Threads"> threads, in sorted order. By default, the threads
-will be sorted on timestamp, But a different COMPARE method can be
-specified.
-
-=back
-
-$obj-E<gt>B<thread>(MESSAGE)
-
-=over 4
-
-Returns the thread where this MESSAGE is the start of. However, there
-is a possibility that this message is a reply itself.
-
-Usually, all messages which are in reply of this message are dated later
-than the specified one. All headers of messages later than this one are
-getting parsed first, for each folder in this threads-object.
-
-I<Example:>
-
- my $threads = $mgr->threads(folder => $inbox);
- my $thread = $threads->thread($inbox->message(3));
- print $thread->string;
-
-=back
-
-$obj-E<gt>B<threadStart>(MESSAGE)
-
-=over 4
-
-Based on a message, and facts from previously detected threads, try
-to build solid knowledge about the thread where this message is in.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<createDummy>(MESSAGE-ID)
-
-=over 4
-
-Get a replacement message to be used in threads. Be warned that a
-dummy is not a member of any folder, so the program working with
-threads must test with L<Mail::Message::isDummy()|Mail::Message/"The message"> before trying things only
-available to real messages.
-
-=back
-
-$obj-E<gt>B<inThread>(MESSAGE)
-
-=over 4
-
-Collect the thread-information of one message. The `In-Reply-To' and
-`Reference' header-fields are processed. If this method is called on
-a message whose header was not read yet (as usual for MH-folders,
-for instance) the reading of that header will be triggered here.
-
-=back
-
-$obj-E<gt>B<outThread>(MESSAGE)
-
-=over 4
-
-Remove the message from the thread-infrastructure. A message is
-replaced by a dummy.
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(FOLDER, MESSAGES)
-
-=over 4
-
-Include the specified messages in/from the threads managed by
-this object, if this folder is maintained by this thread-manager.
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(FOLDER, MESSAGES)
-
-=over 4
-
-Remove the specified messages in/from the threads managed by
-this object, if this folder is maintained by this thread-manager.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Thread::Manager-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Thread::Manager-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Thread::Manager-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-This module implements thread-detection on a folder. Messages created
-by the better mailers will include C<In-Reply-To> and C<References>
-lines, which are used to figure out how messages are related. If you
-prefer a better thread detection, they are implementable, but there
-may be a serious performance hit (depends on the type of folder used).
-
-=head2 Maintaining threads
-
-A C<Mail::Box::Thread::Manager> object is created by the
-L<Mail::Box::Manager|Mail::Box::Manager>, using L<Mail::Box::Manager::threads()|Mail::Box::Manager/"Manage message threads">.
-Each object can monitor the thread-relations between messages in one
-or more folders. When more than one folder is specified, the messages
-are merged while reading the threads, although nothing changes in the
-folder-structure. Adding and removing folders which have to be maintained
-is permitted at any moment, although may be quite costly in performance.
-
-An example of the maintained structure is shown below. The
-L<Mail::Box::Manager|Mail::Box::Manager> has two open folders, and a thread-builder which
-monitors them both. The combined folders have two threads, the second
-is two long (msg3 is a reply on msg2). Msg2 is in two folders at once.
-
- manager
- | \
- | `----------- threads
- | | |
- | thread thread---thread
- | | /| /
- | | // /
- +---- folder1 | // /
- | | / // /
- | `-----msg1 // /
- | `-----msg2-'/ /
- | / /
- `-----folder2 / /
- | / /
- `-----msg2 /
- `-----msg3------'
-
-=head2 Delayed thread detection
-
-With L<all()|Mail::Box::Thread::Manager/"The Threads"> you get the start-messages of each thread of this folder.
-When that message was not found in the folder (not saved or already
-removed), you get a message of the dummy-type. These thread descriptions
-are in perfect state: all messages of the folder are included somewhere,
-and each missing message of the threads (I<holes>) are filled by dummies.
-
-However, to be able to detect all threads it is required to have the
-headers of all messages, which is very slow for some types of folders,
-especially MH and IMAP folders.
-
-For interactive mail-readers, it is preferred to detect threads only
-on messages which are in the viewport of the user. This may be sloppy
-in some situations, but everything is preferable over reading an MH
-mailbox with 10k e-mails to read only the see most recent messages.
-
-In this object, we take special care not to cause unnecessary parsing
-(loading) of messages. Threads will only be detected on command, and
-by default only the message headers are used.
-
-The following reports the L<Mail::Box::Thread::Node|Mail::Box::Thread::Node> which is
-related to a message:
-
- my $thread = $message->thread;
-
-When the message was not put in a thread yet, it is done now. But, more
-work is done to return the best thread. Based on various parameters,
-which where specified when the folder was created, the method walks
-through the folder to fill the holes which are in this thread.
-
-Walking from back to front (recently arrived messages are usually in the back
-of the folder), message after message are triggered to be included in their
-thread. At a certain moment, the whole thread of the requested method
-is found, a certain maximum number of messages was tried, but that
-didn't help (search window bound reached), or the messages within the
-folder are getting too old. Then the search to complete the thread will
-end, although more messages of them might have been in the folder: we
-don't scan the whole folder for performance reasons.
-
-Finally, for each message where the head is known, for instance for
-all messages in mbox-folders, the correct thread is determined
-immediately. Also, all messages where the head get loaded later, are
-automatically included.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Manager.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Manager.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Node.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,338 +0,0 @@
-
-use strict;
-package Mail::Box::Thread::Node;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Carp;
-
-
-sub new(@)
-{ my ($class, %args) = @_;
- (bless {}, $class)->init(\%args);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- if(my $message = $args->{message})
- { push @{$self->{MBTN_messages}}, $message;
- $self->{MBTN_msgid} = $args->{msgid} || $message->messageId;
- }
- elsif(my $msgid = $args->{msgid})
- { $self->{MBTN_msgid} = $msgid;
- }
- else
- { croak "Need to specify message or message-id";
- }
-
- $self->{MBTN_dummy_type} = $args->{dummy_type};
- $self;
-}
-
-#-------------------------------------------
-
-
-sub message()
-{ my $self = shift;
-
- unless($self->{MBTN_messages})
- { return () if wantarray;
-
- my $dummy = $self->{MBTN_dummy_type}->new
- ( messageId =>$self->{MBTN_msgid}
- );
-
- push @{$self->{MBTN_messages}}, $dummy;
- return $dummy;
- }
-
- my @messages = @{$self->{MBTN_messages}};
- return @messages if wantarray;
- return $messages[0] if @messages==1;
-
- foreach (@messages)
- { return $_ unless $_->isDeleted;
- }
-
- $messages[0];
-}
-
-#-------------------------------------------
-
-
-sub addMessage($)
-{ my ($self, $message) = @_;
-
- return $self->{MBTN_messages} = [ $message ]
- if $self->isDummy;
-
- push @{$self->{MBTN_messages}}, $message;
- $message;
-}
-
-#-------------------------------------------
-
-
-sub isDummy()
-{ my $self = shift;
- !defined $self->{MBTN_messages} || $self->{MBTN_messages}[0]->isDummy;
-}
-
-#-------------------------------------------
-
-
-sub messageId() { shift->{MBTN_msgid} }
-
-#-------------------------------------------
-
-
-sub expand(;$)
-{ my $self = shift;
- return $self->message->label('folded') || 0
- unless @_;
-
- my $fold = not shift;
- $_->label(folded => $fold) foreach $self->message;
- $fold;
-}
-
-sub folded(;$) # compatibility <2.0
-{ @_ == 1 ? shift->expand : shift->expand(not shift) }
-
-#-------------------------------------------
-
-
-sub repliedTo()
-{ my $self = shift;
-
- return wantarray
- ? ($self->{MBTN_parent}, $self->{MBTN_quality})
- : $self->{MBTN_parent};
-}
-
-#-------------------------------------------
-
-
-sub follows($$)
-{ my ($self, $thread, $how) = @_;
- my $quality = $self->{MBTN_quality};
-
- # Do not create cyclic constructs caused by erroneous refs.
-
- my $msgid = $self->messageId; # Look up for myself, upwards in thread
- for(my $walker = $thread; defined $walker; $walker = $walker->repliedTo)
- { return undef if $walker->messageId eq $msgid;
- }
-
- my $threadid = $thread->messageId; # a->b and b->a (ref order reversed)
- foreach ($self->followUps)
- { return undef if $_->messageId eq $threadid;
- }
-
- # Register
-
- if($how eq 'REPLY' || !defined $quality)
- { $self->{MBTN_parent} = $thread;
- $self->{MBTN_quality} = $how;
- return $self;
- }
-
- return $self if $quality eq 'REPLY';
-
- if($how eq 'REFERENCE' || ($how eq 'GUESS' && $quality ne 'REFERENCE'))
- { $self->{MBTN_parent} = $thread;
- $self->{MBTN_quality} = $how;
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub followedBy(@)
-{ my $self = shift;
- $self->{MBTN_followUps}{$_->messageId} = $_ foreach @_;
- $self;
-}
-
-#-------------------------------------------
-
-
-sub followUps()
-{ my $self = shift;
- $self->{MBTN_followUps} ? values %{$self->{MBTN_followUps}} : ();
-}
-
-#-------------------------------------------
-
-
-sub sortedFollowUps()
-{ my $self = shift;
- my $prepare = shift || sub {shift->startTimeEstimate||0};
- my $compare = shift || sub {(shift) <=> (shift)};
-
- my %value = map { ($prepare->($_) => $_) } $self->followUps;
- map { $value{$_} } sort {$compare->($a, $b)} keys %value;
-}
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-
-sub threadToString(;$$$) # two undocumented parameters for layout args
-{ my $self = shift;
- my $code = shift || sub {shift->head->get('subject')};
- my ($first, $other) = (shift || '', shift || '');
- my $message = $self->message;
- my @follows = $self->sortedFollowUps;
-
- my @out;
- if($self->folded)
- { my $text = $code->($message) || '';
- chomp $text;
- return " $first [" . $self->nrMessages . "] $text\n";
- }
- elsif($message->isDummy)
- { $first .= $first ? '-*-' : ' *-';
- return (shift @follows)->threadToString($code, $first, "$other " )
- if @follows==1;
-
- push @out, (shift @follows)->threadToString($code, $first, "$other | " )
- while @follows > 1;
- }
- else
- { my $text = $code->($message) || '';
- chomp $text;
- my $size = $message->shortSize;
- @out = "$size$first $text\n";
- push @out, (shift @follows)
- ->threadToString($code, "$other |-", "$other | " )
- while @follows > 1;
- }
-
- push @out, (shift @follows)->threadToString($code, "$other `-","$other " )
- if @follows;
-
- join '', @out;
-}
-
-#-------------------------------------------
-
-
-sub startTimeEstimate()
-{ my $self = shift;
-
- return $self->message->timestamp
- unless $self->isDummy;
-
- my $earliest;
- foreach ($self->followUps)
- { my $stamp = $_->startTimeEstimate;
-
- $earliest = $stamp
- if !defined $earliest || (defined $stamp && $stamp < $earliest);
- }
-
- $earliest;
-}
-
-#-------------------------------------------
-
-
-sub endTimeEstimate()
-{ my $self = shift;
-
- my $latest;
- $self->recurse
- ( sub { my $node = shift;
- unless($node->isDummy)
- { my $stamp = $node->message->timestamp;
- $latest = $stamp if !$latest || $stamp > $latest;
- }
- }
- );
-
- $latest;
-}
-
-#-------------------------------------------
-
-
-sub recurse($)
-{ my ($self, $code) = @_;
-
- $code->($self) or return $self;
-
- $_->recurse($code) or last
- foreach $self->followUps;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub totalSize()
-{ my $self = shift;
- my $total = 0;
-
- $self->recurse
- ( sub {
- my @msgs = shift->messages;
- $total += $msgs[0]->size if @msgs;
- 1;}
- );
-
- $total;
-}
-
-#-------------------------------------------
-
-
-sub numberOfMessages()
-{ my $self = shift;
- my $total = 0;
- $self->recurse( sub {++$total unless shift->isDummy; 1} );
- $total;
-}
-
-sub nrMessages() {shift->numberOfMessages} # compatibility
-
-#-------------------------------------------
-
-
-sub threadMessages()
-{ my $self = shift;
- my @messages;
- $self->recurse
- ( sub
- { my $node = shift;
- push @messages, $node->message unless $node->isDummy;
- 1;
- }
- );
-
- @messages;
-}
-
-
-#-------------------------------------------
-
-
-sub ids()
-{ my $self = shift;
- my @ids;
- $self->recurse( sub {push @ids, shift->messageId} );
- @ids;
-}
-
-#-------------------------------------------
-
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Node.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Node.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,541 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Thread::Node - one node in a message thread
-
-
-=head1 INHERITANCE
-
- Mail::Box::Thread::Node
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $node = Mail::Box::Thread::Node->new;
- $node->addMessage($message);
- ...
-
-
-=head1 DESCRIPTION
-
-The C<Mail::Box::Thread::Node> maintains one node in the linked list of
-threads. Each node contains one message, and a list of its follow-ups.
-Next to that, it refers to its own ancestor and contains information
-about the trustworthiness of that relationship.
-
-To complicate things a little, because the thread-manager can maintain
-multiple folders, and merge there content, you may find the same message
-in more folders. All versions of the same message (based on message-id)
-are stored in the same node.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box::Thread::Node-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-You will not call this method yourself. The L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager>
-object will call it to construct C<Mail::Box::Thread::Node> objects.
-Either a C<message> or a C<messageId> must be supplied.
-
- Option Defined in Default
- dummy_type undef
- log L<Mail::Reporter> C<'WARNINGS'>
- message undef
- messageId undef
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. dummy_type CLASS
-
-=over 4
-
-Indicates the class name of dummy messages. Dummy messages are
-placeholders in a L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager> data structure.
-
-=back
-
-. log LEVEL
-
-. message MESSAGE
-
-=over 4
-
-The MESSAGE which is stored in this node. The message
-must be a Mail::Box::Message.
-
-=back
-
-. messageId MESSAGE-ID
-
-=over 4
-
-The MESSAGE-ID for the message which is stored in this node. Only
-specify it when you don't have the message yet.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 The thread node
-
-
-$obj-E<gt>B<addMessage>(MESSAGE)
-
-=over 4
-
-Add one message to the thread node. If the node contains a dummy, then
-the dummy is replaced. Otherwise, the messages is added to the end of the
-list.
-
-=back
-
-$obj-E<gt>B<expand>([BOOLEAN])
-
-=over 4
-
-Returns whether this (part of the) folder has to be shown expanded or not.
-This is simply done by a label, which means that most folder types can
-store this.
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-Returns true if the message is a dummy. A dummy is a "hole" in a thread
-which has follow-ups but does not have a message.
-
-=back
-
-$obj-E<gt>B<message>
-
-=over 4
-
-Get the message which is stored in this thread node. NOTE: the same
-message may be located in many folders at the same time, and these
-folders may be controlled by the same thread manager.
-
-In scalar context, this method returns the first instance of the
-message that is not deleted. If all instances are flagged for deletion,
-then you get the first deleted message. When the open folders only
-contain references to the message, but no instance, you get a dummy
-message (see L<Mail::Message::Dummy|Mail::Message::Dummy>).
-
-In list context, all instances of the message which have been found are
-returned.
-
-I<Example:>
-
- my $threads = $mgr->threads(folders => [$draft, $sent]);
- my $node = $draft->message(1)->thread;
-
- foreach my $instance ($node->message) {
- print "Found in ", $instance->folder, ".\n";
- }
-
- print "Subject is ", $node->message->subject, ".\n";
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-Return the message-id related to this thread node. Each of the messages
-listed in this node will have the same ID.
-
-=back
-
-=head2 The thread order
-
-
-$obj-E<gt>B<followUps>
-
-=over 4
-
-Returns the list of follow-ups to this thread node. This list
-may contain parsed, not-parsed, and dummy messages.
-
-=back
-
-$obj-E<gt>B<followedBy>(THREADS)
-
-=over 4
-
-Register that the THREADS are follow-ups to this message. These
-follow-ups need not be related to each other in any way other than
-sharing the same parent.
-
-Defining the same relation more than once will not cause information to
-be duplicated.
-
-=back
-
-$obj-E<gt>B<follows>(THREAD, QUALITY)
-
-=over 4
-
-Register that the current thread is a reply to the specified THREAD. The
-QUALITY of the relation is specified by the second argument. The method
-returns C<undef> if the link is not accepted in order to avoid circular
-references.
-
-The relation may be specified more than once, but only the most confident
-relation is used. For example, if a reply (QUALITY equals C<REPLY>) is
-specified, later calls to the follow method will have no effect. If
-C<follows> is called with a QUALITY that matches the current quality, the
-new thread overrides the previous.
-
-=back
-
-$obj-E<gt>B<repliedTo>
-
-=over 4
-
-Returns the message(s) to which the message in this node replies. In
-scalar context, this method will return the message to which the message
-in this node replies. This message object may be a dummy message.
-
-If the message seems to be the first message of a thread, the value C<undef>
-is returned. (Remember that some MUA are not adding reference information
-to the message's header, so you can never be sure a message is the
-start of a thread)
-
-In list context, this method returns a second string value indicating the
-confidence that the messages are related. When extended thread discovery
-is enabled, then some heuristics are applied to determine if messages are
-related. Values for the STRING may be:
-
-=over 4
-
-=item * C<'REPLY'>
-
-This relation was directly derived from an `in-reply-to' message header
-field. The relation has a high confidence.
-
-=item * C<'REFERENCE'>
-
-This relation is based on information found in a `Reference' message
-header field. One message may reference a list of messages which
-precede it in the thread. The heuristic attempts to determine
-relationships between messages assuming that the references are in order.
-This relation has a lower confidence.
-
-=item * C<'GUESS'>
-
-The relation is a big guess, with low confidence. It may be based on
-a subject which seems to be related, or commonalities in the message's
-body.
-
-=back
-
-More constants may be added later.
-
-I<Example:>
-
- my $question = $answer->repliedTo;
- my ($question, $quality) = $answer->repliedTo;
- if($question && $quality eq 'REPLY') { ... };
-
-=back
-
-$obj-E<gt>B<sortedFollowUps>([PREPARE [,COMPARE]])
-
-=over 4
-
-Returns the list of L<followUps()|Mail::Box::Thread::Node/"The thread order">, but sorted. By default
-sorting is based on the estimated time of the reply. See
-startTimeEstimate().
-
-=back
-
-=head2 On the whole thread
-
-Some convenience methods are added to threads, to simplify retrieving
-information from it.
-
-$obj-E<gt>B<endTimeEstimate>
-
-=over 4
-
-Returns a guess as to when the thread has ended (although you never
-know for sure whether there fill follow messages in the future).
-
-=back
-
-$obj-E<gt>B<ids>
-
-=over 4
-
-Returns all the ids in the thread starting at the current thread node.
-
-I<Example:>
-
- $newfolder->addMessages($folder->ids($thread->ids));
- $folder->delete($thread->ids);
-
-=back
-
-$obj-E<gt>B<numberOfMessages>
-
-=over 4
-
-Number of messages in the thread starting at the current thread node, but
-not counting the dummies.
-
-=back
-
-$obj-E<gt>B<recurse>(CODE-REF)
-
-=over 4
-
-Execute a function for all sub-threads. If the subroutine returns true,
-sub-threads are visited recursively. Otherwise, the current branch
-traversal is aborted. The routine is called with the thread-node as the
-only argument.
-
-=back
-
-$obj-E<gt>B<startTimeEstimate>
-
-=over 4
-
-Returns a guess as to when the thread was started. Each message contains
-various date specifications (each with various uncertainties resulting
-from timezones and out-of-sync clocks). One of these date specifications
-is used as the timestamp for the message. If the node contains a dummy
-message the lowest timestamp of the replies is returned. Otherwise the
-estimated timestamp of the node's message is returned.
-
-=back
-
-$obj-E<gt>B<threadMessages>
-
-=over 4
-
-Returns all the messages in the thread starting at the current thread
-node. This list will not include dummies.
-
-I<Example:>
-
- my @t = $folder->message(3)
- ->threadStart
- ->threadMessages;
-
-=back
-
-$obj-E<gt>B<threadToString>([CODE])
-
-=over 4
-
-Translate a thread into a string. The string will contain at least one
-line for each message which was found, but tries to fold dummies. This
-is useful for debugging, but most message readers will prefer to
-implement their own thread printer.
-
-The optional CODE argument is a reference to a routine which will be called
-for each message in the thread. The routine will be called with the
-message as the first argument. The default shows the subject of the message.
-In the first example below, this routine is called seven times.
-
-I<Example:>
-
- print $node->threadToString;
-
-may result in
-
- Subject of this message
- |- Re: Subject of this message
- |-*- Re: Re: Subject of this message
- | |- Re(2) Subject of this message
- | |- [3] Re(2) Subject of this message
- | `- Re: Subject of this message (reply)
- `- Re: Subject of this message
-
-The `*' represents a missing message (a "dummy" message). The `[3]'
-presents a folded thread with three messages.
-
- print $node->threadToString(\&show);
-
- sub show($) {
- my $message = shift;
- my $subject = $message->head->get('subject');
- length $subject ? $subject : '<no subject>';
- }
-
-=back
-
-$obj-E<gt>B<totalSize>
-
-=over 4
-
-Returns the sum of the size of all the messages in the thread.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box::Thread::Node-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box::Thread::Node-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box::Thread::Node-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Thread/Node.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Thread/Node.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/ARRAY.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,76 +0,0 @@
-
-use strict;
-package Mail::Box::Tie::ARRAY;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Carp;
-
-
-sub TIEARRAY(@)
-{ my ($class, $folder) = @_;
- croak "No folder specified to tie to."
- unless ref $folder && $folder->isa('Mail::Box');
-
- bless { MBT_folder => $folder }, $class;
-}
-
-#-------------------------------------------
-
-
-sub FETCH($)
-{ my ($self, $index) = @_;
- my $msg = $self->{MBT_folder}->message($index);
- $msg->isDeleted ? undef : $msg;
-}
-
-#-------------------------------------------
-
-
-sub STORE($$)
-{ my ($self, $index, $msg) = @_;
- my $folder = $self->{MBT_folder};
-
- croak "Cannot simply replace messages in a folder: use delete old, then push new."
- unless $index == $folder->messages;
-
- $folder->addMessages($msg);
- $msg;
-}
-
-#-------------------------------------------
-
-
-sub FETCHSIZE() { scalar shift->{MBT_folder}->messages }
-
-#-------------------------------------------
-
-
-sub PUSH(@)
-{ my $folder = shift->{MBT_folder};
- $folder->addMessages(@_);
- scalar $folder->messages;
-}
-
-
-#-------------------------------------------
-
-
-sub DELETE($) { shift->{MBT_folder}->message(shift)->delete }
-
-#-------------------------------------------
-
-
-sub STORESIZE($)
-{ my $folder = shift->{MBT_folder};
- my $length = shift;
- $folder->message($_) foreach $length..$folder->messages;
- $length;
-}
-
-# DESTROY is implemented in Mail::Box
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/ARRAY.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/ARRAY.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,191 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Tie::ARRAY - access an existing message folder as array
-
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open(folder => 'inbox');
-
- use Mail::Box::Tie::ARRAY;
- tie my(@inbox), 'Mail::Box::Tie::ARRAY', $folder;
-
- # deprecated, but works too
- use Mail::Box::Tie;
- tie my(@inbox), 'Mail::Box::Tie', $folder;
-
- foreach (@inbox) {print $_->short}
- print $_->print foreach @inbox;
- my $emails = @inbox;
-
- print $inbox[3];
- print scalar @inbox;
- push @inbox, Mail::Box::Message->new(...);
- delete $inbox[6];
- print $inbox[0]->head->get('status');
-
- my $folder = tied @inbox;
- untie @inbox;
-
-
-=head1 DESCRIPTION
-
-Certainly when you look at a folder as a list of messages, it is logical to
-access the folder through an array.
-
-Not all operations on arrays are supported. Actually, most functions which
-would reduce the size of the array are modified instead to mark messages for
-deletion.
-
-Examples what you I<cannot> do:
-
- shift/unshift/pop/splice @inbox;
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-B<TIEARRAY>('Mail::Box::Tie::ARRAY', FOLDER)
-
-=over 4
-
-Create the tie on an existing folder.
-
-I<Example:> tie an array to a folder
-
-
- my $mgr = Mail::Box::Manager->new;
- my $inbox = $mgr->new(folder => $ENV{MAIL});
- tie my(@inbox), 'Mail::Box::Tie::Array', ref $inbox, $inbox;
-
-=back
-
-=head2 Tied Interface
-
-
-$obj-E<gt>B<DELETE>
-
-=over 4
-
-Flag a message to be removed. Be warned that the message stays in
-the folder, and is not removed before the folder is written.
-
-I<Example:>
-
- delete $inbox[5];
- $inbox[5]->delete; #same
-
-=back
-
-$obj-E<gt>B<FETCH>(INDEX)
-
-=over 4
-
-Get the message which is at the indicated location in the list of
-messages contained in this folder. Deleted messages will be returned
-as C<undef>.
-
-I<Example:>
-
- print $inbox[3]; # 4th message in the folder
- print @inbox[3,0]; # 4th and first of the folder
- print $inbox[-1]; # last message
-
-=back
-
-$obj-E<gt>B<FETCHSIZE>
-
-=over 4
-
-Return the total number of messages in a folder. This is called when
-the folder-array is used in scalar context, for instance.
-
-I<Example:>
-
- if(@inbox > 10) # contains more than 10 messages?
- my $nrmsgs = @inbox;
-
-=back
-
-$obj-E<gt>B<PUSH>(MESSAGES)
-
-=over 4
-
-Add MESSAGES to the end of the folder.
-
-I<Example:>
-
- push @inbox, $newmsg;
-
-=back
-
-$obj-E<gt>B<STORE>(INDEX, MESSAGE)
-
-=over 4
-
-Random message replacement is not permitted --doing so would disturb threads
-etc. An error occurs if you try to do this. The only thing which is allowed
-is to store a message at the first free index at the end of the folder (which
-is also achievable with L<PUSH()|Mail::Box::Tie::ARRAY/"Tied Interface">).
-
-I<Example:>
-
- $inbox[8] = $add;
- $inbox[-1] = $add;
- push @inbox, $add;
-
-=back
-
-$obj-E<gt>B<STORESIZE>(LENGTH)
-
-=over 4
-
-Sets all messages behind from LENGTH to the end of folder to be deleted.
-
-=back
-
-
-
-
-=head1 DETAILS
-
-
-=head2 Folder tied as array
-
-
-=head3 Limitations
-
-This module implements C<TIEARRAY>, C<FETCH>, C<STORE>, C<FETCHSIZE>,
-C<STORESIZE>, C<DELETE>, C<PUSH>, and C<DESTROY>.
-
-This module does not implement all other methods as described in
-the Tie::Array documentation, because the real array of messages
-is not permitted to shrink or be mutilated.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/ARRAY.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/ARRAY.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/HASH.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,94 +0,0 @@
-
-use strict;
-package Mail::Box::Tie::HASH;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Carp;
-
-
-sub TIEHASH(@)
-{ my ($class, $folder) = @_;
- croak "No folder specified to tie to."
- unless ref $folder && $folder->isa('Mail::Box');
-
- bless { MBT_folder => $folder, MBT_type => 'HASH' }, $class;
-}
-
-#-------------------------------------------
-
-
-sub FETCH($) { shift->{MBT_folder}->messageId(shift) }
-
-#-------------------------------------------
-
-
-sub STORE($$)
-{ my ($self, $key, $basicmsg) = @_;
-
- carp "Use undef as key, because the message-id of the message is used."
- if defined $key && $key ne 'undef';
-
- $self->{MBT_folder}->addMessages($basicmsg);
-}
-
-#-------------------------------------------
-
-
-sub FIRSTKEY()
-{ my $self = shift;
- my $folder = $self->{MBT_folder};
-
- $self->{MBT_each_index} = 0;
- $self->NEXTKEY();
-}
-
-#-------------------------------------------
-
-
-sub NEXTKEY($)
-{ my $self = shift;
- my $folder = $self->{MBT_folder};
- my $nrmsgs = $folder->messages;
-
- my $msg;
- while(1)
- { my $index = $self->{MBT_each_index}++;
- return undef if $index >= $nrmsgs;
-
- $msg = $folder->message($index);
- last unless $msg->isDeleted;
- }
-
- $msg->messageId;
-}
-
-#-------------------------------------------
-
-
-sub EXISTS($)
-{ my $folder = shift->{MBT_folder};
- my $msgid = shift;
- my $msg = $folder->messageId($msgid);
- defined $msg && ! $msg->isDeleted;
-}
-
-#-------------------------------------------
-
-
-sub DELETE($)
-{ my ($self, $msgid) = @_;
- $self->{MBT_folder}->messageId($msgid)->delete;
-}
-
-#-------------------------------------------
-
-
-sub CLEAR()
-{ my $folder = shift->{MBT_folder};
- $_->delete foreach $folder->messages;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/HASH.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/HASH.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,181 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Tie::HASH - access an existing message folder as a hash
-
-
-
-=head1 SYNOPSIS
-
- tie my(%inbox), 'Mail::Box::Tie::HASH', $folder;
-
- foreach my $msgid (keys %inbox)
- { print $inbox{$msgid};
- delete $inbox{$msgid};
- }
-
- $inbox{$msg->messageId} = $msg;
-
-
-=head1 DESCRIPTION
-
-Certainly when you look at a folder as being a set of related messages
-based on message-id, it is logical to access the folder through a hash.
-
-For a tied hash, the message-id is used as the key. The message-id is usually
-unique, but when two or more instances of the same message are in the same
-folder, one will be flagged for deletion and the other will be returned.
-
-This implementation uses basic folder access routines which are related
-to the message-id.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-B<TIEHASH>('Mail::Box::Tie::HASH', FOLDER)
-
-=over 4
-
-Connects the FOLDER object to a HASH.
-
-I<Example:>
-
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open(access => 'rw');
- tie my(%inbox), 'Mail::Box::Tie::HASH', $folder;
-
-=back
-
-=head2 Tied Interface
-
-
-$obj-E<gt>B<CLEAR>
-
-=over 4
-
-Remove the contents of the hash. This is not really possible, but all
-the messages will be flagged for deletion.
-
-I<Example:>
-
- %inbox = ();
- %inbox = ($msg->messageId, $msg); #before adding msg
-
-=back
-
-$obj-E<gt>B<DELETE>(MESSAGE-ID)
-
-=over 4
-
-Remove the message with the specified MESSAGE-ID.
-
-I<Example:>
-
- delete $inbox{$msgid};
-
-=back
-
-$obj-E<gt>B<EXISTS>(MESSAGE-ID)
-
-=over 4
-
-Check whether a message with a certain MESSAGE-ID exists.
-
-I<Example:>
-
- if(exists $inbox{$msgid}) ...
-
-=back
-
-$obj-E<gt>B<FETCH>(MESSAGEID)
-
-=over 4
-
-Get the message with the specified id. The returned message may be
-a dummy if message thread detection is used. Returns C<undef> when
-there is no message with the specified id.
-
-I<Example:>
-
- my $msg = $inbox{$msgid};
- if($inbox{$msgid}->isDummy) ...
-
-=back
-
-$obj-E<gt>B<FIRSTKEY>
-
-=over 4
-
-See L<NEXTKEY()|Mail::Box::Tie::HASH/"Tied Interface">.
-
-=back
-
-$obj-E<gt>B<NEXTKEY>(PREVIOUS)
-
-=over 4
-
-L<FIRSTKEY()|Mail::Box::Tie::HASH/"Tied Interface"> returns the first message-id/message pair from the folder,
-and NEXTKEY returns the message-id/message pair for the next message,
-in the order in which the message is stored in the folder.
-
-Messages flagged for deletion will B<not> be returned. See the
-L<Mail::Box::messages()|Mail::Box/"The messages"> method of the folder type for more information
-about the folder message order.
-
-I<Example:>
-
- foreach my $msgid (keys %inbox) ...
- foreach my $msg (values %inbox) ...
-
- while(my ($msgid, $msg) = each %inbox) {
- $msg->print unless $msg->isDeleted;
- }
-
-=back
-
-$obj-E<gt>B<STORE>(undef, MESSAGE)
-
-=over 4
-
-Store a message in the folder. The key must be C<undef>, because the
-message-id of the specified message is taken. This is shown in the
-first example. However, as you see, it is a bit complicated to specify
-C<undef>, therefore the string C<"undef"> is accepted as well.
-
-The message may be converted into something which can be stored in the
-folder type which is at stake. The added instance is returned.
-
-I<Example:>
-
- $inbox{ (undef) } = $msg;
- $inbox{undef} = $msg;
-
-=back
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie/HASH.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Tie/HASH.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Tie.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,33 +0,0 @@
-
-package Mail::Box::Tie;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use strict;
-
-use Carp;
-
-
-#-------------------------------------------
-
-sub TIEHASH(@)
-{ my $class = (shift) . "::HASH";
- eval "require $class"; # bootstrap
-
- confess $@ if $@;
- $class->TIEHASH(@_);
-}
-
-#-------------------------------------------
-
-sub TIEARRAY(@)
-{ my $class = (shift) . "::ARRAY";
- eval "require $class"; # bootstrap
-
- confess $@ if $@;
- $class->TIEARRAY(@_);
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Tie.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box/Tie.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,62 +0,0 @@
-
-=head1 NAME
-
-Mail::Box::Tie - access an existing message-folder as an array or hash
-
-
-
-=head1 SYNOPSIS
-
-As an array:
-
- use Mail::Box::Tie;
- tie my(@inbox), Mail::Box::Tie::ARRAY => $folder;
- tie my(@inbox), Mail::Box::Tie => $folder; # deprecated
- print $inbox[3];
-
-or as hash:
-
- tie my(%inbox), Mail::Box::Tie::HASH => $folder;
- tie my(%inbox), Mail::Box::Tie => $folder; # deprecated
- print $inbox{'<12379.124879 at example.com>'};
-
-
-=head1 DESCRIPTION
-
-The use of C<Mail::Box::Tie> is B<deprecated>, because it is succeeded by two
-separate modules: L<Mail::Box::Tie::ARRAY|Mail::Box::Tie::ARRAY> and L<Mail::Box::Tie::HASH|Mail::Box::Tie::HASH>.
-However, this module still works.
-
-Folders certainly look like an array of messages, so why not just
-access them as one? Or, the order is not important, but the
-message-ids are (give relations): why not access them from a hash
-based on this message-id? Programs using one of these ties will
-look simpler than programs using the more traditional method calls.
-
-
-
-=head1 METHODS
-
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box/Tie.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box/Tie.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Cookbook.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box-Cookbook.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Cookbook.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,282 +0,0 @@
-
-=head1 NAME
-
-Mail::Box-Cookbook - Examples how to use Mail::Box
-
-
-
-
-=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
-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.
-
-=head2 The Manager
-
-For more details about all the packages which are involved in the
-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
-benefit from it. The manager takes care of detecting which folder
-type you are using, and which folders are open. The latter avoids
-the accidental re-opening of an already open folder.
-
-The C<examples/open.pl> script contains mainly
-
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open($filename);
- foreach my $message ($folder->messages) {
- print $message->get('Subject') || '<no subject>', "\n";
- }
- $folder->close;
-
-which shows all the most important functions. It will cause all
-subjects of the messages in the indicated folder to be listed. So:
-although the number of packages included in the Mail::Box module
-is huge, only little is needed for normal programs.
-
-In stead of calling C<close> on the folder, you may also call
-
- $mgr->closeAllFolders;
-
-If you forget to close a folder, changes will not be written. This
-may change in the future.
-
-=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
-attachments. This makes handling of the bodies of messages a bit harder:
-when a message contains more than one part, which part is then the most
-important to read?
-
-To complicate life, multi-parts can be nested: each part may be a
-multi-part by itself. This means that programs handling the message
-content must be recursive or skip multi-parts.
-
-The central part of the C<examples/multipart.pl> script reads:
-
- foreach my $message ($folder->messages) {
- show_type($message);
- }
-
- show_type($) {
- my $msg = shift;
- print $msg->get('Content-Type'), "\n";
-
- if($msg->isMultipart) {
- foreach my $part ($msg->parts) {
- show_type($part);
- }
- }
- }
-
-Each part is a message by itself. It has a header and a body. A multipart
-message has a special body: it contains a list of parts and optionally
-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.
-
-=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
-to achieve this. B<Be warned:> it will replace your input folder!
-
-As abstract of the crucial part:
-
- my $inbox = $mgr->open('inbox', access => 'rw');
- my $large = $mgr->open('large', access => 'a', create => 1);
-
- foreach my $message ($inbox->messages) {
- next if $message->size < $size;
- $mgr->moveMessage($large, $message);
- }
-
- $inbox->close;
- $large->close;
-
-The C<inbox> is opened for read and write: first read all messages, and
-then write the smaller folder without moved messages back. The C<large>
-folder is created if the file does not exist yet. In any case, messages
-will be added to the end of the folder.
-
-The manager is needed to move the message: to unregister the message from
-the first folder, and reregister it in the second. You can move more
-messages at once, if you like. When you move to a folder which is not
-open, you even better do that: it will be faster:
-
- my @move = grep {$_->size >= $size} $inbox->messages;
- $mgr->moveMessage($large, @move);
-
-In this example, the C<size> of the message determines whether the message
-is moved or not. Of course, there are many other criteria you can use.
-For instance, use C<timestamp> to find old messages:
-
- use constant YEAR => 365 * 24 * 60 * 60;
- my $now = time;
- my @old = grep {$_->timestamp - $now > YEAR} $inbox->messages;
- $mgr->moveMessage($oldbox, @old);
-
-=head2 Create a reply
-
-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:
-
- my $folder = ...;
- my $message = $folder->message(8);
- my $reply = $message->reply;
-
- $folder->addMessage($reply);
- $reply->print;
-
-The method is quite complex, as demonstrated by C<examples/reply.pl>, in
-which the construction of a reply-message is shown.
-
-Three kinds of reply messages can be made: one which does not include
-the original message at all (NO), then one which inlines the original
-message quoted (INLINE), and as third possibility the original message as
-attachment (ATTACH).
-
-The C<include> parameter selects the kind of reply. When you reply
-to binary or multi-part messages, INLINE will automatically promoted
-to ATTACH. By default text will be stripped from the original senders
-signature. Multi-part messages are stripped from attachments which
-qualify as signature. In case a multi-part (after stripping) only
-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
-L<Mail::Message::Construct|Mail::Message::Construct>. For a single-part reply, the return
-will be
-
- prelude
- quoted original
- postlude
- --
- signature
-
-A multipart body will be
-
- part 1: prelude
- [ see attachment ]
- postlude
- part 2: stripped original multipart
- part 3: signature
-
-=head2 Build a message
-
-There are three ways to create a message which is not a reply:
-
-=over 4
-
-=item * L<Mail::Message::buildFromBody()|Mail::Message::Construct::Build/"Constructing a message">
-
-Start with creating a body, and transform that into a message.
-
-=item * L<Mail::Message::build()|Mail::Message::Construct::Build/"Constructing a message">
-
-create the whole message at once.
-
-=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 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
-by an external program.
-
-Very important to remember from now on: information about the content of
-the body (the C<Content-> lines in the header) is stored within the body
-object, for as long as the body is not contained with a message object.
-
-For instance, C<$message> method C<decoded> returns the decoded body of the
-C<$message>. It is a body object by itself, however outside a real
-message. Then you may want to play around with it, by concatenating
-some texts: again resulting in a new body. Each body contains the
-right C<Content-> information. Then, finally, you create a message
-specifying the body and extra header lines. At that moment you need
-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 = Mail::Message::Body->new
- ( mime_type => 'text/css'
- , transfer_encoding => '8bit'
- , data => \@lines
- );
-
-Above example creates a body, with explicitly stating what kind of data
-is stored in it. The default mime type is C<text/plain>. The transfer
-encoding defaults to C<none>. Each message will get encoded on the moment
-it is added to a message. The default encoding depends on the mime type.
-
-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 = Mail::Message->buildFromBody
- ( $body
- , From => 'me at example.com'
- , To => 'you at anywhere.net'
- , Cc => [ Mail::Address->parse($groupalias) ]
- );
-
-For header lines, you may specify a string, an address object
-(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
-demonstration can be found in C<examples/build.pl>. In only one
-class method call the header and the (possible multi-parted) body
-is created.
-
-With the C<data> option, you can specify one scalar which
-contains a whole body or an array of lines. Using the C<file> option,
-a file-handle or filename specifies a body. The C<attach> option
-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 = Mail::Message->build
- ( From => 'me at example.com'
- , To => 'you at anywhere.net'
- , 'X-Mailer' => 'Automatic mailing system'
- , data => \@lines
- , file => 'logo.jpg'
- , attach => $signature_body
- );
-
-
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Cookbook.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box-Cookbook.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Index.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box-Index.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Index.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,280 +0,0 @@
-
-=head1 NAME
-
-Mail::Box-Index - list of all extended documentation
-
-
-
-
-=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
-and the methods. These larger explanations are included in the
-DETAILS of the manual pages, and listed here below. Of course, each
-page has a DESCRIPTION section as well, which tells some bare necessities
-about the module.
-
-Only the HTML version of this manual page will list the sections.
-
-=begin :html
-
-<ol>
-<li><strong><a name="general">General</a> sources of information</strong>
- <ul>
- <li>MailBox distribution overview (Mail::Box-Overview)
- <li>MailBox simple recepies (Mail::Box-Cookbook)
- </ul>
-
-<li><strong><a name="messages">Messages</a></strong> (L<Mail::Message|Mail::Message>)<br />
- See separate entries on header, body, fields
- and construction in this index below.
- <ul>
- <li>Structure of a Message
- <ul>
- <li>The header
- <li>The body
- </ul>
- <li>Coercing messages
- <li>Message object implementation
- <li>Message class implementation
- </ul>
-
-<li><strong><a name="headers">Message headers</a></strong> (L<Mail::Message::Head|Mail::Message::Head>)
- <ul>
- <li>Ordered header fields
- <li>Subsets of header fields
- <li>Head class implementation
- </ul>
-
-<li><strong><a name="fields">Message header fields</a></strong> (L<Mail::Message::Field|Mail::Message::Field>)
- <ul>
- <li>Field syntax
- <ul>
- <li>Folding fields
- <li>Structured fields
- <li>Comments in fields
- </ul>
- <li>Getting a field
- <ul>
- <li>Using get() field
- <li>Using study() field
- <li>Using resent groups (Mail::Message::Head::ResentGroup)
- <li>Mailing list fields
- <li>Spam fighting fields
- </ul>
- <li>The field's data
- <ul>
- <li>Access to the field
- <li>Using simplified field access
- <li>Specifying field data
- </ul>
- <li>Field class implementation
- </ul>
-
-<li><strong><a name="bodies">Message bodies</a></strong> (L<Mail::Message::Body|Mail::Message::Body>)
- <ul>
- <li>Access to the body
- <li>Body meta information
- <ul>
- <li>Content types (MIME::Types)
- <li>Content transfer encoding (Mail::Message::TransferEnc)
- </ul>
- <li>Multipart bodies (Mail::Message::Body::Multipart)
- <li>Nested (encapsulated) messages (Mail::Message::Body::Nested)
- <li>Body class implementation
- <ul>
- <li>Data collector bodies
- <li>Complex bodies
- </ul>
- </ul>
-
-<li><strong><a name="labels">Message labels</a></strong>
- <ul>
- <li>Labels (Mail::Message)
- <ul>
- <li>Predefined labels (Mail::Message)
- <li>Storing labels folder dependent
- <li>Flags in filename (Mail::Box::Maildir::Message)
- <li>Status and X-Status fields (MBOX and POP3)
- <li>The .mh_sequences file (Mail::Box::MH::Labels)
- <li>IMAP protocol flags (Mail::Box::IMAP4::Message)
- <li>Other labels (IMAP4)
- <li>Caching labels (IMAP4)
-
- </ul>
- </ul>
-
-<li><strong><a name="process">Message processing</a></strong>
- <ul>
- <li>Reading a message (Mail::Message::Construct::Read)
- <li>Building a message
- (Mail::Message::Construct::Build)
- <li>Reply to a message (Mail::Message::Construct::Reply)
- <li>Creating a forward
- (Mail::Message::Construct::Forward)
- <li>Bounce a message (Mail::Message::Construct::Bounce)
- <li>Rebuilding a message
- (Mail::Message::Construct::Rebuild)
- <li>Convert messages
- <ul>
- <li>To and from Mail::Internet objects (Mail::Message::Convert::MailInternet)
- <li>To and from MIME::Entity objects(Mail::Message::Convert::MimeEntity)
- <li>Into HTML (Mail::Message::Convert::Html)
- </ul>
- <li>Convert body contents
- <ul>
- <li>From HTML to PostScript (Mail::Message::Convert::HtmlFormatPS)
- <li>From HTML into plain text (Mail::Message::Convert::HtmlFormatText)
- <li>Beautify text (Mail::Message::Convert::TextAutoformat)
- </ul>
- </ul>
-
-<li><strong><a name="folders">Folders</a></strong> (L<Mail::Box|Mail::Box>)
- See separate section for type specifics below.
- <ul>
- <li>Folder managers
- <ul>
- <li>Managing open folders (Mail::Box::Manager)
- <li>Managing a user (Mail::Box::Manage::User)
- </ul>
- <li>Folder types (Mail::Box)
- <ul>
- <li>Different kinds of folders
- <li>Available folder types
- <li>Folder class implementation
- </ul>
- <li>Folder tied as array (Mail::Box::Tie::ARRAY)
- <ul>
- <li>Limitations
- </ul>
- <li>Folder tied as hash (Mail::Box::Tie::HASH)
- <li>Folder locking (Mail::Box::Locker)
- <li>Searching folders (Mail::Box::Search)
- <ul>
- <li>scan header and body (Mail::Box::Search::Grep)
- <li>check for spam (Mail::Box::Search::SpamAssassin)
- </ul>
- </ul>
-
-<li><strong><a name="ftypes">Folder types</a></strong>
- <ul>
- <li>DBX folders (Mail::Box::Dbx, read only)
- <ul>
- <li>How DBX folders work
- <li>This implementation
- <li>Converting DBX folders to MBOX
- </ul>
- <li>IMAP4 folders (Mail::Box::IMAP4)
- <ul>
- <li>How IMAP4 folders work
- </ul>
- <li>MAILDIR folders (Mail::Box::Maildir)
- <ul>
- <li>How MAILDIR folders work
- </ul>
- <li>MBOX folders (Mail::Box::Mbox)
- <ul>
- <li>How MBOX folders work
- <li>Simulation of sub-folders
- </ul>
- <li>MH folders (Mail::Box::MH)
- <ul>
- <li>How MH folders work
- <li>This implementation
- <li>An index-file
- </ul>
- <li>POP3 folders (Mail::Box::POP3)
- <ul>
- <li>How POP3 folders work
- <li>This implementation
- </ul>
- </ul>
-
-<li><strong><a name="threads">Discussion threads</a></strong>
- <ul>
- <li>The thread manager (Mail::Box::Thread::Manager)
- <ul>
- <li>Maintaining threads
- <li>Delayed thread detection
- </ul>
- <li>The thread node (Mail::Box::Thread::Node)
- </ul>
-
-<li><strong><a name="send">Transmitting messages</a></strong> (L<Mail::Transport|Mail::Transport>)
- <ul>
- <li>Sending (Mail::Transport::Send)
- <ul>
- <li>Via Exim (Mail::Transport::Exim)
- <li>Via Mailx (Mail::Transport::Mailx)
- <li>Via Qmail (Mail::Transport::Qmail)
- <li>Via Sendmail or Postfix (Mail::Transport::Sendmail)
- <li>Via raw SMTP (Mail::Transport::SMTP)
- </ul>
- <li>Receiving (Mail::Transport::Receive)
- <ul>
- <li>Via POP3 (Mail::Transport::POP3)
- </ul>
- <li>Bi-directional
- <ul>
- <li>Via IMAP4 (Mail::Transport::IMAP4)
- </ul>
- </ul>
-
-<li><strong><a name="perform">Performance</a></strong>
- <ul>
- <li>Quality over performance
- <li>Weak references
- <li>Reducing memory consumption
- <ul>
- <li>Lazy extraction
- <li>Picking the optimal body class
- <li>Reducing the header size
- (Mail::Message::Head::Partial)
- <li>
- </ul>
- <li>Destructing messages (Mail::Box::Message::Destructed)
- </ul>
-<li><strong>Additional modules</strong>
- <ul>
- <li>Extensions
- <ul>
- <li>Mail::Box::Parser::C, a faster parser
- <li>HTML::FromMail,
- webmail applications builder
- </ul>
- <li>Helper modules
- <ul>
- <li>MIME::Types
- <li>Object::Realize::Later
- <li>User::Identity
- </ul>
- </ul>
-</ol>
-
-=end :html
-
-
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Index.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box-Index.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Overview.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box-Overview.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Overview.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,330 +0,0 @@
-
-=head1 NAME
-
-Mail::Box-Overview - objects used by Mail::Box
-
-
-
-
-=head1 DESCRIPTION
-
-
-=head2 Introduction
-
-The MailBox package is a suite of classes for accessing and managing
-email folders in a folder-independent manner. This package is an
-alternative to the C<Mail::Folder> and C<MIME::*> packages. It abstracts the
-details of messages, message storage, and message threads, while
-providing better performance than older mail packages. It is meant to
-provide an object-oriented toolset for all kinds of e-mail applications,
-under which Mail User-Agents (MUA) and mail filtering programs.
-
-This package is modular --parts of it can be used independently of the
-rest. For example, the L<Mail::Box::Manager|Mail::Box::Manager> can automatically determine
-that a folder is in Mbox format and return an object of the
-L<Mail::Box::Mbox|Mail::Box::Mbox> class, or the user program can bypass the manager and
-create L<Mail::Box::Mbox|Mail::Box::Mbox> objects directly. Similarly, if the user program
-is only manipulating a single message, a L<Mail::Message|Mail::Message>.
-
-The Mail::Box package has special features to help MUA's access folder
-data quickly in random order. You will not really benefit (neither
-slower) if you need the full folder sequentially.
-
-This code is beta, which means that there are no serious applications
-written with it yet. Please inform the author when you have, so this
-module can be marked as stable. Read the STATUS file enclosed in the package
-for more details. You may also want to have a look at the sample
-scripts in the C<scripts> directory.
-
-=head2 The class relations
-
-L<Mail::Box::Manager|Mail::Box::Manager> objects play a central role in any program which
-is built with MailBox. Each program will create one manager, and
-then open folders via that manager. Besides folders, the manager can
-also be used to discover message threads: sequences of messages with
-their follow-ups.
-
- <has-a> Mail::Box::Mbox
- Mail::Box::Manager <---------* (Mail::Box::MH)
- ^ : (Mail::Box::Maildir)
- | (maintains) (Mail::Box::POP3)
- | :
- | :
- `---------------------* Mail::Box::Thread::Manager
- (<has-a>)
-
-Each folder maintains a list of messages. Much effort is made to hide
-differences between folder types and kinds of messages. Your program can
-be used for MBOX, MH, Maildir, and POP3 folders with no change at all (as
-long as you stick to the rules).
-
- Mail::Box::Mbox <-----------* Mail::Box::Mbox::Message
- ^ <has-a> ^
- | <isa> | <isa>
- | |
- Mail::Box ............. Mail::Box::Message
- ^
- | <isa>
- |
- Mail::Message
- / \
- <has-a>
- / \
- Mail::Message Mail::Message
- ::Body ::Head
-
-The situation for MH and Maildir folders is a little more complicated,
-because they have an extra intermediate level of abstraction: L<Mail::Box::Dir|Mail::Box::Dir>.
-The POP3 folder has an intermediate L<Mail::Box::Net|Mail::Box::Net>.
-
-In the future, when more Mbox-like folder types get implemented, there
-may be a L<Mail::Box::File|Mail::Box::File> level too. The following is also true
-for the mail boxes
-
- MB::MH::Message MB::POP3::Message
- \ MB::Maildir::Message /
- \ / /
- \ / MB::Mbox::Message /
- \ / | /
- MB::Dir::Message | MB::Net::Message
- \ | /
- \ | /
- MB::Message
- |
- |
- Mail::Message
-
-=head2 The Manager
-
-The mailbox manager L<Mail::Box::Manager|Mail::Box::Manager> encapsulates folder management
-issues. It maintains a set of open mail folders (mailboxes), and provides
-methods for opening and closing them, efficiently moving messages between
-folders, and efficiently appending messages to folders. It contains
-L<Mail::Box|Mail::Box> objects which may be of different types. Most folder types
-can be detected automatically.
-
-The main manager also manages message-thread detector objects, and informs them
-when the contents of a folder have changed. This manager class is the
-only one you instantiate yourself: objects of all other classes will be
-provided by your folder manager.
-
-You are strongly advised to use this object, but you can often do without it
-and open a specific folder-type directly.
-
-=head2 The Messages
-
-=over 4
-
-=item L<Mail::Message|Mail::Message>
-
-A base class that defines an interface for manipulating the head and
-body of a message. There are various header object types
-(L<Mail::Message::Head|Mail::Message::Head>'s) and a bunch of body object types
-(L<Mail::Message::Body|Mail::Message::Body>'s).
-
-The L<Mail::Message::Construct|Mail::Message::Construct> package is loaded when more complex tasks
-have to be performed on messages, like creating replies, bounces, or a
-forward message. These
-functionalities are described and implemented in the ::Construct
-file, but are automatically added to the L<Mail::Message|Mail::Message> namespace when used.
-
-Message types which are foreign to MailBox can be used in the
-MailBox environment: there are some converters implemented via
-L<Mail::Message::Convert|Mail::Message::Convert>. Particularly the popular Mail::Internet
-and MIME::Entity are supported.
-
-=item L<Mail::Box::Message|Mail::Box::Message>
-
-An abstract base class which defines an interface for mail messages
-which are stored in any folder. It inherits from L<Mail::Message|Mail::Message>, and
-adds the basic idea of I<location> to a message.
-
-=item L<Mail::Message::Body|Mail::Message::Body>
-
-This is the base class for all message bodies. It describes what you
-can do with any kind of body. The body types differ on the way how the
-keep the body content during the run of your program.
-
-One special case of the body types is the L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>, which
-contains a set of L<Mail::Message::Part|Mail::Message::Part> objects. These are just like
-normal messages, except that they are contained in an other message.
-The L<Mail::Message::Body::Nested|Mail::Message::Body::Nested> body type is comparible, but contains only
-one message: they are used for C<message/rfc822> message encodings.
-
-When needed, the functionality of the body objects is extended with
-L<Mail::Message::Body::Construct|Mail::Message::Body::Construct> and L<Mail::Message::Body::Encode|Mail::Message::Body::Encode>. The
-former package implements things like concatenation, the later controls message
-encoding and decoding. In the current implementation this is limited to
-transfer encodings (implemented in the L<Mail::Message::TransferEnc|Mail::Message::TransferEnc> packages).
-Automatic character and mime recodings are on the wish-list.
-
-=item L<Mail::Message::Head|Mail::Message::Head>
-
-The header for a single message. Maintains a set of L<Mail::Message::Field|Mail::Message::Field>
-objects, each containing one header line. Fields are the only
-objects which have no logging and tracing facilities, purely for reasons
-of performance.
-
-The header object has three sub-classes: the L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
-version knows all lines for sure, L<Mail::Message::Head::Subset|Mail::Message::Head::Subset> maintains
-an unknown subset of lines, and the L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed> has no
-lines yet but knows where to get them.
-
-The latter two will automatically get the missing header lines from the
-mailbox files when needed, and so transform into a C<::Complete> header.
-It is fully transparent to the user of MailBox in which shape the
-header really is on the moment.
-
-=back
-
-=head2 The Folder types
-
-=over 4
-
-=item L<Mail::Box|Mail::Box>
-
-A base class that defines a standard interface for mail boxes which
-is independent of mailbox type. Objects of this class contain
-a L<Mail::Box::Locker|Mail::Box::Locker> and a list of L<Mail::Box::Message|Mail::Box::Message> objects.
-
-=item L<Mail::Box::Dir|Mail::Box::Dir>
-
-The base class for all folders which use a directory organization: each
-message is a separate entity (file) grouped in a directory. Each
-L<Mail::Box::Dir::Message|Mail::Box::Dir::Message> represents one message, one such entity.
-
-=item L<Mail::Box::Net|Mail::Box::Net>
-
-The base class for all folders which have the messages outside direct
-reach of the MailBox library, for instance on a remote system, or in
-a database.
-
-=item L<Mail::Box::Mbox|Mail::Box::Mbox>
-
-This class derives from L<Mail::Box|Mail::Box>, and implements its interface for
-mbox-style folders. It maintains a set of L<Mail::Box::Mbox::Message|Mail::Box::Mbox::Message>
-objects, which are derived from a L<Mail::Box::Message|Mail::Box::Message>.
-
-Mbox-style folders have one file containing multiple messages per
-folder. When folders get large, access tends to get slow.
-
-=item L<Mail::Box::MH|Mail::Box::MH>
-
-This class derives from L<Mail::Box::Dir|Mail::Box::Dir>, and implements its interface for
-MH-style folders. It maintains a set of L<Mail::Box::MH::Message|Mail::Box::MH::Message>
-objects, which are derived from a L<Mail::Box::Dir::Message|Mail::Box::Dir::Message>.
-
-MH-style folders are represented by a directory, where each message is
-stored in a separate file. The message files are sequentially numbered.
-It is fast to open one single message, but hard to get an overview.
-
-=item L<Mail::Box::MH::Index|Mail::Box::MH::Index>
-
-The base class for MH mailbox indexes which provides methods for reading,
-writing, and managing message indexes. These indexes are used to
-speed-up access to directory based folders.
-
-=item L<Mail::Box::MH::Labels|Mail::Box::MH::Labels>
-
-Also for efficiency reasons, a separate file is maintained which contains
-flags about the messages. This file for instance lists new files. This
-way, the MH message files do not have to be opened to find that out.
-
-=item L<Mail::Box::Maildir|Mail::Box::Maildir>
-
-Like the MH folder type, this class derives from L<Mail::Box::Dir|Mail::Box::Dir>. It
-implements its interface for Maildir-style folders. It maintains a set
-of L<Mail::Box::Maildir::Message|Mail::Box::Maildir::Message> objects, which are derived from a
-L<Mail::Box::Dir::Message|Mail::Box::Dir::Message>.
-
-=item L<Mail::Box::POP3|Mail::Box::POP3>
-
-Implements the POP3 protocol based on L<Mail::Box::Net|Mail::Box::Net>. The
-L<Mail::Transport::POP3|Mail::Transport::POP3> implementation handles the protocol details. In this
-kind of folders, you can only read and delete messages.
-
-=back
-
-=head2 Various Other Classes
-
-=over 4
-
-=item L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager>
-
-Maintains a set of message-threads over one or more folders. A
-message-thread is a start message with all the replies on it. And the
-replies on replies, and so on. This object is used to construct the
-thread for a set of open folders.
-
-This object maintains linked lists of L<Mail::Box::Thread::Node|Mail::Box::Thread::Node> objects.
-L<Mail::Message::Dummy|Mail::Message::Dummy>'s fill-up some holes.
-
-=item L<Mail::Box::Locker|Mail::Box::Locker>
-
-Provides a folder locking interface which is inherited by the L<Mail::Box|Mail::Box>
-class. Currently it supports dot-file locking (C<filename.lock>),
-flock filehandle locking, and locking over NFS. Each is implemented in a
-separate class. A multi-locker, using a set of lock-methods at the
-same time is also available.
-
-=item L<Mail::Box::Search|Mail::Box::Search>
-
-The set of search packages implement various search techniques in an uniformal
-way. Although implementing your own search algorithm is simple in general,
-in practice multiparts, encodings, and mime-types complicate things.
-
-=item L<Mail::Box::Parser|Mail::Box::Parser>
-
-The parser reads messages, and transforms them into data-structures such
-that the content of header and body can be used within the program. The
-first parser is implemented in pure Perl. A second parser is under development,
-and will written in C, to gain speed.
-
-=item L<Mail::Box::Tie|Mail::Box::Tie>
-
-Provides hash (L<Mail::Box::Tie::HASH|Mail::Box::Tie::HASH>) or array tied
-(L<Mail::Box::Tie::ARRAY|Mail::Box::Tie::ARRAY>) access to any mail folder derived from
-L<Mail::Box|Mail::Box>. This beautifies your code in some applications.
-
-=item L<Mail::Transport|Mail::Transport>
-
-Various ways of sending and receiving messages are implemented. Sending
-is possible via external programs, like C<mail>, C<Mailx>, C<sendmail>, or
-autonomously with direct SMTP. Receiving is currently only implemented
-via POP3.
-
-=item L<Mail::Reporter|Mail::Reporter>
-
-A debugging and logging class which is inherited by most of the Mail::
-modules. For each object, you can say what log and error reports must be
-kept or directly presented to the user. This way you can decide to have
-Mail::Box report about problems, or do it all yourself.
-
-=back
-
-All classes are written to be extensible.
-
-
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box-Overview.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box-Overview.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,945 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Box;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Mail::Box::Message;
-use Mail::Box::Locker;
-use File::Spec;
-
-use Carp;
-use Scalar::Util 'weaken';
-use List::Util qw/sum first/;
-
-#-------------------------------------------
-# Clean exist required to remove lockfiles and to save changes.
-
-$SIG{INT} = $SIG{QUIT} = $SIG{PIPE} = $SIG{TERM} = sub {exit 0};
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-
-use overload '@{}' => sub { shift->{MB_messages} }
- , '""' => 'name'
- , 'cmp' => sub {$_[0]->name cmp "${_[1]}"};
-
-#-------------------------------------------
-
-
-sub new(@)
-{ my $class = shift;
-
- if($class eq __PACKAGE__)
- { my $package = __PACKAGE__;
-
- croak <<USAGE;
-You should not instantiate $package directly, but rather one of the
-sub-classes, such as Mail::Box::Mbox. If you need automatic folder
-type detection then use Mail::Box::Manager.
-USAGE
- }
-
- my %args = @_;
- weaken $args{manager}; # otherwise, the manager object may live too long
-
- my $self = $class->SUPER::new
- ( @_
- , init_options => \%args # for clone
- ) or return;
-
- $self->read or return
- if $self->{MB_access} =~ /r|a/;
-
- $self;
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- return unless defined $self->SUPER::init($args);
-
- my $class = ref $self;
- my $foldername = $args->{folder} || $ENV{MAIL};
- unless($foldername)
- { $self->log(ERROR => "No folder name specified.");
- return;
- }
-
- $self->{MB_foldername} = $foldername;
- $self->{MB_init_options} = $args->{init_options};
- $self->{MB_coerce_opts} = $args->{coerce_options} || [];
- $self->{MB_access} = $args->{access} || 'r';
- $self->{MB_remove_empty}
- = defined $args->{remove_when_empty} ? $args->{remove_when_empty} : 1;
-
- $self->{MB_save_on_exit}
- = defined $args->{save_on_exit} ? $args->{save_on_exit} : 1;
-
- $self->{MB_messages} = [];
- $self->{MB_msgid} = {};
- $self->{MB_organization} = $args->{organization} || 'FILE';
- $self->{MB_linesep} = "\n";
- $self->{MB_keep_dups} = !$self->writable || $args->{keep_dups};
- $self->{MB_fix_headers} = $args->{fix_headers};
-
- my $folderdir = $self->folderdir($args->{folderdir});
- $self->{MB_trusted} = exists $args->{trusted} ? $args->{trusted}
- : substr($foldername, 0, 1) eq '=' ? 1
- : !defined $folderdir ? 0
- : substr($foldername, 0, length $folderdir) eq $folderdir;
-
- if(exists $args->{manager})
- { $self->{MB_manager} = $args->{manager};
- weaken($self->{MB_manager});
- }
-
- my $message_type = $self->{MB_message_type}
- = $args->{message_type} || $class . '::Message';
- $self->{MB_body_type}
- = $args->{body_type} || 'Mail::Message::Body::Lines';
- $self->{MB_body_delayed_type}
- = $args->{body_delayed_type}|| 'Mail::Message::Body::Delayed';
- $self->{MB_head_delayed_type}
- = $args->{head_delayed_type}|| 'Mail::Message::Head::Delayed';
- $self->{MB_multipart_type}
- = $args->{multipart_type} || 'Mail::Message::Body::Multipart';
- $self->{MB_field_type} = $args->{field_type};
-
- my $headtype = $self->{MB_head_type}
- = $args->{head_type} || 'Mail::Message::Head::Complete';
-
- my $extract = $args->{extract} || 'extractDefault';
- $self->{MB_extract}
- = ref $extract eq 'CODE' ? $extract
- : $extract eq 'ALWAYS' ? sub {1}
- : $extract eq 'LAZY' ? sub {0}
- : $extract eq 'NEVER' ? sub {1} # compatibility
- : $extract =~ m/\D/ ? sub {no strict 'refs';shift->$extract(@_)}
- : sub { my $size = $_[1]->guessBodySize;
- defined $size && $size < $extract;
- };
-
- #
- # Create a locker.
- #
-
- $self->{MB_locker}
- = $args->{locker}
- || Mail::Box::Locker->new
- ( folder => $self
- , method => $args->{lock_type}
- , timeout => $args->{lock_timeout}
- , expires => $args->{lock_wait}
- , file => ($args->{lockfile} || $args->{lock_file})
- );
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub folderdir(;$)
-{ my $self = shift;
- $self->{MB_folderdir} = shift if @_;
- $self->{MB_folderdir};
-}
-
-sub foundIn($@) { shift->notImplemented }
-
-#-------------------------------------------
-
-
-sub name() {shift->{MB_foldername}}
-
-#-------------------------------------------
-
-
-sub type() {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub url()
-{ my $self = shift;
- $self->type . ':' . $self->name;
-}
-
-#-------------------------------------------
-
-
-sub size() { sum map { $_->size } shift->messages('ACTIVE') }
-
-#-------------------------------------------
-
-
-sub update(@)
-{ my $self = shift;
-
- $self->updateMessages
- ( trusted => $self->{MB_trusted}
- , head_type => $self->{MB_head_type}
- , field_type => $self->{MB_field_type}
- , message_type => $self->{MB_message_type}
- , body_delayed_type => $self->{MB_body_delayed_type}
- , head_delayed_type => $self->{MB_head_delayed_type}
- , @_
- );
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub organization() { shift->notImplemented }
-
-#-------------------------------------------
-
-
-sub addMessage($@)
-{ my $self = shift;
- my $message = shift or return $self;
- my %args = @_;
-
- confess <<ERROR if $message->can('folder') && defined $message->folder;
-You cannot add a message which is already part of a folder to a new
-one. Please use moveTo or copyTo.
-ERROR
-
- # Force the message into the right folder-type.
- my $coerced = $self->coerce($message);
- $coerced->folder($self);
-
- unless($coerced->head->isDelayed)
- { # Do not add the same message twice, unless keep_dups.
- my $msgid = $coerced->messageId;
-
- unless($self->{MB_keep_dups})
- { if(my $found = $self->messageId($msgid))
- { $coerced->label(deleted => 1);
- return $found;
- }
- }
-
- $self->messageId($msgid, $coerced);
- $self->toBeThreaded($coerced);
- }
-
- $self->storeMessage($coerced);
- $coerced;
-}
-
-#-------------------------------------------
-
-
-
-sub addMessages(@)
-{ my $self = shift;
- map {$self->addMessage($_)} @_;
-}
-
-#-------------------------------------------
-
-
-sub copyTo($@)
-{ my ($self, $to, %args) = @_;
-
- my $select = $args{select} || 'ACTIVE';
- my $subfolders = exists $args{subfolders} ? $args{subfolders} : 1;
- my $can_recurse = not $self->isa('Mail::Box::POP3');
-
- my ($flatten, $recurse)
- = $subfolders eq 'FLATTEN' ? (1, 0)
- : $subfolders eq 'RECURSE' ? (0, 1)
- : !$subfolders ? (0, 0)
- : $can_recurse ? (0, 1)
- : (1, 0);
-
- my $delete = $args{delete_copied} || 0;
- my $share = $args{share} || 0;
-
- $self->_copy_to($to, $select, $flatten, $recurse, $delete, $share);
-}
-
-# Interface may change without warning.
-sub _copy_to($@)
-{ my ($self, $to, @options) = @_;
- my ($select, $flatten, $recurse, $delete, $share) = @options;
-
- $self->log(ERROR => "Destination folder $to is not writable."),
- return unless $to->writable;
-
- # Take messages from this folder.
- my @select = $self->messages($select);
- $self->log(PROGRESS =>
- "Copying ". at select." messages from $self to $to.");
-
- foreach my $msg (@select)
- { if($msg->copyTo($to, share => $share))
- { $msg->label(deleted => 1) if $delete }
- else { $self->log(ERROR => "Copying failed for one message.") }
- }
-
- return $self unless $flatten || $recurse;
-
- # Take subfolders
-
- SUBFOLDER:
- foreach ($self->listSubFolders(check => 1))
- { my $subfolder = $self->openSubFolder($_, access => 'r');
- $self->log(ERROR => "Unable to open subfolder $_"), next
- unless defined $subfolder;
-
- if($flatten) # flatten
- { unless($subfolder->_copy_to($to, @options))
- { $subfolder->close;
- return;
- }
- }
- else # recurse
- { my $subto = $to->openSubFolder($_, create => 1, access => 'rw');
- unless($subto)
- { $self->log(ERROR => "Unable to create subfolder $_ of $to");
- next SUBFOLDER;
- }
-
- unless($subfolder->_copy_to($subto, @options))
- { $subfolder->close;
- $subto->close;
- return;
- }
-
- $subto->close;
- }
-
- $subfolder->close;
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub close(@)
-{ my ($self, %args) = @_;
- my $force = $args{force} || 0;
-
- return 1 if $self->{MB_is_closed};
- $self->{MB_is_closed}++;
-
- # Inform manager that the folder is closed.
- my $manager = delete $self->{MB_manager};
- $manager->close($self, close_by_self =>1)
- if defined $manager && !$args{close_by_manager};
-
- my $write;
- for($args{write} || 'MODIFIED')
- { $write = $_ eq 'MODIFIED' ? $self->isModified
- : $_ eq 'ALWAYS' ? 1
- : $_ eq 'NEVER' ? 0
- : croak "Unknown value to folder->close(write => $_).";
- }
-
- if($write && !$force && !$self->writable)
- { $self->log(WARNING => "Changes not written to read-only folder $self.
-Suggestion: \$folder->close(write => 'NEVER')");
- $self->locker->unlock;
- $self->{MB_messages} = []; # Boom!
- return 0;
- }
-
- my $rc = !$write
- || $self->write
- ( force => $force
- , save_deleted => $args{save_deleted} || 0
- );
-
- $self->locker->unlock;
- $self->{MB_messages} = []; # Boom!
- $rc;
-}
-
-#-------------------------------------------
-
-
-sub delete(@)
-{ my ($self, %args) = @_;
- my $recurse = exists $args{recursive} ? $args{recursive} : 1;
-
- # Extra protection: do not remove read-only folders.
- unless($self->writable)
- { $self->log(ERROR => "Folder $self not deleted: not writable.");
- $self->close(write => 'NEVER');
- return;
- }
-
- # Sub-directories need to be removed first.
- if($recurse)
- { foreach ($self->listSubFolders)
- { my $sub = $self->openRelatedFolder
- (folder => "$self/$_", access => 'd', create => 0);
- defined $sub && $sub->delete(%args);
- }
- }
-
- $self->close(write => 'NEVER');
- $self;
-}
-
-#-------------------------------------------
-
-
-sub appendMessages(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub writable() {shift->{MB_access} =~ /w|a|d/ }
-sub writeable() {shift->writable} # compatibility [typo]
-sub readable() {1} # compatibility
-
-#-------------------------------------------
-
-
-sub access() {shift->{MB_access}}
-
-#-------------------------------------------
-
-
-sub modified(;$)
-{ my $self = shift;
- return $self->isModified unless @_; # compat 2.036
-
- return
- if $self->{MB_modified} = shift; # force modified flag
-
- # unmodify all messages
- $_->modified(0) foreach $self->messages;
- 0;
-}
-
-#-------------------------------------------
-
-
-sub isModified()
-{ my $self = shift;
- return 1 if $self->{MB_modified};
-
- foreach (@{$self->{MB_messages}})
- { return $self->{MB_modified} = 1
- if $_->isDeleted || $_->isModified;
- }
-
- 0;
-}
-
-#-------------------------------------------
-
-
-sub message(;$$)
-{ my ($self, $index) = (shift, shift);
- @_ ? $self->{MB_messages}[$index] = shift : $self->{MB_messages}[$index];
-}
-
-#-------------------------------------------
-
-
-sub messageId($;$)
-{ my ($self, $msgid) = (shift, shift);
-
- if($msgid =~ m/\<([^>]+)\>/s )
- { $msgid = $1;
- $msgid =~ s/\s//gs;
-
- $self->log(WARNING => "Message-id '$msgid' does not contain a domain.")
- unless index($msgid, '@') >= 0;
- }
-
- return $self->{MB_msgid}{$msgid} unless @_;
-
- my $message = shift;
-
- # Undefine message?
- unless($message)
- { delete $self->{MB_msgid}{$msgid};
- return;
- }
-
- my $double = $self->{MB_msgid}{$msgid};
- if(defined $double && !$self->{MB_keep_dups})
- { my $head1 = $message->head;
- my $head2 = $double->head;
-
- my $subj1 = $head1->get('subject') || '';
- my $subj2 = $head2->get('subject') || '';
-
- my $to1 = $head1->get('to') || '';
- my $to2 = $head2->get('to') || '';
-
- # Auto-delete doubles.
- return $message->label(deleted => 1)
- if $subj1 eq $subj2 && $to1 eq $to2;
-
- $self->log(WARNING => "Different messages with id $msgid");
- $msgid = $message->takeMessageId(undef);
- }
-
- $self->{MB_msgid}{$msgid} = $message;
- weaken($self->{MB_msgid}{$msgid});
- $message;
-}
-
-sub messageID(@) {shift->messageId(@_)} # compatibility
-
-#-------------------------------------------
-
-
-sub find($)
-{ my ($self, $msgid) = (shift, shift);
- my $msgids = $self->{MB_msgid};
-
- if($msgid =~ m/\<([^>]*)\>/s)
- { $msgid = $1;
- $msgid =~ s/\s//gs;
- }
- else
- { # Illegal message-id
- $msgid =~ s/\s/+/gs;
- }
-
- $self->scanForMessages(undef, $msgid, 'EVER', 'ALL')
- unless exists $msgids->{$msgid};
-
- $msgids->{$msgid};
-}
-
-#-------------------------------------------
-
-
-sub messages($;$)
-{ my $self = shift;
-
- return @{$self->{MB_messages}} unless @_;
- my $nr = @{$self->{MB_messages}};
-
- if(@_==2) # range
- { my ($begin, $end) = @_;
- $begin += $nr if $begin < 0;
- $begin = 0 if $begin < 0;
- $end += $nr if $end < 0;
- $end = $nr-1 if $end >= $nr;
-
- return () if $begin > $end;
-
- my @range = @{$self->{MB_messages}}[$begin..$end];
- return @range;
- }
-
- my $what = shift;
- my $action
- = ref $what eq 'CODE'? $what
- : $what eq 'DELETED' ? sub {$_[0]->isDeleted}
- : $what eq 'ACTIVE' ? sub {not $_[0]->isDeleted}
- : $what eq 'ALL' ? sub {1}
- : $what =~ s/^\!// ? sub {not $_[0]->label($what)}
- : sub {$_[0]->label($what)};
-
- grep {$action->($_)} @{$self->{MB_messages}};
-}
-
-#-------------------------------------------
-
-
-sub nrMessages(@) { scalar shift->messages(@_) }
-
-#-------------------------------------------
-
-
-sub messageIds() { map {$_->messageId} shift->messages }
-sub allMessageIds() {shift->messageIds} # compatibility
-sub allMessageIDs() {shift->messageIds} # compatibility
-
-#-------------------------------------------
-
-
-sub current(;$)
-{ my $self = shift;
-
- unless(@_)
- { return $self->{MB_current}
- if exists $self->{MB_current};
-
- # Which one becomes current?
- my $current
- = $self->findFirstLabeled(current => 1)
- || $self->findFirstLabeled(seen => 0)
- || $self->message(-1)
- || return undef;
-
- $current->label(current => 1);
- $self->{MB_current} = $current;
- return $current;
- }
-
- my $next = shift;
- if(my $previous = $self->{MB_current})
- { $previous->label(current => 0);
- }
-
- ($self->{MB_current} = $next)->label(current => 1);
- $next;
-}
-
-#-------------------------------------------
-
-
-sub scanForMessages($$$$)
-{ my ($self, $startid, $msgids, $moment, $window) = @_;
-
- # Set-up msgid-list
- my %search = map {($_ => 1)} ref $msgids ? @$msgids : $msgids;
- return () unless keys %search;
-
- # do not run on empty folder
- my $nr_messages = $self->messages
- or return keys %search;
-
- my $startmsg = $self->messageId($startid)
- if defined $startid;
-
- # Set-up window-bound.
- my $bound = 0;
- if($window ne 'ALL' && defined $startmsg)
- { $bound = $startmsg->seqnr - $window;
- $bound = 0 if $bound < 0;
- }
-
- my $last = ($self->{MBM_last} || $nr_messages) -1;
- return keys %search if defined $bound && $bound > $last;
-
- # Set-up time-bound
- my $after = $moment eq 'EVER' ? 0
- : $moment =~ m/^\d+$/ ? $moment
- : $startmsg->timestamp - $self->timespan2seconds($moment);
-
- while($last >= $bound)
- { my $message = $self->message($last);
- my $msgid = $message->messageId; # triggers load
-
- if(delete $search{$msgid}) # where we looking for this one?
- { last unless keys %search;
- }
-
- last if $message->timestamp < $after;
- $last--;
- }
-
- $self->{MBM_last} = $last;
- keys %search;
-}
-
-#-------------------------------------------
-
-
-sub findFirstLabeled($;$$)
-{ my ($self, $label, $set, $msgs) = @_;
-
- if(!defined $set || $set)
- { my $f = first { $_->label($label) }
- (defined $msgs ? @$msgs : $self->messages);
- }
- else
- { return first { not $_->label($label) }
- (defined $msgs ? @$msgs : $self->messages);
- }
-}
-
-#-------------------------------------------
-
-
-sub listSubFolders(@) { () } # by default no sub-folders
-
-#-------------------------------------------
-
-
-sub openRelatedFolder(@)
-{ my $self = shift;
- my @options = (%{$self->{MB_init_options}}, @_);
-
- $self->{MB_manager}
- ? $self->{MB_manager}->open(@options)
- : (ref $self)->new(@options);
-}
-
-#-------------------------------------------
-
-
-sub openSubFolder($@)
-{ my $self = shift;
- my $name = $self->nameOfSubFolder(shift);
- $self->openRelatedFolder(@_, folder => $name);
-}
-
-#-------------------------------------------
-
-
-sub nameOfSubFolder($;$)
-{ my ($thing, $name) = (shift, shift);
- my $parent = @_ ? shift : ref $thing ? $thing->name : undef;
- defined $parent ? "$parent/$name" : $name;
-}
-
-#-------------------------------------------
-
-
-sub topFolderWithMessages() { 1 }
-
-#-------------------------------------------
-
-
-sub read(@)
-{ my $self = shift;
- $self->{MB_open_time} = time;
-
- local $self->{MB_lazy_permitted} = 1;
-
- # Read from existing folder.
- return unless $self->readMessages
- ( trusted => $self->{MB_trusted}
- , head_type => $self->{MB_head_type}
- , field_type => $self->{MB_field_type}
- , message_type => $self->{MB_message_type}
- , body_delayed_type => $self->{MB_body_delayed_type}
- , head_delayed_type => $self->{MB_head_delayed_type}
- , @_
- );
-
- if($self->{MB_modified})
- { $self->log(INTERNAL => "Modified $self->{MB_modified}");
- $self->{MB_modified} = 0; #after reading, no changes found yet.
- }
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub write(@)
-{ my ($self, %args) = @_;
-
- unless($args{force} || $self->writable)
- { $self->log(ERROR => "Folder $self is opened read-only.");
- return;
- }
-
- my (@keep, @destroy);
- if($args{save_deleted}) {@keep = $self->messages }
- else
- { foreach ($self->messages)
- { if($_->isDeleted)
- { push @destroy, $_;
- $_->diskDelete;
- }
- else {push @keep, $_}
- }
- }
-
- unless(@destroy || $self->isModified)
- { $self->log(PROGRESS => "Folder $self not changed, so not updated.");
- return $self;
- }
-
- $args{messages} = \@keep;
- unless($self->writeMessages(\%args))
- { $self->log(WARNING => "Writing folder $self failed.");
- return undef;
- }
-
- $self->modified(0);
- $self->{MB_messages} = \@keep;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub determineBodyType($$)
-{ my ($self, $message, $head) = @_;
-
- return $self->{MB_body_delayed_type}
- if $self->{MB_lazy_permitted}
- && ! $message->isPart
- && ! $self->{MB_extract}->($self, $head);
-
- my $bodytype = $self->{MB_body_type};
- ref $bodytype ? $bodytype->($head) : $bodytype;
-}
-
-sub extractDefault($)
-{ my ($self, $head) = @_;
- my $size = $head->guessBodySize;
- defined $size ? $size < 10000 : 0 # immediately extract < 10kb
-}
-
-sub lazyPermitted($)
-{ my $self = shift;
- $self->{MB_lazy_permitted} = shift;
-}
-
-#-------------------------------------------
-
-
-sub storeMessage($)
-{ my ($self, $message) = @_;
-
- push @{$self->{MB_messages}}, $message;
- $message->seqnr( @{$self->{MB_messages}} -1);
- $message;
-}
-
-#-------------------------------------------
-
-
-my %seps = (CR => "\015", LF => "\012", CRLF => "\015\012");
-
-sub lineSeparator(;$)
-{ my $self = shift;
- return $self->{MB_linesep} unless @_;
-
- my $sep = shift;
- $sep = $seps{$sep} if exists $seps{$sep};
-
- $self->{MB_linesep} = $sep;
- $_->lineSeparator($sep) foreach $self->messages;
- $sep;
-}
-
-#-------------------------------------------
-
-
-sub create($@) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-
-sub coerce($@)
-{ my ($self, $message) = (shift, shift);
- my $mmtype = $self->{MB_message_type};
- $message->isa($mmtype) ? $message : $mmtype->coerce($message, @_);
-}
-
-#-------------------------------------------
-
-
-sub readMessages(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub updateMessages(@) { shift }
-
-#-------------------------------------------
-
-
-sub writeMessages(@) {shift->notImplemented}
-
-#-------------------------------------------
-
-
-sub locker() { shift->{MB_locker} }
-
-#-------------------------------------------
-
-
-sub toBeThreaded(@)
-{ my $self = shift;
-
- my $manager = $self->{MB_manager}
- or return $self;
-
- $manager->toBeThreaded($self, @_);
- $self;
-}
-
-#-------------------------------------------
-
-
-sub toBeUnthreaded(@)
-{ my $self = shift;
-
- my $manager = $self->{MB_manager}
- or return $self;
-
- $manager->toBeThreaded($self, @_);
- $self;
-}
-
-#-------------------------------------------
-
-
-sub timespan2seconds($)
-{
- if( $_[1] =~ /^\s*(\d+\.?\d*|\.\d+)\s*(hour|day|week)s?\s*$/ )
- { $2 eq 'hour' ? $1 * 3600
- : $2 eq 'day' ? $1 * 86400
- : $1 * 604800; # week
- }
- else
- { $_[0]->log(ERROR => "Invalid timespan '$_' specified.");
- undef;
- }
-}
-
-#-------------------------------------------
-
-
-sub DESTROY
-{ my $self = shift;
- $self->close unless $self->inGlobalDestruction || $self->{MB_is_closed};
-}
-
-
-#-------------------------------------------
-# Instance variables
-# MB_access: new(access)
-# MB_body_type: new(body_type)
-# MB_coerce_opts: Options which have to be applied to the messages which
-# are coerced into this folder.
-# MB_current: Used by some mailbox-types to save last read message.
-# MB_field_type: new(field_type)
-# MB_folderdir: new(folderdir)
-# MB_foldername: new(folder)
-# MB_head_type: new(head_type)
-# MB_init_options: A copy of all the arguments given to the constructor
-# MB_is_closed: Whether or not the mailbox is closed
-# MB_extract: When to extract the body on the moment the header is read
-# MB_keep_dups: new(keep_dups)
-# MB_locker: A reference to the mail box locker.
-# MB_manager: new(manager)
-# MB_messages: A list of all the messages in the folder
-# MB_message_type: new(message_type)
-# MB_modified: true when the message is modified for sure
-# MB_msgid: A hash of all the messages in the mailbox, keyed on message ID
-# MB_open_time: The time at which a mail box is first opened
-# MB_organization: new(organization)
-# MB_remove_empty: new(remove_when_empty)
-# MB_save_on_exit: new(save_on_exit)
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Box.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1922 +0,0 @@
-
-=head1 NAME
-
-Mail::Box - manage a mailbox, a folder with messages
-
-
-=head1 INHERITANCE
-
- Mail::Box
- is a Mail::Reporter
-
- Mail::Box is extended by
- Mail::Box::Dir
- Mail::Box::File
- Mail::Box::Net
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open(folder => $ENV{MAIL}, ...);
- print $folder->name;
-
- # Get the first message.
- print $folder->message(0);
-
- # Delete the third message
- $folder->message(3)->delete;
-
- # Get the number of messages in scalar context.
- my $emails = $folder->messages;
-
- # Iterate over the messages.
- foreach ($folder->messages) {...} # all messages
- foreach (@$folder) {...} # all messages
-
- $folder->addMessage(Mail::Box::Message->new(...));
-
-Tied-interface:
-
- tie my(@inbox), 'Mail::Box::Tie::ARRAY', $inbox;
-
- # Four times the same:
- $inbox[3]->print; # tied
- $folder->[3]->print; # overloaded folder
- $folder->message(3)->print; # usual
- print $folder->[3]; # overloaded message
-
- tie my(%inbox), 'Mail::Box::Tie::HASH', $inbox;
-
- # Twice times the same
- $inbox{$msgid}->print; # tied
- $folder->messageId($msgid)->print;# usual
-
-
-=head1 DESCRIPTION
-
-A L<Mail::Box::Manager|Mail::Box::Manager> creates C<Mail::Box> objects. But you already
-knew, because you started with the L<Mail::Box-Overview|Mail::Box-Overview> manual page.
-That page is obligatory reading, sorry!
-
-C<Mail::Box> is the base class for accessing various types of mailboxes
-(folders) in a uniform manner. The various folder types vary on how
-they store their messages, but when some effort those differences could
-be hidden behind a general API. For example, some folders store many
-messages in one single file, where other store each message in a separate
-file withing the same directory.
-
-No object in your program will be of type C<Mail::Box>: it is only used
-as base class for the real folder types. C<Mail::Box> is extended by
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-(stringification)
-The folder objects stringify to their name. This simplifies especially
-print statements and sorting a lot.
-
-I<Example:> use overloaded folder as string
-
-
- # Three lines with overloading: resp. cmp, @{}, and ""
- foreach my $folder (sort @folders)
- { my $msgcount = @$folder;
- print "$folder contains $msgcount messages\n";
- }
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-When the folder is used as if it is a reference to an array, it will
-show the messages, like L<messages()|Mail::Box/"The messages"> and L<message()|Mail::Box/"The messages"> would do.
-
-I<Example:> use overloaded folder as array
-
-
- my $msg = $folder->[3];
- my $msg = $folder->message(3); # same
-
- foreach my $msg (@$folder) ...
- foreach my $msg ($folder->messages) ... # same
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-(string comparison) folders are compared based on their name. The sort
-rules are those of the build-in C<cmp>.
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Box-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Open a new folder. A list of labeled OPTIONS
-for the mailbox can be supplied. Some options pertain to Mail::Box, and
-others are added by sub-classes. The list below describes all the options
-provided by any Mail::Box.
-
-To control delay-loading of messages, as well the headers as the bodies,
-a set of C<*_type> options are available. C<extract> determines whether
-we want delay-loading.
-
- Option Defined in Default
- access C<'r'>
- body_delayed_type L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
- body_type <folder specific>
- coerce_options C<[]>
- create <false>
- extract C<10240>
- field_type undef
- fix_headers <false>
- folder C<$ENV{MAIL}>
- folderdir undef
- head_delayed_type L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
- head_type L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- keep_dups <false>
- lock_file undef
- lock_timeout 1 hour
- lock_type L<Mail::Box::Locker::DotLock|Mail::Box::Locker::DotLock>
- lock_wait 10 seconds
- locker undef
- log L<Mail::Reporter> C<'WARNINGS'>
- manager undef
- message_type L<Mail::Box::Message|Mail::Box::Message>
- multipart_type L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
- remove_when_empty <true>
- save_on_exit <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted <depends on folder location>
-
-. access MODE
-
-=over 4
-
-Access-rights to the folder. Folders are opened for read-only (which
-
-means write-protected) by default! MODE can be
-
-=over 4
-
-=item C<'r'>: read-only (default)
-
-=item C<'a'>: append
-
-=item C<'rw'>: read-write
-
-=item C<'d'>: delete
-=back
-
-These MODE has no relation to the modes actually used to open the folder
-files within this module. For instance, if you specify C<"rw">, and
-open the folder, only read permission on the folder-file is required.
-
-Be warned: writing a MBOX folder may create a new file to replace the old
-folder. The permissions and owner of the file may get changed by this.
-
-=back
-
-. body_delayed_type CLASS
-
-=over 4
-
-The bodies which are delayed: which will be read from file when it
-is needed, but not before.
-
-=back
-
-. body_type CLASS|CODE
-
-=over 4
-
-When messages are read from a folder-file, the headers will be stored in
-a C<head_type> object. For the body, however, there is a range of
-choices about type, which are all described in L<Mail::Message::Body|Mail::Message::Body>.
-
-Specify a CODE-reference which produces the body-type to be created, or
-a CLASS of the body which is used when the body is not a multipart or
-nested. In case of a code reference, the header structure is passed as
-first argument to the routine.
-
-Do I<not> return a delayed body-type (like C<::Delayed>), because that is
-determined by the C<extract> option while the folder is opened. Even
-delayed message will require some real body type when they get parsed
-eventually. Multiparts and nested messages are also outside your control.
-
-For instance:
-
- $mgr->open('InBox', body_type => \&which_body);
-
- sub which_body($) {
- my $head = shift;
- my $size = $head->guessBodySize || 0;
- my $type = $size > 100000 ? 'File' : 'Lines';
- "Mail::Message::Body::$type";
- }
-
-The default depends on the mail-folder type, although the general default
-is L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>. Please check the applicable
-manual pages.
-
-=back
-
-. coerce_options ARRAY
-
-=over 4
-
-Keep configuration information for messages which are coerced into the
-specified folder type, starting with a different folder type (or even
-no folder at all).
-Messages which are coerced are always fully read, so this kind of information
-does not need to be kept here.
-
-=back
-
-. create BOOLEAN
-
-=over 4
-
-Automatically create the folder when it does not exist yet. This will only
-work when access is granted for writing or appending to the folder.
-
-Be careful: you may create a different folder type than you expect unless you
-explicitly specify L<Mail::Box::Manager::open(type)|Mail::Box::Manager/"Manage open folders">.
-
-=back
-
-. extract INTEGER | CODE | METHOD | 'LAZY'|'ALWAYS'
-
-=over 4
-
-Defines when to parse (process) the content of the message.
-When the header of a message is read, you may want to postpone the
-reading of the body: header information is more often needed than
-the body data, so why parse it always together? The cost of delaying
-is not too high, and with some luck you may never need parsing the body.
-
-If you supply an INTEGER to this option, bodies of those messages with a
-total size less than that number will be extracted from the folder only
-when necessary. Messages where the size (in the C<Content-Length> field)
-is not included in the header, like often the case for multiparts and nested
-messages, will not be extracted by default.
-
-If you supply a CODE reference, that subroutine is called every time
-that the extraction mechanism wants to determine whether to parse the
-body or not. The subroutine is called with the following arguments:
-
- CODE->(FOLDER, HEAD)
-
-where FOLDER is a reference to the folder we are reading. HEAD refers to the
-L<Mail::Message::Head::Complete|Mail::Message::Head::Complete> head of the message at hand. The routine must
-return a C<true> value (extract now) or a C<false> value (be lazy, do not
-parse yet). Think about using the L<Mail::Message::Head::guessBodySize()|Mail::Message::Head/"About the body"> and
-L<Mail::Message::guessTimestamp()|Mail::Message/"The header"> on the header to determine your choice.
-
-The third possibility is to specify the NAME of a method. In that case,
-for each message is called:
-
- FOLDER->NAME(HEAD)
-
-Where each component has the same meaning as described above.
-
-The fourth way to use this option involves constants: with C<LAZY>
-all messages will be delayed. With C<ALWAYS> you enforce unconditional
-parsing, no delaying will take place. The latter is usuful when you are
-sure you always need all the messages in the folder.
-
- $folder->new(extract => 'LAZY'); # Very lazy
- $folder->new(extract => 10000); # Less than 10kB
-
- # same, but implemented yourself
- $folder->new(extract => &large);
- sub large($) {
- my ($f, $head) = @_;
- my $size = $head->guessBodySize;
- defined $size ? $size < 10000 : 1
- };
-
- # method call by name, useful for Mail::Box
- # extensions. The example selects all messages
- # sent by you to be loaded without delay.
- # Other messages will be delayed.
- $folder->new(extract => 'sent_by_me');
- sub Mail::Box::send_by_me($) {
- my ($self, $header) = @_;
- $header->get('from') =~ m/\bmy\@example.com\b/i;
- }
-
-=back
-
-. field_type CLASS
-
-=over 4
-
-The type of the fields to be used in a header. Must extend
-L<Mail::Message::Field|Mail::Message::Field>.
-
-=back
-
-. fix_headers BOOLEAN
-
-=over 4
-
-Broken MIME headers usually stop the parser: all lines not parsed are
-added to the body of the message. With this flag set, the erroneous line
-is added to the previous header field and parsing is continued.
-See L<Mail::Box::Parser::Perl::new(fix_header_errors)|Mail::Box::Parser::Perl/"METHODS">.
-
-=back
-
-. folder FOLDERNAME
-
-=over 4
-
-Which folder to open (for reading or writing). When used for reading (the
-C<access> option set to C<"r"> or C<"a">) the mailbox should already exist
-and must be readable. The file or directory of the mailbox need not exist if it
-is opened for reading and writing (C<"rw">). Write-permission is checked when
-opening an existing mailbox.
-
-The folder name can be preceded by a C<"=">, to indicate that it is named
-relative to the directory specified in new(folderdir). Otherwise, it is
-taken as relative or absolute path.
-
-=back
-
-. folderdir DIRECTORY
-
-=over 4
-
-Where are folders to be found by default? A folder-name may be preceded by
-a equals-sign (C<=>, a C<mutt> convension) to explicitly state that the folder
-is located below the default directory. For example: in case
-C<folderdir =E<gt> '/tmp'> and C<folder =E<gt> '=abc'>, the name of the
-folder-file is C<'/tmp/abc'>. Each folder type has already some default set.
-
-=back
-
-. head_delayed_type CLASS
-
-=over 4
-
-The headers which are delayed: which will be read from file when it
-is needed, but not before.
-
-=back
-
-. head_type CLASS
-
-=over 4
-
-The type of header which contains all header information. Must extend
-L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>.
-
-=back
-
-. keep_dups BOOLEAN
-
-=over 4
-
-Indicates whether or not duplicate messages within the folder should
-be retained. A message is considered to be a duplicate if its message-id
-is the same as a previously parsed message within the same folder. If this
-option is false (the default) such messages are automatically deleted,
-because it is considered useless to store the same message twice.
-
-=back
-
-. lock_file FILENAME
-
-=over 4
-
-The name of the file which is used to lock. This must be specified when
-locking is to be used.
-
-=back
-
-. lock_timeout SECONDS
-
-=over 4
-
-When the lock file is older than the specified number of SECONDS, it is
-considered a mistake. The original lock is released, and accepted for
-this folder.
-
-=back
-
-. lock_type CLASS|STRING|ARRAY
-
-=over 4
-
-The type of the locker object. This may be the full name of a CLASS
-which extends Mail::Box::Locker, or one of the known locker types
-C<DotLock>, C<Flock>, C<Multi>, C<NFS>, C<POSIX>, or C<NONE>. If an
-ARRAY is specified, then a Multi locker is built which uses the specified
-list.
-
-=back
-
-. lock_wait SECONDS
-
-=over 4
-
-SECONDS to wait before failing on opening this folder.
-
-=back
-
-. locker OBJECT
-
-=over 4
-
-An OBJECT which extends L<Mail::Box::Locker|Mail::Box::Locker>, and will handle folder locking
-replacing the default lock behavior.
-
-=back
-
-. log LEVEL
-
-. manager MANAGER
-
-=over 4
-
-A reference to the object which manages this folder -- typically an
-L<Mail::Box::Manager|Mail::Box::Manager> instance.
-
-=back
-
-. message_type CLASS
-
-=over 4
-
-What kind of message objects are stored in this type of folder. The
-default is L<Mail::Box::Message|Mail::Box::Message> (which is a sub-class of L<Mail::Message|Mail::Message>).
-The class you offer must be an extension of L<Mail::Box::Message|Mail::Box::Message>.
-
-=back
-
-. multipart_type CLASS
-
-=over 4
-
-The default type of objects which are to be created for multipart message
-bodies.
-
-=back
-
-. remove_when_empty BOOLEAN
-
-=over 4
-
-Determines whether to remove the folder file or directory
-automatically when the write would result in a folder without
-messages nor sub-folders.
-
-=back
-
-. save_on_exit BOOLEAN
-
-=over 4
-
-Sets the policy for saving the folder when it is closed.
-A folder can be closed manually (see L<close()|Mail::Box/"The folder">) or in a number of
-implicit ways, including on the moment the program is terminated.
-
-=back
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=over 4
-
-Flags whether to trust the data in the folder or not. Folders which
-reside in your C<folderdir> will be trusted by default (even when the
-names if not specified staring with C<=>). Folders which are outside
-the folderdir or read from STDIN (L<Mail::Message::Construct::read()|Mail::Message::Construct::Read/"Constructing a message">) are
-not trused by default, and require some extra checking.
-
-If you do not check encodings of received messages, you may print
-binary data to the screen, which is a security risk.
-
-=back
-
-=back
-
-=head2 The folder
-
-
-$obj-E<gt>B<addMessage>(MESSAGE, OPTIONS)
-
-=over 4
-
-Add a message to the folder. A message is usually a
-L<Mail::Box::Message|Mail::Box::Message> object or a sub-class thereof. The message
-shall not be in an other folder, when you use this method.
-In case it is, use L<Mail::Box::Manager::moveMessage()|Mail::Box::Manager/"Move messages to folders"> or
-L<Mail::Box::Manager::copyMessage()|Mail::Box::Manager/"Move messages to folders"> via the manager.
-
-Messages with id's which already exist in this folder are not added.
-
- Option Defined in Default
- share <not used>
-
-. share BOOLEAN
-
-=over 4
-
-Try to share the physical resource of the current message with the
-indicated message. It is sometimes possible to share messages between
-different folder types. When the sharing is not possible, than this
-option is simply ignored.
-
-Sharing the resource is quite dangerous, and only available for a
-limited number of folder types, at the moment only some L<Mail::Box::Dir|Mail::Box::Dir>
-folders; these file-based messages can be hardlinked (on platforms that
-support it). The link may get broken when one message is modified in one
-of the folders.... but maybe not, depending on the folder types involved.
-
-=back
-
-I<Example:>
-
- $folder->addMessage($msg);
- $folder->addMessages($msg1, $msg2, ...);
-
-=back
-
-$obj-E<gt>B<addMessages>(MESSAGE [, MESSAGE, ...])
-
-=over 4
-
-Adds a set of MESSAGE objects to the open folder at once. For some folder
-types this may be faster than adding them one at a time.
-
-I<Example:>
-
- $folder->addMessages($msg1, $msg2, ...);
-
-=back
-
-Mail::Box-E<gt>B<appendMessages>(OPTIONS)
-
-=over 4
-
-Append one or more messages to an unopened folder.
-Usually, this method is called by the L<Mail::Box::Manager::appendMessage()|Mail::Box::Manager/"Move messages to folders">,
-in which case the correctness of the folder type is checked.
-
-For some folder types it is required to open the folder before it can
-be used for appending. This can be fast, but this can also be very
-slow (depends on the implementation). All OPTIONS passed will also be
-used to open the folder, if needed.
-
- Option Defined in Default
- folder <required>
- message undef
- messages undef
- share <false>
-
-. folder FOLDERNAME
-
-=over 4
-
-The name of the folder to which the messages are to be appended. The folder
-implementation will avoid opening the folder when possible, because this is
-resource consuming.
-
-=back
-
-. message MESSAGE
-
-. messages ARRAY-OF-MESSAGES
-
-=over 4
-
-One reference to a MESSAGE or a reference to an ARRAY of MESSAGEs, which may
-be of any type. The messages will be first coerced into the correct
-message type to fit in the folder, and then will be added to it.
-
-=back
-
-. share BOOLEAN
-
-=over 4
-
-Try to share physical storage of the message. Only available for a
-limited number of folder types, otherwise no-op.
-
-=back
-
-I<Example:>
-
- my $message = Mail::Message->new(...);
- Mail::Box::Mbox->appendMessages
- ( folder => '=xyz'
- , message => $message
- , folderdir => $ENV{FOLDERS}
- );
-
-better:
-
- my Mail::Box::Manager $mgr;
- $mgr->appendMessages($message, folder => '=xyz');
-
-=back
-
-$obj-E<gt>B<close>(OPTIONS)
-
-=over 4
-
-Close the folder, which usually implies writing the changes. This will
-return C<false> when writing is required but fails. Please do check this
-result.
-
-WARNING: When moving messages from one folder to another, be sure to
-write the destination folder before writing and closing the source
-folder. Otherwise you may lose data if the system crashes or if there
-are software problems.
-
- Option Defined in Default
- force <false>
- save_deleted C<false>
- write C<MODIFIED>
-
-. force BOOLEAN
-
-=over 4
-
-Override the L<new(access)|Mail::Box/"Constructors"> setting which was specified when the folder
-was opened. This option only has an effect if its value is TRUE. NOTE:
-Writing to the folder may not be permitted by the operating system,
-in which case even C<force> will not help.
-
-=back
-
-. save_deleted BOOLEAN
-
-=over 4
-
-Do also write messages which where flagged to be deleted to their folder. The
-flag for deletion is conserved (when possible), which means that a re-open of
-the folder may remove the messages for real. See L<write(save_deleted)|Mail::Box/"Internals">.
-
-=back
-
-. write 'ALWAYS'|'NEVER'|'MODIFIED'
-
-=over 4
-
-Specifies whether the folder should be written. As could be expected,
-C<ALWAYS> means always (even if there are no changes), C<NEVER> means
-that changes to the folder will be lost, and C<MODIFIED> only saves the
-folder if there are any changes.
-
-=back
-
-I<Example:>
-
- my $f = $mgr->open('spam', access => 'rw')
- or die "Cannot open spam: $!\n";
-
- $f->message(0)->delete
- if $f->messages;
-
- $f->close
- or die "Couldn't write $f: $!\n";
-
-=back
-
-$obj-E<gt>B<copyTo>(FOLDER, OPTIONS)
-
-=over 4
-
-Copy the folder's messages to a new folder. The new folder may be of
-a different type.
-
- Option Defined in Default
- delete_copied <false>
- select 'ACTIVE'
- share <not used>
- subfolders <folder type dependent>
-
-. delete_copied BOOLEAN
-
-=over 4
-
-Flag the messages from the source folder to be deleted, just after it
-was copied. The deletion will only take effect when the originating
-folder is closed.
-
-=back
-
-. select 'ACTIVE'|'DELETED'|'ALL'|LABEL|!LABEL|FILTER
-
-=over 4
-
-Which messages are to be copied. See the description of L<messages()|Mail::Box/"The messages">
-about how this works.
-
-=back
-
-. share BOOLEAN
-
-=over 4
-
-Try to share the message between the folders. Some L<Mail::Box::Dir|Mail::Box::Dir>
-folder types do support it by creating a hardlink (on UNIX/Linux).
-
-=back
-
-. subfolders BOOLEAN|'FLATTEN'|'RECURSE'
-
-=over 4
-
-How to handle sub-folders. When false (C<0> or C<undef>), sub-folders
-are simply ignored. With C<FLATTEN>, messages from sub-folders are
-included in the main copy. C<RECURSE> recursively copies the
-sub-folders as well. By default, when the destination folder
-supports sub-folders C<RECURSE> is used, otherwise C<FLATTEN>. A value
-of true will select the default.
-
-=back
-
-I<Example:>
-
- my $mgr = Mail::Box::Manager->new;
- my $imap = $mgr->open(type => 'imap', host => ...);
- my $mh = $mgr->open(type => 'mh', folder => '/tmp/mh',
- create => 1, access => 'w');
-
- $imap->copyTo($mh, delete_copied => 1);
- $mh->close; $imap->close;
-
-=back
-
-$obj-E<gt>B<delete>(OPTIONS)
-
-=over 4
-
-Remove the specified folder file or folder directory (depending on
-the type of folder) from disk. Of course, THIS IS DANGEROUS: you "may"
-lose data. Returns a C<true> value on success.
-
-WARNING: When moving messages from one folder to another, be sure to write the
-destination folder before deleting the source folder. Otherwise you may lose
-data if the system crashes or if there are software problems.
-
- Option Defined in Default
- recursive 1
-
-. recursive BOOLEAN
-
-I<Example:> removing an open folder
-
-
- my $folder = Mail::Box::Mbox->new(folder => 'InBox', access => 'rw');
- ... some other code ...
- $folder->delete;
-
-I<Example:> removing an closed folder
-
-
- my $folder = Mail::Box::Mbox->new(folder => 'INBOX', access => 'd');
- $folder->delete;
-
-=back
-
-$obj-E<gt>B<folderdir>([DIRECTORY])
-
-=over 4
-
-Get or set the DIRECTORY which is used to store mail-folders by default.
-
-I<Example:>
-
- print $folder->folderdir;
- $folder->folderdir("$ENV{HOME}/nsmail");
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-Returns the name of the folder. What the name represents depends on
-the actual type of mailbox used.
-
-I<Example:>
-
- print $folder->name;
- print "$folder"; # overloaded stringification
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-Returns how the folder is organized: as one C<FILE> with many messages,
-a C<DIRECTORY> with one message per file, or by a C<REMOTE> server.
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-Returns the size of the folder in bytes, not counting in the deleted
-messages. The error in the presented result may be as large as 10%,
-because the in-memory representation of messages is not always the
-same as the size when they are written.
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-Returns a name for the type of mail box. This can be C<mbox>, C<mh>,
-C<maildir>, or C<pop3>.
-
-=back
-
-$obj-E<gt>B<update>(OPTIONS)
-
-=over 4
-
-Read new messages from the folder, which where received after opening
-it. This is quite dangerous and shouldn't be possible: folders which
-are open are locked. However, some applications do not use locks or
-the wrong kind of locks. This method reads the changes (not always
-failsafe) and incorporates them in the open folder administration.
-
-The OPTIONS are extra values which are passed to the
-L<updateMessages()|Mail::Box/"Internals"> method which is doing the actual work here.
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-Represent the folder as a URL (Universal Resource Locator) string. You may
-pass such a URL as folder name to L<Mail::Box::Manager::open()|Mail::Box::Manager/"Manage open folders">.
-
-I<Example:>
-
- print $folder->url;
- # may result in
- # mbox:/var/mail/markov or
- # pop3://user:password@pop.aol.com:101
-
-=back
-
-=head2 Folder flags
-
-
-$obj-E<gt>B<access>
-
-=over 4
-
-Returns the access mode of the folder, as set by L<new(access)|Mail::Box/"Constructors">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-Checks if the folder, as stored in memory, is modified. A true value is
-returned when any of the messages is to be deleted, has changed, or messages
-were added after the folder was read from file.
-
-WARNING: this flag is not related to an external change to the folder
-structure on disk. Have a look at L<update()|Mail::Box/"The folder"> for that.
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-Sets whether the folder is modified or not.
-
-=back
-
-$obj-E<gt>B<writable>
-
-=over 4
-
-Checks whether the current folder is writable.
-
-I<Example:>
-
- $folder->addMessage($msg) if $folder->writable;
-
-=back
-
-=head2 The messages
-
-
-$obj-E<gt>B<current>([NUMBER|MESSAGE|MESSAGE-ID])
-
-=over 4
-
-Some mail-readers keep the I<current> message, which represents the last
-used message. This method returns [after setting] the current message.
-You may specify a NUMBER, to specify that that message number is to be
-selected as current, or a MESSAGE/MESSAGE-ID (as long as you are sure
-that the header is already loaded, otherwise they are not recognized).
-
-I<Example:>
-
- $folder->current(0);
- $folder->current($message);
-
-=back
-
-$obj-E<gt>B<find>(MESSAGE-ID)
-
-=over 4
-
-Like L<messageId()|Mail::Box/"The messages">, this method searches for a message with the
-MESSAGE-ID, returning the corresponding message object. However, C<find>
-will cause unparsed message in the folder to be parsed until the message-id
-is found. The folder will be scanned back to front.
-
-=back
-
-$obj-E<gt>B<findFirstLabeled>(LABEL, [BOOLEAN, [ARRAY-OF-MSGS]])
-
-=over 4
-
-Find the first message which has this LABEL with the correct setting. The
-BOOLEAN indicates whether any true value or any false value is to
-be found. By default, a true value is searched for. When a message
-does not have the requested label, it is taken as false.
-
-I<Example:> looking for a labeled message
-
-
- my $current = $folder->findFirstLabeled('current');
-
- my $first = $folder->findFirstLabeled(seen => 0);
-
- my $last = $folder->findFirstLabeled(seen => 0,
- [ reverse $self->messages('ACTIVE') ] )
-
-=back
-
-$obj-E<gt>B<message>(INDEX [,MESSAGE])
-
-=over 4
-
-Get or set a message with on a certain index. Messages which are flagged
-for deletion are counted. Negative indexes start at the end of the folder.
-
-I<Example:>
-
- my $msg = $folder->message(3);
- $folder->message(3)->delete; # status changes to `deleted'
- $folder->message(3, $msg);
- print $folder->message(-1); # last message.
-
-=back
-
-$obj-E<gt>B<messageId>(MESSAGE-ID [,MESSAGE])
-
-=over 4
-
-With one argument, returns the message in the folder with the specified
-MESSAGE-ID. If a reference to a message object is passed as the optional
-second argument, the message is first stored in the folder, replacing any
-existing message whose message ID is MESSAGE-ID. (The message ID of MESSAGE
-need not match MESSAGE-ID.)
-
-!!WARNING!!: when the message headers are delay-parsed, the message
-might be in the folder but not yet parsed into memory. In this case, use
-L<find()|Mail::Box/"The messages"> instead of C<messageId()> if you really need a thorough search.
-This is especially the case for directory organized folders without
-special indexi, like L<Mail::Box::MH|Mail::Box::MH>.
-
-The MESSAGE-ID may still be in angles, which will be stripped. In that
-case blanks (which origin from header line folding) are removed too. Other
-info around the angles will be removed too.
-
-I<Example:>
-
- my $msg = $folder->messageId('<complex-message.id>');
- $folder->messageId("<complex-message\n.id>", $msg);
- my $msg = $folder->messageId('complex-message.id');
- my $msg = $folder->messageId('garbage <complex-message.id> trash');
-
-=back
-
-$obj-E<gt>B<messageIds>
-
-=over 4
-
-Returns a list of I<all> message-ids in the folder, including
-those of messages which are to be deleted.
-
-For some folder-types (like MH), this method may cause all message-files
-to be read. See their respective manual pages.
-
-I<Example:>
-
- foreach my $id ($folder->messageIds) {
- $folder->messageId($id)->print;
- }
-
-=back
-
-$obj-E<gt>B<messages>(['ALL',RANGE,'ACTIVE','DELETED',LABEL,!LABEL,FILTER])
-
-=over 4
-
-Returns multiple messages from the folder. The default is C<ALL>
-which will return (as expected maybe) all the messages in the
-folder. The C<ACTIVE> flag will return the messages not flagged for
-deletion. This is the opposite of C<DELETED>, which returns all
-messages from the folder which will be deleted when the folder is
-closed.
-
-You may also specify a RANGE: two numbers specifying begin and end
-index in the array of messages. Negative indexes count from the
-end of the folder. When an index is out-of-range, the returned
-list will be shorter without complaints.
-
-Everything else than the predefined names is seen as labels. The messages
-which have that label set will be returned. When the sequence starts
-with an exclamation mark (!), the search result is reversed.
-
-For more complex searches, you can specify a FILTER, which is
-simply a code reference. The message is passed as only argument.
-
-I<Example:>
-
- foreach my $message ($folder->messages) {...}
- foreach my $message (@$folder) {...}
-
- # twice the same
- my @messages = $folder->messages;
- my @messages = $folder->messages('ALL');
-
- # Selection based on a range (begin, end)
- my $subset = $folder->messages(10,-8);
-
- # twice the same:
- my @not_deleted= grep {not $_->isDeleted}
- $folder->messages;
- my @not_deleted= $folder->messages('ACTIVE');
-
- # scalar context the number of messages
- my $nr_of_msgs = $folder->messages;
-
- # third message, via overloading
- $folder->[2];
-
- # Selection based on labels
- $mgr->moveMessages($spam, $inbox->message('spam'));
- $mgr->moveMessages($archive, $inbox->message('seen'));
-
-=back
-
-$obj-E<gt>B<nrMessages>(OPTIONS)
-
-=over 4
-
-Simply calls L<messages()|Mail::Box/"The messages"> in scalar context to return a count instead
-of the messages itself. Some people seem to understand this better.
-
-=back
-
-$obj-E<gt>B<scanForMessages>(MESSAGE, MESSAGE-IDS, TIMESPAN, WINDOW)
-
-=over 4
-
-You start with a MESSAGE, and are looking for a set of messages
-which are related to it. For instance, messages which appear in
-the 'In-Reply-To' and 'Reference' header fields of that message.
-These messages are known by their MESSAGE-IDS and you want to find
-them in the folder.
-
-When all message-ids are known, then looking-up messages is simple:
-they are found in a plain hash using L<messageId()|Mail::Box/"The messages">. But Mail::Box
-is lazy where it can, so many messages may not have been read from
-file yet, and that's the prefered situation, because that saves
-time and memory.
-
-It is not smart to search for the messages from front to back in
-the folder: the chances are much higher that related message
-reside closely to each other. Therefore, this method starts
-scanning the folder from the specified MESSAGE, back to the front
-of the folder.
-
-The TIMESPAN can be used to terminate the search based on the time
-enclosed in the message. When the constant string C<EVER> is used as
-TIMESPAN, then the search is not limited by that. When an integer
-is specified, it will be used as absolute time in time-ticks as
-provided by your platform dependent C<time> function. In other cases,
-it is passed to L<timespan2seconds()|Mail::Box/"Other methods"> to determine the threshold
-as time relative to the message's time.
-
-The WINDOW is used to limit the search in number of messages to be
-scanned as integer or constant string C<ALL>.
-
-Returned are the message-ids which were not found during the scan.
-Be warned that a message-id could already be known and therefore not
-found: check that first.
-
-I<Example:> scanning through a folder for a message
-
-
- my $refs = $msg->get('References') or return;
- my @msgids = $ref =~ m/\<([^>]+\>/g;
- my @failed = $folder->scanForMessages($msg, \@msgids, '3 days', 50);
-
-=back
-
-=head2 Sub-folders
-
-
-$obj-E<gt>B<listSubFolders>(OPTIONS)
-
-Mail::Box-E<gt>B<listSubFolders>(OPTIONS)
-
-=over 4
-
-List the names of all sub-folders to this folder, not recursively
-decending. Use these names as argument to L<openSubFolder()|Mail::Box/"Sub-folders">, to get
-access to that folder.
-
-For MBOX folders, sub-folders are simulated.
-
- Option Defined in Default
- check <false>
- folder <from calling object>
- folderdir <from folder>
- skip_empty <false>
-
-. check BOOLEAN
-
-=over 4
-
-Should all returned foldernames be checked to be sure that they are of
-the right type? Each sub-folder may need to be opened to check this,
-with a folder type dependent penalty (in some cases very expensive).
-
-=back
-
-. folder FOLDERNAME
-
-=over 4
-
-The folder whose sub-folders should be listed.
-
-=back
-
-. folderdir DIRECTORY
-
-. skip_empty BOOL
-
-=over 4
-
-Shall empty folders (folders which currently do not contain any messages)
-be included? Empty folders are not useful to open, but may be useful
-to save to.
-
-=back
-
-I<Example:>
-
- my $folder = $mgr->open('=in/new');
- my @subs = $folder->listSubFolders;
-
- my @subs = Mail::Box::Mbox->listSubFolders(folder => '=in/new');
- my @subs = Mail::Box::Mbox->listSubFolders; # toplevel folders.
-
-=back
-
-$obj-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-Mail::Box-E<gt>B<nameOfSubFolder>(SUBNAME, [PARENTNAME])
-
-=over 4
-
-Returns the constructed name of the folder with NAME, which is a
-sub-folder of this current one. You have either to call this method
-as instance method, or specify a PARENTNAME.
-
-I<Example:> how to get the name of a subfolder
-
-
- my $sub = Mail::Box::Mbox->nameOfSubfolder('xyz', 'abc');
- print $sub; # abc/xyz
-
- my $f = Mail::Box::Mbox->new(folder => 'abc');
- print $f->nameOfSubfolder('xyz'); # abc/xyz
-
- my $sub = Mail::Box::Mbox->nameOfSubfolder('xyz', undef);
- print $sub; # xyz
-
-=back
-
-$obj-E<gt>B<openRelatedFolder>(OPTIONS)
-
-=over 4
-
-Open a folder (usually a sub-folder) with the same options as this one.
-If there is a folder manager in use, it will be informed about this new
-folder. OPTIONS overrule the options which where used for the folder
-this method is called upon.
-
-=back
-
-$obj-E<gt>B<openSubFolder>(SUBNAME, OPTIONS)
-
-=over 4
-
-Open (or create, if it does not exist yet) a new subfolder in an
-existing folder.
-
-I<Example:>
-
- my $folder = Mail::Box::Mbox->new(folder => '=Inbox');
- my $sub = $folder->openSubFolder('read');
-
-=back
-
-$obj-E<gt>B<topFolderWithMessages>
-
-Mail::Box-E<gt>B<topFolderWithMessages>
-
-=over 4
-
-Some folder types can have messages in the top-level folder, some other
-can't.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-Coerce the MESSAGE to be of the correct type to be placed in the
-folder. You can specify Mail::Internet and MIME::Entity objects
-here: they will be translated into Mail::Message messages first.
-
-=back
-
-$obj-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-Mail::Box-E<gt>B<create>(FOLDERNAME, OPTIONS)
-
-=over 4
-
-Create a folder. If the folder already exists, it will be left unchanged.
-The folder is created, but not opened! If you want to open a file which
-may need to be created, then use L<Mail::Box::Manager::open()|Mail::Box::Manager/"Manage open folders"> with the
-create flag, or L<Mail::Box::new(create)|Mail::Box/"Constructors">.
-
- Option Defined in Default
- folderdir undef
-
-. folderdir DIRECTORY
-
-=over 4
-
-When the foldername is preceded by a C<=>, the C<folderdir> directory
-will be searched for the named folder.
-
-=back
-
-=back
-
-$obj-E<gt>B<determineBodyType>(MESSAGE, HEAD)
-
-=over 4
-
-Determine which kind of body will be created for this message when
-reading the folder initially.
-
-=back
-
-Mail::Box-E<gt>B<foundIn>([FOLDERNAME], OPTIONS)
-
-=over 4
-
-Determine if the specified folder is of the type handled by the
-folder class. This method is extended by each folder sub-type.
-
-The FOLDERNAME specifies the name of the folder, as is specified by the
-application. You need to specified the C<folder> option when you skip
-this first argument.
-
-OPTIONS is a list of extra information for the request. Read
-the documentation for each type of folder for type specific options, but
-each folder class will at least support the C<folderdir> option:
-
- Option Defined in Default
- folderdir undef
-
-. folderdir DIRECTORY
-
-=over 4
-
-The location where the folders of this class are stored by default. If the
-user specifies a name starting with a C<=>, that indicates that the folder is
-to be found in this default DIRECTORY.
-
-=back
-
-I<Example:>
-
- Mail::Box::Mbox->foundIn('=markov',
- folderdir => "$ENV{HOME}/Mail");
- Mail::Box::MH->foundIn(folder => '=markov');
-
-=back
-
-$obj-E<gt>B<lineSeparator>([STRING|'CR'|'LF'|'CRLF'])
-
-=over 4
-
-Returns the character or characters used to separate lines in the folder
-file, optionally after setting it to STRING, or one of the constants.
-The first line of the folder sets the default.
-
-UNIX uses a LF character, Mac a CR, and Windows both a CR and a LF. Each
-separator will be represented by a "\n" within your program. However,
-when processing platform foreign folders, complications appear. Think about
-the C<Size> field in the header.
-
-When the separator is changed, the whole folder me be rewritten. Although,
-that may not be required.
-
-=back
-
-$obj-E<gt>B<locker>
-
-=over 4
-
-Returns the locking object.
-
-=back
-
-$obj-E<gt>B<read>(OPTIONS)
-
-=over 4
-
-Read messages from the folder into memory. The OPTIONS are folder
-specific. Do not call C<read()> yourself: it will be called for you
-when you open the folder via the manager or instantiate a folder
-object directly.
-
-NOTE: if you are copying messages from one folder to another, use
-L<addMessages()|Mail::Box/"The folder"> instead of C<read()>.
-
-I<Example:>
-
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open('InBox'); # implies read
- my $folder = Mail::Box::Mbox->new(folder => 'Inbox'); # same
-
-=back
-
-$obj-E<gt>B<readMessages>(OPTIONS)
-
-=over 4
-
-Called by L<read()|Mail::Box/"Internals"> to actually read the messages from one specific
-folder type. The L<read()|Mail::Box/"Internals"> organizes the general activities.
-
-The OPTIONS are C<trusted>, C<head_type>, C<field_type>,
-C<message_type>, C<body_delayed_type>, and C<head_delayed_type> as
-defined by the folder at hand. The defaults are the constructor
-defaults (see L<new()|Mail::Box/"Constructors">).
-
-=back
-
-$obj-E<gt>B<storeMessage>(MESSAGE)
-
-=over 4
-
-Store the message in the folder without the checks as performed by
-L<addMessage()|Mail::Box/"The folder">.
-
-=back
-
-$obj-E<gt>B<toBeThreaded>(MESSAGES)
-
-=over 4
-
-The specified message is ready to be removed from a thread.
-This will be passed on to the mail-manager, which keeps an overview on
-which thread-detection objects are floating around.
-
-=back
-
-$obj-E<gt>B<toBeUnthreaded>(MESSAGES)
-
-=over 4
-
-The specified message is ready to be included in a thread.
-This will be passed on to the mail-manager, which keeps an overview on
-which thread-detection objects are floating around.
-
-=back
-
-$obj-E<gt>B<updateMessages>(OPTIONS)
-
-=over 4
-
-Called by L<update()|Mail::Box/"The folder"> to read messages which arrived in the folder
-after it was opened. Sometimes, external applications dump messages
-in a folder without locking (or using a different lock than your
-application does).
-
-Although this is quite a dangerous, it only fails when a folder is
-updated (reordered or message removed) at exactly the same time as
-new messages arrive. These collisions are sparse.
-
-The options are the same as for L<readMessages()|Mail::Box/"Internals">.
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-Write the data to disk. The folder (a C<true> value) is returned if
-successful. Deleted messages are transformed into destroyed messages:
-their memory is freed.
-
-WARNING: When moving messages from one folder to another, be sure to
-write (or L<close()|Mail::Box/"The folder">) the destination folder before writing (or closing)
-the source folder: otherwise you may lose data if the system crashes or
-if there are software problems.
-
-To write a folder to a different file, you must first create a new folder,
-then move all the messages, and then write or L<close()|Mail::Box/"The folder"> that new folder.
-
- Option Defined in Default
- force <false>
- save_deleted <false>
-
-. force BOOLEAN
-
-=over 4
-
-Override write-protection with L<new(access)|Mail::Box/"Constructors"> while opening the folder
-(whenever possible, it may still be blocked by the operating system).
-
-=back
-
-. save_deleted BOOLEAN
-
-=over 4
-
-Do also write messages which where flagged to be deleted to their folder. The
-flag for deletion is conserved (when possible), which means that a re-open of
-the folder may remove the messages for real. See L<close(save_deleted)|Mail::Box/"The folder">.
-
-=back
-
-=back
-
-$obj-E<gt>B<writeMessages>(OPTIONS)
-
-=over 4
-
-Called by L<write()|Mail::Box/"Internals"> to actually write the messages from one specific
-folder type. The C<write> organizes the general activities. All options
-to L<write()|Mail::Box/"Internals"> are passed to C<writeMessages> as well. Besides, a few extra
-are added by C<write> itself.
-
- Option Defined in Default
- messages <required>
-
-. messages ARRAY
-
-=over 4
-
-The messages to be written, which is a sub-set of all messages in the
-current folder.
-
-=back
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<timespan2seconds>(TIME)
-
-Mail::Box-E<gt>B<timespan2seconds>(TIME)
-
-=over 4
-
-TIME is a string, which starts with a float, and then one of the
-words 'hour', 'hours', 'day', 'days', 'week', or 'weeks'. For instance:
-'1 hour' or '4 weeks'.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Box-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Box-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Box-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-This method is called by Perl when an folder-object is no longer accessible
-by the rest of the program.
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Changes not written to read-only folder $self.
-
-You have opened the folder read-only --which is the default set
-by L<new(access)|Mail::Box/"Constructors">--, made modifications, and now want to close it.
-Set L<close(force)|Mail::Box/"The folder"> if you want to overrule the access mode, or close
-the folder with L<close(write)|Mail::Box/"The folder"> set to C<NEVER>.
-
-I<Error:> Copying failed for one message.
-
-For some reason, for instance disc full, removed by external process, or
-read-protection, it is impossible to copy one of the messages. Copying will
-proceed for the other messages.
-
-I<Error:> Destination folder $name is not writable.
-
-The folder where the messages are copied to is not opened with write
-access (see L<new(access)|Mail::Box/"Constructors">). This has no relation with write permission
-to the folder which is controled by your operating system.
-
-I<Warning:> Different messages with id $msgid
-
-The message id is discovered more than once within the same folder, but the
-content of the message seems to be different. This should not be possible:
-each message must be unique.
-
-I<Error:> Folder $name is opened read-only
-
-You can not write to this folder unless you have opened the folder to
-write or append with L<new(access)|Mail::Box/"Constructors">, or the C<force> option is set true.
-
-I<Error:> Folder $name not deleted: not writable.
-
-The folder must be opened with write access via L<new(access)|Mail::Box/"Constructors">, otherwise
-removing it will be refused. So, you may have write-access according to
-the operating system, but that will not automatically mean that this
-C<delete> method permits you to. The reverse remark is valid as well.
-
-I<Error:> Invalid timespan '$timespan' specified.
-
-The string does not follow the strict rules of the time span syntax which
-is permitted as parameter.
-
-I<Warning:> Message-id '$msgid' does not contain a domain.
-
-According to the RFCs, message-ids need to contain a unique random part,
-then an C<@>, and then a domain name. This is made to avoid the creation
-of two messages with the same id. The warning emerges when the C<@> is
-missing from the string.
-
-I<Error:> No folder name specified.
-
-You did not specify the name of a folder to be opened. Use the
-L<new(folder)|Mail::Box/"Constructors"> option or set the C<MAIL> environment variable.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to create subfolder $name of $folder.
-
-The copy includes the subfolders, but for some reason it was not possible
-to copy one of these. Copying will proceed for all other sub-folders.
-
-I<Error:> Writing folder $name failed
-
-For some reason (you probably got more error messages about this problem)
-it is impossible to write the folder, although you should because there
-were changes made.
-
-
-=head1 DETAILS
-
-
-=head2 Different kinds of folders
-
-In general, there are three classes of folders: those who group messages
-per file, those who group messages in a directory, and those do not
-provide direct access to the message data. These folder types are
-each based on a different base class.
-
-=over 4
-
-=item * File based folders L<Mail::Box::File|Mail::Box::File>
-
-File based folders maintain a folder (a set of messages) in one
-single file. The advantage is that your folder has only one
-single file to access, which speeds-up things when all messages
-must be accessed at once.
-
-One of the main disadvantages over directory based folders
-is that you have to construct some means to keep all message apart.
-For instance MBOX adds a message separator line between the messages
-in the file, and this line can cause confusion with the message's
-contents.
-
-Where access to all messages at once is faster in file based folders,
-access to a single message is (much) slower, because the whole folder
-must be read. However, in directory based folders you have to figure-out
-which message you need, which may be a hassle as well.
-
-Examples of file based folders are MBOX, DBX, and NetScape.
-
-=item * Directory based folders L<Mail::Box::Dir|Mail::Box::Dir>
-
-In stead of collecting multiple messages in one file, you can also
-put each message in a separate file and collect those files in a
-directory to represent a folder.
-
-The main disadvantages of these folders are the enormous amount of
-tiny files you usually get in your file-system. It is extremely
-slow to search through your whole folder, because many files have
-to be opened to do so.
-
-The best feature of this organization is that each message is kept
-exactly as it was received, and can be processed with external scripts
-as well: you do not need any mail user agent (MUA).
-
-Examples of directoy organized folders are MH, Maildir, EMH, and XMH.
-
-=item * Network (external) folders L<Mail::Box::Net|Mail::Box::Net>
-
-Where both types described before provide direct access to the
-message data, maintain these folder types the message data for you:
-you have to request for messages or parts of them. These folders
-do not have a filename, file-system privileges and system locking
-to worry about, but typically require a hostname, folder and message
-IDs, and authorization.
-
-Examples of these folder types are the popular POP and IMAP, and
-database oriented message storage.
-
-=back
-
-=head2 Available folder types
-
-=over 4
-
-=item * L<Mail::Box::Dbx|Mail::Box::Dbx> (read only)
-
-Dbx files are created by Outlook Express. Using the external (optional)
-Mail::Transport::Dbx module, you can read these folders, even
-when you are running MailBox on a UNIX/Linux platform.
-
-Writing and deleting messages is not supported by the library, and
-therefore not by MailBox. Read access is enough to do folder conversions,
-for instance.
-
-=item * L<Mail::Box::IMAP4|Mail::Box::IMAP4> (partially)
-
-The IMAP protocol is very complex. Some parts are implemented to
-create (sub-optimal but usable) IMAP clients. Besides, there are
-also some parts for IMAP servers present. The most important lacking
-feature is support for encrypted connections.
-
-=item * L<Mail::Box::Maildir|Mail::Box::Maildir>
-
-Maildir folders have a directory for each folder. A folder directory
-contains C<tmp>, C<new>, and C<cur> sub-directories, each containting
-messages with a different purpose. Files with new messages are created
-in C<tmp>, then moved to C<new> (ready to be accepted). Later, they are
-moved to the C<cur> directory (accepted). Each message is one file with
-a name starting with timestamp. The name also contains flags about the
-status of the message.
-
-Maildir folders can not be used on Windows by reason of file-name
-limitations on that platform.
-
-=item * L<Mail::Box::Mbox|Mail::Box::Mbox>
-
-A folder type in which all related messages are stored in one file. This
-is a very common folder type for UNIX.
-
-=item * L<Mail::Box::MH|Mail::Box::MH>
-
-This folder creates a directory for each folder, and a message is one
-file inside that directory. The message files are numbered sequentially
-on order of arrival. A special C<.mh_sequences> file maintains flags
-about the messages.
-
-=item * L<Mail::Box::POP3|Mail::Box::POP3> (read/delete only)
-
-POP3 is a protocol which can be used to retreive messages from a
-remote system. After the connection to a POP server is made, the
-messages can be looked at and removed as if they are on the local
-system.
-
-=item * Mail::Box::Netzwert
-
-The Netzwert folder type is optimized for mailbox handling on a cluster
-of systems with a shared NFS storage. The code is not released under
-GPL (yet)
-
-=back
-
-Other folder types are on the (long) wishlist to get implemented. Please,
-help implementing more of them.
-
-=head2 Folder class implementation
-
-The class structure of folders is very close to that of messages. For
-instance, a L<Mail::Box::File::Message|Mail::Box::File::Message> relates to a L<Mail::Box::File|Mail::Box::File>
-folder. The folder types are:
-
- Mail::Box::Netzwert
- Mail::Box::Mbox | Mail::Box::Maildir Mail::Box::POP3
- | Mail::Box::Dbx | | Mail::Box::MH | Mail::Box::IMAP4
- | | | | | | |
- | | | | | | |
- Mail::Box::File Mail::Box::Dir Mail::Box::Net
- | | |
- `--------------. | .---------------'
- | | |
- Mail::Box
- |
- |
- Mail::Reporter (general base class)
-
-By far most folder features are implemented in L<Mail::Box|Mail::Box>, so
-available to all folder types. Sometimes, features which appear
-in only some of the folder types are simulated for folders that miss
-them, like sub-folder support for MBOX.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Box.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Box.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Construct.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,157 +0,0 @@
-use strict;
-use warnings;
-
-# Mail::Message::Body::Construct adds functionality to Mail::Message::Body
-
-package Mail::Message::Body;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Carp;
-use Mail::Message::Body::String;
-use Mail::Message::Body::Lines;
-
-
-sub foreachLine($)
-{ my ($self, $code) = @_;
- my $changes = 0;
- my @result;
-
- foreach ($self->lines)
- { my $becomes = $code->();
- if(defined $becomes)
- { push @result, $becomes;
- $changes++ if $becomes ne $_;
- }
- else {$changes++}
- }
-
- return $self unless $changes;
-
- ref($self)->new
- ( based_on => $self
- , data => \@result
- );
-}
-
-#------------------------------------------
-
-
-sub concatenate(@)
-{ my $self = shift;
-
- my @bodies;
- foreach (@_)
- { next unless defined $_;
- push @bodies
- , !ref $_ ? Mail::Message::Body::String->new(data => $_)
- : ref $_ eq 'ARRAY' ? Mail::Message::Body::Lines->new(data => $_)
- : $_->isa('Mail::Message') ? $_->body
- : $_->isa('Mail::Message::Body') ? $_
- : carp "Cannot concatenate element ". at bodies;
- }
-
- my @unified;
-
- my $changes = 0;
- foreach my $body (@bodies)
- { my $unified = $self->unify($body);
- if(defined $unified)
- { $changes++ unless $unified==$body;
- push @unified, $unified;
- }
- elsif($body->mimeType->mediaType eq 'text')
- { # Text stuff can be unified anyhow, although we do not want to
- # include postscript or such.
- push @unified, $body;
- }
- else { $changes++ }
- }
-
- return $self if @bodies==1 && $bodies[0]==$self; # unmodified, and single
-
- ref($self)->new
- ( based_on => $self
- , data => [ map {$_->lines} @unified ]
- );
-}
-
-#------------------------------------------
-
-
-sub attach(@)
-{ my $self = shift;
-
- my @parts;
- push @parts, shift while @_ && ref $_[0];
-
- return $self unless @parts;
- unshift @parts,
- ( $self->isNested ? $self->nested
- : $self->isMultipart ? $self->parts
- : $self
- );
-
- return $parts[0] if @parts==1;
- Mail::Message::Body::Multipart->new(parts => \@parts, @_);
-}
-
-#------------------------------------------
-
-
-# tests in t/51stripsig.t
-
-sub stripSignature($@)
-{ my ($self, %args) = @_;
-
- return $self if $self->mimeType->isBinary;
-
- my $pattern = !defined $args{pattern} ? qr/^--\s?$/
- : !ref $args{pattern} ? qr/^\Q${args{pattern}}/
- : $args{pattern};
-
- my $lines = $self->lines; # no copy!
- my $stop = defined $args{max_lines}? @$lines - $args{max_lines}
- : exists $args{max_lines} ? 0
- : @$lines-10;
-
- $stop = 0 if $stop < 0;
- my ($sigstart, $found);
-
- if(ref $pattern eq 'CODE')
- { for($sigstart = $#$lines; $sigstart >= $stop; $sigstart--)
- { next unless $pattern->($lines->[$sigstart]);
- $found = 1;
- last;
- }
- }
- else
- { for($sigstart = $#$lines; $sigstart >= $stop; $sigstart--)
- { next unless $lines->[$sigstart] =~ $pattern;
- $found = 1;
- last;
- }
- }
-
- return $self unless $found;
-
- my $bodytype = $args{result_type} || ref $self;
-
- my $stripped = $bodytype->new
- ( based_on => $self
- , data => [ @$lines[0..$sigstart-1] ]
- );
-
- return $stripped unless wantarray;
-
- my $sig = $bodytype->new
- ( based_on => $self
- , data => [ @$lines[$sigstart..$#$lines] ]
- );
-
- ($stripped, $sig);
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Construct.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Construct.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,192 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::Construct - adds functionality to Mail::Message::Body
-
-
-
-=head1 SYNOPSIS
-
-
-
-=head1 DESCRIPTION
-
-This package adds complex functionality to the L<Mail::Message::Body|Mail::Message::Body>
-class. This functions less often used, so many programs will not
-compile this package.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<attach>(MESSAGES, OPTIONS)
-
-=over 4
-
-Make a multipart containing this body and the specified MESSAGES. The
-options are passed to the constructor of the multi-part body. If you
-need more control, create the multi-part body yourself. At least
-take a look at L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>.
-
-The message-parts will be coerced into a L<Mail::Message::Part|Mail::Message::Part>, so you
-may attach Mail::Internet or MIME::Entity objects if you want --see
-L<Mail::Message::coerce()|Mail::Message/"Internals">. A new body with attached messages is
-returned.
-
-I<Example:>
-
- my $pgpkey = Mail::Message::Body::File->new(file => 'a.pgp');
- my $msg = Mail::Message->buildFromBody(
- $message->decoded->attach($pgpkey));
-
- # The last message of the $multi multiparted body becomes a coerced $entity.
- my $entity = MIME::Entity->new;
- my $multi = $msg->body->attach($entity);
-
- # Now create a new message
- my $msg = Mail::Message->new(head => ..., body => $multi);
-
-=back
-
-$obj-E<gt>B<concatenate>(COMPONENTS)
-
-=over 4
-
-Concatenate a list of elements into one new body. The encoding is defined by
-the body where this method is called upon (and which does not need to be
-included in the result).
-
-Specify a list of COMPONENTS. Each component can be
-a message (L<Mail::Message|Mail::Message>, the body of the message is used),
-a plain body (L<Mail::Message::Body|Mail::Message::Body>),
-C<undef> (which will be skipped),
-a scalar (which is split into lines), or
-an array of scalars (each providing one line).
-
-I<Example:>
-
- # all arguments are Mail::Message::Body's.
- my $sum = $body->concatenate($preamble, $body, $epilogue, "-- \n" , $sig);
-
-=back
-
-$obj-E<gt>B<foreachLine>(CODE)
-
-=over 4
-
-Create a new body by performing an action on each of its lines. If none
-of the lines change, the current body will be returned, otherwise a new
-body is created of the same type as the current.
-
-The CODE refers to a subroutine which is called, where C<$_> contains
-body's original line. DO NOT CHANGE C<$_>!!! The result of the routine
-is taken as new line. When the routine returns C<undef>, the line will be
-skipped.
-
-I<Example:>
-
- my $content = $msg->decoded;
- my $reply = $content->foreachLine( sub { '> '.$_ } );
- my $rev = $content->foreachLine( sub {reverse} );
-
- sub filled() { length $_ > 1 ? $_ : undef }
- my $nonempty = $content->foreachLine( \&filled );
-
- my $wrong = $content->foreachLine( sub {s/a/A/} ); # WRONG!!!
- my $right = $content->foreachLine(
- sub {(my $x=$_) =~ s/a/A/; $x} );
-
-=back
-
-$obj-E<gt>B<stripSignature>(OPTIONS)
-
-=over 4
-
-Strip the signature from the body. The body must already be decoded
-otherwise the wrong lines may get stripped. Returned is the stripped
-version body, and in list context also the signature, encapsulated in
-its own body object. The signature separator is the first line of the
-returned signature body.
-
-The signature is added by the sender to tell about him- or herself.
-It is superfluous in some situations, for instance if you want to create
-a reply to the person's message you do not need to include that signature.
-
-If the body had no signature, the original body object is returned,
-and C<undef> for the signature body.
-
- Option Defined in Default
- max_lines C<10>
- pattern C<qr/^--\s?$/>
- result_type <same as current>
-
-. max_lines INTEGER|undef
-
-=over 4
-
-The maximum number of lines which can be the length of a signature.
-Specify C<undef> to remove the limit.
-
-=back
-
-. pattern REGEX|STRING|CODE
-
-=over 4
-
-Which pattern defines the line which indicates the separator between
-the message and the signature. In case of a STRING, this is matched
-to the beginning of the line, and REGEX is a full regular expression.
-
-In case of CODE, each line (from last to front) is passed to the
-specified subroutine as first argument. The subroutine must return
-TRUE when the separator is found.
-
-=back
-
-. result_type CLASS
-
-=over 4
-
-The type of body to be created for the stripped body (and maybe also to
-contain the stripped signature)
-
-=back
-
-I<Example:>
-
- my $start = $message->decoded;
- my $start = $body->decoded;
-
- my $stripped = $start->stripSignature;
-
- my ($stripped, $sign) = $start->stripSignature
- (max_lines => 5, pattern => '-*-*-');
-
-=back
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Construct.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Construct.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Delayed.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,131 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Body::Delayed;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Object::Realize::Later
- becomes => 'Mail::Message::Body',
- realize => 'load',
- warn_realization => 0,
- believe_caller => 1;
-
-use Carp;
-use Scalar::Util 'weaken';
-
-
-use overload '""' => 'string_unless_carp'
- , bool => sub {1}
- , '@{}' => sub {shift->load->lines};
-
-#------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- $self->{MMB_seqnr} = -1; # for overloaded body comparison
- $self->{MMBD_message} = $args->{message}
- or $self->log(INTERNAL => "A message must be specified to a delayed body.");
-
- weaken($self->{MMBD_message});
- $self;
-}
-
-#------------------------------------------
-
-
-sub message() { shift->{MMBD_message} }
-
-#------------------------------------------
-
-
-sub modified(;$)
-{ return 0 if @_==1 || !$_[1];
- shift->forceRealize(shift);
-}
-
-#------------------------------------------
-
-
-sub isModified() { 0 }
-
-#------------------------------------------
-
-
-sub isDelayed() {1}
-
-#------------------------------------------
-
-
-sub isMultipart() {shift->message->head->isMultipart}
-
-#------------------------------------------
-
-
-sub guessSize() {shift->{MMBD_size}}
-
-#------------------------------------------
-
-
-sub nrLines()
-{ my ($self) = @_;
- defined $self->{MMBD_lines}
- ? $self->{MMBD_lines}
- : $_[0]->forceRealize->nrLines;
-}
-
-#------------------------------------------
-
-sub string_unless_carp()
-{ my $self = shift;
- return $self->load->string unless (caller)[0] eq 'Carp';
-
- (my $class = ref $self) =~ s/^Mail::Message/MM/g;
- "$class object";
-}
-
-#------------------------------------------
-
-
-sub read($$;$@)
-{ my ($self, $parser, $head, $bodytype) = splice @_, 0, 4;
- $self->{MMBD_parser} = $parser;
-
- @$self{ qw/MMBD_begin MMBD_end MMBD_size MMBD_lines/ }
- = $parser->bodyDelayed(@_);
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub fileLocation(;@) {
- my $self = shift;
- return @$self{ qw/MMBD_begin MMBD_end/ } unless @_;
- @$self{ qw/MMBD_begin MMBD_end/ } = @_;
-}
-
-#------------------------------------------
-
-
-sub moveLocation($)
-{ my ($self, $dist) = @_;
- $self->{MMBD_begin} -= $dist;
- $self->{MMBD_end} -= $dist;
- $self;
-}
-
-#------------------------------------------
-
-
-sub load() {$_[0] = $_[0]->message->loadBody}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Delayed.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Delayed.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,329 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::Delayed - body of a Mail::Message but not read yet.
-
-
-=head1 INHERITANCE
-
- Mail::Message::Body::Delayed realizes a Mail::Message::Body
-
- Mail::Message::Body::Delayed
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Message::Body
-
-
-=head1 DESCRIPTION
-
-Message bodies of this type will be replaced by another type the moment you
-access the content. In this documentation you will find the description of
-how a message body gets delay loaded.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-(stringification) Returns the body as string --which will trigger
-completion-- unless called to produce a string for C<Carp>. The latter
-to avoid deep recursions.
-
-I<Example:> stringification of delayed body
-
-
- print $msg->body; # implicit by print
-
- my $body = $msg->body;
- my $x = "$body"; # explicit by interpolation
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-When a body object is used as being an array reference, the lines of
-the body are returned. This is the same as using the C<lines> method.
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-Always returns a true value, which is needed to have overloaded
-objects to be used as in C<if($body)>. Otherwise, C<if(defined $body)>
-would be needed to avoid a runtime error.
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Body::Delayed-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- log L<Mail::Reporter> C<'WARNINGS'>
- message <required>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. log LEVEL
-
-. message MESSAGE
-
-=over 4
-
-The MESSAGE object which contains this delayed body.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<message>
-
-=over 4
-
-=back
-
-=head2 About to the payload
-
-
-$obj-E<gt>B<guessSize>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<modified>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<fileLocation>([BEGIN, END])
-
-=over 4
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-Returns the loaded version of this body.
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<read>(PARSER, HEAD, BODYTYPE)
-
-=over 4
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Body::Delayed-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Body::Delayed-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Body::Delayed-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Delayed.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Delayed.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Encode.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,254 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::Body;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Carp;
-
-use MIME::Types;
-use File::Basename 'basename';
-
-my MIME::Types $mime_types;
-
-
-sub encode(@)
-{ my ($self, %args) = @_;
-
- # simplify the arguments
-
- my $type_from = $self->type;
- my $type_to = $args{mime_type} || $type_from->clone;
- $type_to = Mail::Message::Field->new('Content-Type' => $type_to)
- unless ref $type_to;
-
- if(my $charset = delete $args{charset})
- { # Charset conversions are ignored for now.
- $type_to->attribute(charset => $charset);
- }
-
- my $transfer = $args{transfer_encoding} || $self->transferEncoding->clone;
- $transfer = Mail::Message::Field->new('Content-Transfer-Encoding' =>
- $transfer) unless ref $transfer;
-
- # What will we do?
-# my $mime_was = lc $type_from;
-# my $mime_to = lc $type_to;
-
-# If possible, update unify() too.
-# my $char_was = $type_from->attribute('charset');
-# my $char_to = $type_to->attribute('charset');
-
- my $trans_was = lc $self->transferEncoding;
- my $trans_to = lc $transfer;
-
- #
- # The only translations implemented now is content transfer encoding.
- #
-
-#warn "Translate ($trans_was) -> ($trans_to)\n";
- return $self if $trans_was eq $trans_to;
-
- my $bodytype = $args{result_type} || ref $self;
-
- my $decoded;
- if($trans_was eq 'none') {$decoded = $self}
- elsif(my $decoder = $self->getTransferEncHandler($trans_was))
- { $decoded = $decoder->decode($self, result_type => $bodytype) }
- else
- { $self->log(WARNING =>
- "No decoder defined for transfer encoding $trans_was.");
- return $self;
- }
-
- my $encoded;
- if($trans_to eq 'none') {$encoded = $decoded}
- elsif(my $encoder = $self->getTransferEncHandler($trans_to))
- { $encoded = $encoder->encode($decoded, result_type => $bodytype) }
- else
- { $self->log(WARNING =>
- "No encoder defined for transfer encoding $trans_to.");
- return $decoded;
- }
- $encoded;
-}
-
-#------------------------------------------
-
-
-sub check()
-{ my $self = shift;
- return $self if $self->checked;
- my $eol = $self->eol;
-
- my $encoding = $self->transferEncoding->body;
- return $self->eol($eol)
- if $encoding eq 'none';
-
- my $encoder = $self->getTransferEncHandler($encoding);
-
- my $checked
- = $encoder
- ? $encoder->check($self)->eol($eol)
- : $self->eol($eol);
-
- $checked->checked(1);
- $checked;
-}
-
-#------------------------------------------
-
-
-sub encoded()
-{ my $self = shift;
-
- return $self->check
- unless $self->transferEncoding eq 'none';
-
- $mime_types ||= MIME::Types->new;
-
- my $mime = $mime_types->type($self->type->body);
- $self->encode(transfer_encoding =>
- defined $mime ? $mime->encoding : 'base64');
-}
-
-#------------------------------------------
-
-
-sub unify($)
-{ my ($self, $body) = @_;
- return $self if $self==$body;
-
- my $mime = $self->type;
- my $transfer = $self->transferEncoding;
-
- my $encoded = $body->encode
- ( mime_type => $mime
- , transfer_encoding => $transfer
- );
-
- # Encode makes the best of it, but is it good enough?
-
- my $newmime = $encoded->type;
- return unless $newmime eq $mime;
- return unless $transfer eq $encoded->transferEncoding;
-
-# Character transformation not possible yet.
-# my $want_charset= $mime->attribute('charset') || '';
-# my $got_charset = $newmime->attribute('charset') || '';
-# return unless $want_charset eq $got_charset;
-
- $encoded;
-}
-
-#------------------------------------------
-
-
-sub isBinary()
-{ my $self = shift;
- $mime_types ||= MIME::Types->new(only_complete => 1);
- my $type = $self->type or return 1;
- my $mime = $mime_types->type($type->body) or return 1;
- $mime->isBinary;
-}
-
-#------------------------------------------
-
-
-sub isText() { not shift->isBinary }
-
-#------------------------------------------
-
-
-sub dispositionFilename(;$)
-{ my $self = shift;
- my $raw;
-
- my $field;
- if($field = $self->disposition)
- { $raw = $field->attribute('filename')
- || $field->attribute('file')
- || $field->attribute('name');
- }
-
- if(!defined $raw && ($field = $self->type))
- { $raw = $field->attribute('filename')
- || $field->attribute('file')
- || $field->attribute('name');
- }
-
- return $raw unless @_;
-
- my $dir = shift;
- my $filename = '';
- if(defined $raw)
- { $filename = basename $raw;
- $filename =~ s/[^\w.-]//;
- }
-
- unless(length $filename)
- { my $ext = ($self->mimeType->extensions)[0] || 'raw';
- my $unique;
- for($unique = 'part-0'; 1; $unique++)
- { my $out = File::Spec->catfile($dir, "$unique.$ext");
- open IN, "<", $out or last; # does not exist: can use it
- close IN;
- }
- $filename = "$unique.$ext";
- }
-
- File::Spec->catfile($dir, $filename);
-}
-
-#------------------------------------------
-
-
-my %transfer_encoder_classes =
- ( base64 => 'Mail::Message::TransferEnc::Base64'
- , binary => 'Mail::Message::TransferEnc::Binary'
- , '8bit' => 'Mail::Message::TransferEnc::EightBit'
- , 'quoted-printable' => 'Mail::Message::TransferEnc::QuotedPrint'
- , '7bit' => 'Mail::Message::TransferEnc::SevenBit'
- );
-
-my %transfer_encoders; # they are reused.
-
-sub getTransferEncHandler($)
-{ my ($self, $type) = @_;
-
- return $transfer_encoders{$type}
- if exists $transfer_encoders{$type}; # they are reused.
-
- my $class = $transfer_encoder_classes{$type};
- return unless $class;
-
- eval "require $class";
- confess "Cannot load $class: $@\n" if $@;
-
- $transfer_encoders{$type} = $class->new;
-}
-
-#------------------------------------------
-
-
-sub addTransferEncHandler($$)
-{ my ($this, $name, $what) = @_;
-
- my $class;
- if(ref $what)
- { $transfer_encoders{$name} = $what;
- $class = ref $what;
- }
- else
- { delete $transfer_encoders{$name};
- $class = $what;
- }
-
- $transfer_encoder_classes{$name} = $class;
- $this;
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Encode.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Encode.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,248 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::Encode - organize general message encodings
-
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $decoded = $msg->decoded;
- my $encoded = $msg->encode(mime_type => 'image/gif',
- transfer_encoding => 'base64');
-
- my $body = $msg->body;
- my $decoded = $body->decoded;
- my $encoded = $body->encode(transfer_encoding => '7bit');
-
-
-=head1 DESCRIPTION
-
-Manages the message's body encodings and decodings on request of the
-main program. This package adds functionality to the L<Mail::Message::Body|Mail::Message::Body>
-class when the L<decoded()|Mail::Message::Body/"Constructing a body"> or L<encode()|Mail::Message::Body::Encode/"Constructing a body"> method is called.
-
-Four types of encodings are handled (in the right order)
-
-=over 4
-
-=item * eol encoding
-
-Various operating systems have different ideas about how to encode the
-line termination. UNIX uses a LF character, MacOS uses a CR, and
-Windows uses a CR/LF combination. Messages which are transported over
-Internet will always use the CRLF separator.
-
-=item * transfer encoding
-
-Messages transmitted over Internet have to be plain ASCII. Complicated
-characters and binary files (like images and archives) must be encoded
-during transmission to an ASCII representation.
-
-The implementation of the required encoders and decoders is found in
-the L<Mail::Message::TransferEnc|Mail::Message::TransferEnc> set of packages. The related
-manual page lists the transfer encodings which are supported.
-
-=item * mime-type translation
-
-NOT IMPLEMENTED YET
-
-=item * charset conversion
-
-NOT IMPLEMENTED YET
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<check>
-
-=over 4
-
-Check the content of the body not to include illegal characters. Which
-characters are considered illegal depends on the encoding of this body.
-
-A body is returned which is checked. This may be the body where this
-method is called upon, but also a new object, when serious changes had
-to be made. If the check could not be made, because the decoder is not
-defined, then C<undef> is returned.
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-Encode (translate) a L<Mail::Message::Body|Mail::Message::Body> into a different format.
-See the DESCRIPTION above. Options which are not specified will not trigger
-conversions.
-
- Option Defined in Default
- charset undef
- mime_type undef
- result_type <same as source>
- transfer_encoding undef
-
-. charset STRING
-
-. mime_type STRING|FIELD
-
-=over 4
-
-Convert into the specified mime type, which can be specified as STRING
-or FIELD. The FIELD is a L<Mail::Message::Field|Mail::Message::Field>, and the STRING is
-converted in such object before use.
-
-=back
-
-. result_type CLASS
-
-=over 4
-
-The type of body to be created when the body is changed to fulfill the request
-on re-coding. Also the intermediate stages in the translation process (if
-needed) will use this type. CLASS must extend L<Mail::Message::Body|Mail::Message::Body>.
-
-=back
-
-. transfer_encoding STRING|FIELD
-
-=back
-
-$obj-E<gt>B<encoded>
-
-=over 4
-
-Encode the body to a format what is acceptable to transmit or write to
-a folder file. This returns the body where this method was called
-upon when everything was already prepared, or a new encoded body
-otherwise. In either case, the body is checked.
-
-=back
-
-$obj-E<gt>B<unify>(BODY)
-
-=over 4
-
-Unify the type of the given BODY objects with the type of the called
-body. C<undef> is returned when unification is impossible. If the
-bodies have the same settings, the BODY object is returned unchanged.
-
-Examples:
-
- my $bodytype = Mail::Message::Body::Lines;
- my $html = $bodytype->new(mime_type=>'text/html', data => []);
- my $plain = $bodytype->new(mime_type=>'text/plain', ...);
-
- my $unified = $html->unify($plain);
- # $unified is the data of plain translated to html (if possible).
-
-=back
-
-=head2 About the payload
-
-
-$obj-E<gt>B<dispositionFilename>([DIRECTORY])
-
-=over 4
-
-Returns the name which can be used as filename to store the information
-in the indicated DIRECTORY. To get a filename, various fields are searched
-for C<filename> and C<name> attributes. Without DIRECTORY, the name found
-will be returned.
-
-Only the basename of the found name will be used, for security reasons:
-otherwise, it may be possible to access other directories than the
-one indicated. If no name was found, or the name is already in use,
-then an unique name is generated.
-
-=back
-
-$obj-E<gt>B<isBinary>
-
-=over 4
-
-Returns true when the un-encoded message is binary data. This information
-is retrieved from knowledge provided by L<MIME::Types|MIME::Types>.
-
-=back
-
-$obj-E<gt>B<isText>
-
-=over 4
-
-Returns true when the un-encoded message contains printable
-text.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-Mail::Message::Body-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-=over 4
-
-Relate the NAMEd transfer encoding to an OBJECTs or object of the specified
-CLASS. In the latter case, an object of that CLASS will be created on the
-moment that one is needed to do encoding or decoding.
-
-The CLASS or OBJECT must extend L<Mail::Message::TransferEnc|Mail::Message::TransferEnc>. It will
-replace existing class and object for this NAME.
-
-Why aren't you contributing this class to MailBox?
-
-=back
-
-$obj-E<gt>B<getTransferEncHandler>(TYPE)
-
-=over 4
-
-Get the transfer encoder/decoder which is able to handle TYPE, or return
-undef if there is no such handler.
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> No decoder defined for transfer encoding $name.
-
-The data (message body) is encoded in a way which is not currently understood,
-therefore no decoding (or recoding) can take place.
-
-I<Warning:> No encoder defined for transfer encoding $name.
-
-The data (message body) has been decoded, but the required encoding is
-unknown. The decoded data is returned.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Encode.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Encode.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/File.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,291 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Body::File;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Body';
-
-use Mail::Box::Parser;
-use Mail::Message;
-
-use Carp;
-use POSIX 'tmpnam';
-use File::Copy;
-
-
-sub _data_from_filename(@)
-{ my ($self, $filename) = @_;
-
- local $_;
- local (*IN, *OUT);
-
- unless(open IN, '<', $filename)
- { $self->log(ERROR =>
- "Unable to read file $filename for message body file: $!");
- return;
- }
-
- my $file = $self->tempFilename;
- unless(open OUT, '>', $file)
- { $self->log(ERROR => "Cannot write to temporary body file $file: $!");
- return;
- }
-
- my $nrlines = 0;
- while(<IN>) { print OUT; $nrlines++ }
-
- close OUT;
- close IN;
-
- $self->{MMBF_nrlines} = $nrlines;
- $self;
-}
-
-sub _data_from_filehandle(@)
-{ my ($self, $fh) = @_;
- my $file = $self->tempFilename;
- my $nrlines = 0;
-
- local *OUT;
-
- unless(open OUT, '>', $file)
- { $self->log(ERROR => "Cannot write to temporary body file $file: $!");
- return;
- }
-
- while(my $l = $fh->getline)
- { print OUT $l;
- $nrlines++;
- }
- close OUT;
-
- $self->{MMBF_nrlines} = $nrlines;
- $self;
-}
-
-sub _data_from_glob(@)
-{ my ($self, $fh) = @_;
- my $file = $self->tempFilename;
- my $nrlines = 0;
-
- local $_;
- local *OUT;
-
- unless(open OUT, '>', $file)
- { $self->log(ERROR => "Cannot write to temporary body file $file: $!");
- return;
- }
-
- while(<$fh>)
- { print OUT;
- $nrlines++;
- }
- close OUT;
-
- $self->{MMBF_nrlines} = $nrlines;
- $self;
-}
-
-sub _data_from_lines(@)
-{ my ($self, $lines) = @_;
- my $file = $self->tempFilename;
-
- local *OUT;
-
- unless(open OUT, '>', $file)
- { $self->log(ERROR => "Cannot write to $file: $!");
- return;
- }
-
- print OUT @$lines;
- close OUT;
-
- $self->{MMBF_nrlines} = @$lines;
- $self;
-}
-
-#------------------------------------------
-
-sub clone()
-{ my $self = shift;
- my $clone = ref($self)->new(based_on => $self);
-
- copy($self->tempFilename, $clone->tempFilename)
- or return;
-
- $clone->{MMBF_nrlines} = $self->{MMBF_nrlines};
- $clone->{MMBF_size} = $self->{MMBF_size};
- $self;
-}
-
-#------------------------------------------
-
-sub nrLines()
-{ my $self = shift;
-
- return $self->{MMBF_nrlines}
- if defined $self->{MMBF_nrlines};
-
- my $file = $self->tempFilename;
- my $nrlines = 0;
-
- local $_;
- local *IN;
-
- open IN, '<', $file
- or die "Cannot read from $file: $!\n";
-
- $nrlines++ while <IN>;
- close IN;
-
- $self->{MMBF_nrlines} = $nrlines;
-}
-
-#------------------------------------------
-
-sub size()
-{ my $self = shift;
-
- return $self->{MMBF_size}
- if exists $self->{MMBF_size};
-
- my $size = -s $self->tempFilename;
-
- $size -= $self->nrLines
- if $Mail::Message::crlf_platform; # remove count for extra CR's
-
- $self->{MMBF_size} = $size;
-}
-
-
-#------------------------------------------
-
-sub string()
-{ my $self = shift;
-
- my $file = $self->tempFilename;
-
- local *IN;
-
- open IN, '<', $file
- or die "Cannot read from $file: $!\n";
-
- my $return = join '', <IN>;
- close IN;
-
- $return;
-}
-
-#------------------------------------------
-
-sub lines()
-{ my $self = shift;
-
- my $file = $self->tempFilename;
-
- local *IN;
- open IN, '<', $file
- or die "Cannot read from $file: $!\n";
-
- my @r = <IN>;
- close IN;
-
- $self->{MMBF_nrlines} = @r;
- wantarray ? @r: \@r;
-}
-
-#------------------------------------------
-
-sub file()
-{ open my $tmp, '<', shift->tempFilename;
- $tmp;
-}
-
-#------------------------------------------
-
-sub print(;$)
-{ my $self = shift;
- my $fh = shift || select;
- my $file = $self->tempFilename;
-
- local $_;
- local *IN;
-
- open IN, '<', $file
- or croak "Cannot read from $file: $!\n";
-
- if(ref $fh eq 'GLOB') {print $fh $_ while <IN>}
- else {$fh->print($_) while <IN>}
- close IN;
-
- $self;
-}
-
-#------------------------------------------
-
-sub printEscapedFrom($)
-{ my ($self, $fh) = @_;
- my $file = $self->tempFilename;
-
- local $_;
- local *IN;
-
- open IN, '<', $file
- or croak "Cannot read from $file: $!\n";
-
- if(ref $fh eq 'GLOB')
- { while( <IN> )
- { s/^(?=\>*From )/>/;
- print $fh;
- }
- }
- else
- { while( <IN> )
- { s/^(?=\>*From )/>/;
- $fh->print($_);
- }
- }
-
- close IN;
-
- $self;
-}
-
-#------------------------------------------
-
-sub read($$;$@)
-{ my ($self, $parser, $head, $bodytype) = splice @_, 0, 4;
- my $file = $self->tempFilename;
-
- local *OUT;
-
- open OUT, '>', $file
- or die "Cannot write to $file: $!.\n";
-
- (my $begin, my $end, $self->{MMBF_nrlines}) = $parser->bodyAsFile(\*OUT, at _);
- close OUT;
-
- $self->fileLocation($begin, $end);
- $self;
-}
-
-#------------------------------------------
-
-
-sub tempFilename(;$)
-{ my $self = shift;
-
- @_ ? ($self->{MMBF_filename} = shift)
- : $self->{MMBF_filename} ? $self->{MMBF_filename}
- : ($self->{MMBF_filename} = tmpnam);
-}
-
-#------------------------------------------
-
-
-sub DESTROY { unlink shift->tempFilename }
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/File.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/File.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,659 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::File - body of a message temporarily stored in a file
-
-
-=head1 INHERITANCE
-
- Mail::Message::Body::File
- is a Mail::Message::Body
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Message::Body
-
-
-=head1 DESCRIPTION
-
-The body (content) of a message can be stored in various ways. In this
-documentation you find the description of extra functionality you have
-when a message is stored in a file.
-
-Storing a whole message is a file is useful when the body is large. Although
-access through a file is slower, it is saving a lot of memory.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<'==' and '!='>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Body/"Constructors">
-
-=back
-
-Mail::Message::Body::File-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- based_on L<Mail::Message::Body> undef
- charset L<Mail::Message::Body> C<'us-ascii'>
- checked L<Mail::Message::Body> <false>
- data L<Mail::Message::Body> undef
- disposition L<Mail::Message::Body> undef
- eol L<Mail::Message::Body> C<'NATIVE'>
- file L<Mail::Message::Body> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- message L<Mail::Message::Body> undef
- mime_type L<Mail::Message::Body> C<'text/plain'>
- modified L<Mail::Message::Body> <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- transfer_encoding L<Mail::Message::Body> C<'none'>
-
-. based_on BODY
-
-. charset STRING
-
-. checked BOOLEAN
-
-. data ARRAY-OF-LINES | STRING
-
-. disposition STRING|FIELD
-
-. eol 'CR'|'LF'|'CRLF'|'NATIVE'
-
-. file FILENAME|FILEHANDLE|IOHANDLE
-
-. log LEVEL
-
-. message MESSAGE
-
-. mime_type STRING|FIELD|MIME
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-. transfer_encoding STRING|FIELD
-
-=back
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<attach>(MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<check>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<concatenate>(COMPONENTS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encoded>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<eol>(['CR'|'LF'|'CRLF'|'NATIVE'])
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<foreachLine>(CODE)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<stripSignature>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<unify>(BODY)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-=head2 About the payload
-
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<checked>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<disposition>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<dispositionFilename>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isBinary>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isText>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<mimeType>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<transferEncoding>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<type>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-=head2 Access to the payload
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<printEscapedFrom>(FILEHANDLE)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-Mail::Message::Body::File-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoFrom>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoTo>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>([BEGIN,END])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<getTransferEncHandler>(TYPE)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>([DISTANCE])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER, HEAD, BODYTYPE [,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<tempFilename>([FILENAME])
-
-=over 4
-
-Returns the name of the temporary file which is used to store this body.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Body/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Body::File-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Body::File-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Body::File-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-The temporary file is automatically removed when the body is
-not required anymore.
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot write to temporary body file $filename: $!
-
-The message body is to be stored in a temporary file (probably because it is a
-large body), but for the indicated reason, this file cannot be created.
-
-I<Warning:> No decoder defined for transfer encoding $name.
-
-The data (message body) is encoded in a way which is not currently understood,
-therefore no decoding (or recoding) can take place.
-
-I<Warning:> No encoder defined for transfer encoding $name.
-
-The data (message body) has been decoded, but the required encoding is
-unknown. The decoded data is returned.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read file $filename for message body file: $!
-
-A L<Mail::Message::Body::File|Mail::Message::Body::File> object is to be created from a named file, but
-it is impossible to read that file to retrieve the lines within. Therefore,
-no copy to a temporary file can be made.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/File.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/File.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Lines.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,134 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Body::Lines;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Body';
-
-use Mail::Box::Parser;
-use IO::Lines;
-
-use Carp;
-
-
-sub _data_from_filename(@)
-{ my ($self, $filename) = @_;
-
- local *IN;
-
- unless(open IN, '<', $filename)
- { $self->log(ERROR =>
- "Unable to read file $filename for message body lines: $!");
- return;
- }
-
- $self->{MMBL_array} = [ <IN> ];
-
- close IN;
- $self;
-}
-
-sub _data_from_filehandle(@)
-{ my ($self, $fh) = @_;
- $self->{MMBL_array} =
- ref $fh eq 'Mail::Box::FastScalar' ? $fh->getlines : [ $fh->getlines ];
- $self
-}
-
-sub _data_from_glob(@)
-{ my ($self, $fh) = @_;
- $self->{MMBL_array} = [ <$fh> ];
- $self;
-}
-
-sub _data_from_lines(@)
-{ my ($self, $lines) = @_;
- $lines = [ split /^/, $lines->[0] ] # body passed in one string.
- if @$lines==1;
-
- $self->{MMBL_array} = $lines;
- $self;
-}
-
-#------------------------------------------
-
-sub clone()
-{ my $self = shift;
- ref($self)->new(data => [ $self->lines ], based_on => $self);
-}
-
-#------------------------------------------
-
-sub nrLines() { scalar @{shift->{MMBL_array}} }
-
-#------------------------------------------
-# Optimized to be computed only once.
-
-sub size()
-{ my $self = shift;
- return $self->{MMBL_size} if exists $self->{MMBL_size};
-
- my $size = 0;
- $size += length $_ foreach @{$self->{MMBL_array}};
- $self->{MMBL_size} = $size;
-}
-
-#------------------------------------------
-
-sub string() { join '', @{shift->{MMBL_array}} }
-
-#------------------------------------------
-
-sub lines() { wantarray ? @{shift->{MMBL_array}} : shift->{MMBL_array} }
-
-#------------------------------------------
-
-sub file() { IO::Lines->new(shift->{MMBL_array}) }
-
-#------------------------------------------
-
-sub print(;$)
-{ my $self = shift;
- my $fh = shift || select;
- if(ref $fh eq 'GLOB') { print $fh @{$self->{MMBL_array}} }
- else { $fh->print(@{$self->{MMBL_array}}) }
- $self;
-}
-
-#------------------------------------------
-
-sub printEscapedFrom($)
-{ my ($self, $fh) = @_;
-
- if(ref $fh eq 'GLOB')
- { foreach ( @{$self->{MMBL_array}} )
- { s/^(?=\>*From )/>/;
- print $fh;
- }
- }
- else
- { foreach ( @{$self->{MMBL_array}} )
- { s/^(?=\>*From )/>/;
- $fh->print($_);
- }
- }
-
- $self;
-}
-
-#------------------------------------------
-
-sub read($$;$@)
-{ my ($self, $parser, $head, $bodytype) = splice @_, 0, 4;
- my ($begin, $end, $lines) = $parser->bodyAsList(@_);
- $lines or return undef;
-
- $self->fileLocation($begin, $end);
- $self->{MMBL_array} = $lines;
- $self;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Lines.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Lines.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,645 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::Lines - body of a Mail::Message stored as array of lines
-
-
-=head1 INHERITANCE
-
- Mail::Message::Body::Lines
- is a Mail::Message::Body
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Message::Body
-
-
-=head1 DESCRIPTION
-
-The body (content) of a message can be stored in various ways. In this
-documentation you find the description of extra functionality you have
-when a message is stored in an array of lines.
-
-Storing a whole message as an array of lines is useful when the data is not
-encoded, and you want to process it on a line-by-line basis (a common practice
-for inspecting message bodies).
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<'==' and '!='>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Body/"Constructors">
-
-=back
-
-Mail::Message::Body::Lines-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- based_on L<Mail::Message::Body> undef
- charset L<Mail::Message::Body> C<'us-ascii'>
- checked L<Mail::Message::Body> <false>
- data L<Mail::Message::Body> undef
- disposition L<Mail::Message::Body> undef
- eol L<Mail::Message::Body> C<'NATIVE'>
- file L<Mail::Message::Body> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- message L<Mail::Message::Body> undef
- mime_type L<Mail::Message::Body> C<'text/plain'>
- modified L<Mail::Message::Body> <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- transfer_encoding L<Mail::Message::Body> C<'none'>
-
-. based_on BODY
-
-. charset STRING
-
-. checked BOOLEAN
-
-. data ARRAY-OF-LINES | STRING
-
-. disposition STRING|FIELD
-
-. eol 'CR'|'LF'|'CRLF'|'NATIVE'
-
-. file FILENAME|FILEHANDLE|IOHANDLE
-
-. log LEVEL
-
-. message MESSAGE
-
-. mime_type STRING|FIELD|MIME
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-. transfer_encoding STRING|FIELD
-
-=back
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<attach>(MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<check>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<concatenate>(COMPONENTS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encoded>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<eol>(['CR'|'LF'|'CRLF'|'NATIVE'])
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<foreachLine>(CODE)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<stripSignature>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<unify>(BODY)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-=head2 About the payload
-
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<checked>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<disposition>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<dispositionFilename>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isBinary>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isText>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<mimeType>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<transferEncoding>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<type>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-=head2 Access to the payload
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<printEscapedFrom>(FILEHANDLE)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-Mail::Message::Body::Lines-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoFrom>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoTo>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>([BEGIN,END])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<getTransferEncHandler>(TYPE)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>([DISTANCE])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER, HEAD, BODYTYPE [,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Body/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Body::Lines-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Body::Lines-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Body::Lines-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> No decoder defined for transfer encoding $name.
-
-The data (message body) is encoded in a way which is not currently understood,
-therefore no decoding (or recoding) can take place.
-
-I<Warning:> No encoder defined for transfer encoding $name.
-
-The data (message body) has been decoded, but the required encoding is
-unknown. The decoded data is returned.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read file $filename for message body lines: $!
-
-A L<Mail::Message::Body::Lines|Mail::Message::Body::Lines> object is to be created from a named file,
-but it is impossible to read that file to retrieve the lines within.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Lines.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Lines.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Multipart.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,428 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Body::Multipart;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Body';
-
-use Mail::Message::Body::Lines;
-use Mail::Message::Part;
-
-use Mail::Box::FastScalar;
-
-
-#------------------------------------------
-
-sub init($)
-{ my ($self, $args) = @_;
- my $based = $args->{based_on};
- $args->{mime_type} ||=
- defined $based ? $based->mimeType : 'multipart/mixed';
-
- $self->SUPER::init($args);
-
- my @parts;
- if($args->{parts})
- { foreach my $raw (@{$args->{parts}})
- { next unless defined $raw;
- my $cooked = Mail::Message::Part->coerce($raw, $self);
-
- $self->log(ERROR => 'Data not convertible to a message (type is '
- , ref $raw,")\n"), next unless defined $cooked;
-
- push @parts, $cooked;
- }
- }
-
- my $preamble = $args->{preamble};
- $preamble = Mail::Message::Body->new(data => $preamble)
- if defined $preamble && ! ref $preamble;
-
- my $epilogue = $args->{epilogue};
- $epilogue = Mail::Message::Body->new(data => $epilogue)
- if defined $epilogue && ! ref $epilogue;
-
- if($based)
- { $self->boundary($args->{boundary} || $based->boundary);
- $self->{MMBM_preamble}
- = defined $preamble ? $preamble : $based->preamble;
-
- $self->{MMBM_parts}
- = @parts ? \@parts
- : $based->isMultipart ? [ $based->parts('ACTIVE') ]
- : [];
-
- $self->{MMBM_epilogue}
- = defined $epilogue ? $epilogue : $based->epilogue;
- }
- else
- { $self->boundary($args->{boundary} ||$self->type->attribute('boundary'));
- $self->{MMBM_preamble} = $preamble;
- $self->{MMBM_parts} = \@parts;
- $self->{MMBM_epilogue} = $epilogue;
- }
-
- $self;
-}
-
-#------------------------------------------
-
-sub isMultipart() {1}
-
-#------------------------------------------
-
-# A multipart body is never binary itself. The parts may be.
-sub isBinary() {0}
-
-#------------------------------------------
-
-sub clone()
-{ my $self = shift;
- my $preamble = $self->preamble;
- my $epilogue = $self->epilogue;
-
- my $body = ref($self)->new
- ( $self->logSettings
- , based_on => $self
- , preamble => ($preamble ? $preamble->clone : undef)
- , epilogue => ($epilogue ? $epilogue->clone : undef)
- , parts => [ map {$_->clone} $self->parts('ACTIVE') ]
- );
-
-}
-
-#------------------------------------------
-
-sub nrLines()
-{ my $self = shift;
- my $nr = 1; # trailing boundary
-
- if(my $preamble = $self->preamble) { $nr += $preamble->nrLines }
- $nr += 2 + $_->nrLines foreach $self->parts('ACTIVE');
- if(my $epilogue = $self->epilogue) { $nr += $epilogue->nrLines }
- $nr;
-}
-
-#------------------------------------------
-
-sub size()
-{ my $self = shift;
- my $bbytes = length($self->boundary) +3;
-
- my $bytes = 0;
- if(my $preamble = $self->preamble) { $bytes += $preamble->size }
- $bytes += $bbytes + 2; # last boundary
- $bytes += $bbytes + 1 + $_->size foreach $self->parts('ACTIVE');
- if(my $epilogue = $self->epilogue) { $bytes += $epilogue->size }
-
- $bytes;
-}
-
-#------------------------------------------
-
-sub string() { join '', shift->lines }
-
-#------------------------------------------
-
-sub lines()
-{ my $self = shift;
-
- my $boundary = $self->boundary;
- my @lines;
-
- my $preamble = $self->preamble;
- push @lines, $preamble->lines if $preamble;
-
- push @lines, "--$boundary\n", $_->lines
- foreach $self->parts('ACTIVE');
-
- push @lines, "--$boundary--\n";
-
- my $epilogue = $self->epilogue;
- push @lines, $epilogue->lines if $epilogue;
-
- wantarray ? @lines : \@lines;
-}
-
-#------------------------------------------
-
-sub file() # It may be possible to speed-improve the next
-{ my $self = shift; # code, which first produces a full print of
- my $text; # the message in memory...
- my $dump = Mail::Box::FastScalar->new(\$text);
- $self->print($dump);
- $dump->seek(0,0);
- $dump;
-}
-
-#------------------------------------------
-
-sub print(;$)
-{ my $self = shift;
- my $out = shift || select;
-
- my $boundary = $self->boundary;
- if(my $preamble = $self->preamble) { $preamble->print($out) }
-
- if(ref $out eq 'GLOB')
- { foreach my $part ($self->parts('ACTIVE'))
- { print $out "--$boundary\n";
- $part->print($out);
- }
- print $out "--$boundary--\n";
- }
- else
- { foreach my $part ($self->parts('ACTIVE'))
- { $out->print("--$boundary\n");
- $part->print($out);
- }
- $out->print("--$boundary--\n");
- }
-
- if(my $epilogue = $self->epilogue) { $epilogue->print($out) }
-
- $self;
-}
-
-#------------------------------------------
-
-sub printEscapedFrom($)
-{ my ($self, $out) = @_;
-
- my $boundary = $self->boundary;
- if(my $preamble = $self->preamble) { $preamble->printEscapedFrom($out) }
-
- if(ref $out eq 'GLOB')
- { foreach my $part ($self->parts('ACTIVE'))
- { print $out "--$boundary\n";
- $part->printEscapedFrom($out);
- print $out "\n";
- }
- print $out "--$boundary--\n";
- }
- else
- { foreach my $part ($self->parts('ACTIVE'))
- { $out->print("--$boundary\n");
- $part->printEscapedFrom($out);
- $out->print("\n");
- }
- $out->print("--$boundary--\n");
- }
-
- if(my $epilogue = $self->epilogue) { $epilogue->printEscapedFrom($out) }
-
- $self;
-}
-
-#------------------------------------------
-
-sub check()
-{ my $self = shift;
- $self->foreachComponent( sub {$_[1]->check} );
-}
-
-#------------------------------------------
-
-sub encode(@)
-{ my ($self, %args) = @_;
- $self->foreachComponent( sub {$_[1]->encode(%args)} );
-}
-
-#------------------------------------------
-
-sub encoded()
-{ my $self = shift;
- $self->foreachComponent( sub {$_[1]->encoded} );
-}
-
-#------------------------------------------
-
-sub read($$$$)
-{ my ($self, $parser, $head, $bodytype) = @_;
-
- my $boundary = $self->boundary;
-
- $parser->pushSeparator("--$boundary");
- my @msgopts = ($self->logSettings);
-
- my @sloppyopts =
- ( mime_type => 'text/plain'
- , transfer_encoding => ($head->get('Content-Transfer-Encoding') || undef)
- );
-
- # Get preamble.
- my $headtype = ref $head;
-
- my $begin = $parser->filePosition;
- my $preamble = Mail::Message::Body::Lines->new(@msgopts, @sloppyopts)
- ->read($parser, $head);
-
- $self->{MMBM_preamble} = $preamble if defined $preamble;
-
- # Get the parts.
-
- my @parts;
- while(my $sep = $parser->readSeparator)
- { last if $sep eq "--$boundary--\n";
-
- my $part = Mail::Message::Part->new
- ( @msgopts
- , container => $self
- );
-
- last unless $part->readFromParser($parser, $bodytype);
- push @parts, $part;
- }
- $self->{MMBM_parts} = \@parts;
-
- # Get epilogue
-
- $parser->popSeparator;
- my $epilogue = Mail::Message::Body::Lines->new(@msgopts, @sloppyopts)
- ->read($parser, $head);
-
- $self->{MMBM_epilogue} = $epilogue if defined $epilogue;
- my $end = defined $epilogue ? ($epilogue->fileLocation)[1]
- : @parts ? ($parts[-1]->fileLocation)[1]
- : defined $preamble ? ($preamble->fileLocation)[1]
- : $begin;
-
- $self->fileLocation($begin, $end);
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub foreachComponent($)
-{ my ($self, $code) = @_;
- my $changes = 0;
-
- my $new_preamble;
- if(my $preamble = $self->preamble)
- { $new_preamble = $code->($self, $preamble);
- $changes++ unless $preamble == $new_preamble;
- }
-
- my $new_epilogue;
- if(my $epilogue = $self->epilogue)
- { $new_epilogue = $code->($self, $epilogue);
- $changes++ unless $epilogue == $new_epilogue;
- }
-
- my @new_bodies;
- foreach my $part ($self->parts('ACTIVE'))
- { my $part_body = $part->body;
- my $new_body = $code->($self, $part_body);
-
- $changes++ if $new_body != $part_body;
- push @new_bodies, [$part, $new_body];
- }
-
- return $self unless $changes;
-
- my @new_parts;
- foreach (@new_bodies)
- { my ($part, $body) = @$_;
- my $new_part = Mail::Message::Part->new
- ( head => $part->head->clone,
- container => undef
- );
- $new_part->body($body);
- push @new_parts, $new_part;
- }
-
- my $constructed = (ref $self)->new
- ( preamble => $new_preamble
- , parts => \@new_parts
- , epilogue => $new_epilogue
- , based_on => $self
- );
-
- $_->container($constructed)
- foreach @new_parts;
-
- $constructed;
-}
-
-#------------------------------------------
-
-
-sub attach(@)
-{ my $self = shift;
- my $new = ref($self)->new
- ( based_on => $self
- , parts => [$self->parts, @_]
- );
-}
-
-#-------------------------------------------
-
-
-sub stripSignature(@)
-{ my $self = shift;
-
- my @allparts = $self->parts;
- my @parts = grep {! $_->body->mimeType->isSignature} @allparts;
-
- @allparts==@parts ? $self
- : (ref $self)->new(based_on => $self, parts => \@parts);
-}
-
-#------------------------------------------
-
-
-sub preamble() {shift->{MMBM_preamble}}
-
-#------------------------------------------
-
-
-sub epilogue() {shift->{MMBM_epilogue}}
-
-#------------------------------------------
-
-
-sub parts(;$)
-{ my $self = shift;
- return @{$self->{MMBM_parts}} unless @_;
-
- my $what = shift;
- my @parts = @{$self->{MMBM_parts}};
-
- $what eq 'RECURSE' ? (map {$_->parts('RECURSE')} @parts)
- : $what eq 'ALL' ? @parts
- : $what eq 'DELETED' ? (grep {$_->isDeleted} @parts)
- : $what eq 'ACTIVE' ? (grep {not $_->isDeleted} @parts)
- : ref $what eq 'CODE'? (grep {$what->($_)} @parts)
- : ($self->log(ERROR => "Unknown criterium $what to select parts."), return ());
-}
-
-#-------------------------------------------
-
-
-sub part($) { shift->{MMBM_parts}[shift] }
-
-#-------------------------------------------
-
-
-my $unique_boundary = time;
-
-sub boundary(;$)
-{ my $self = shift;
- my $mime = $self->type;
-
- unless(@_)
- { my $boundary = $mime->attribute('boundary');
- return $boundary if defined $boundary;
- }
-
- my $boundary = @_ && defined $_[0] ? (shift) : "boundary-".$unique_boundary++;
- $self->type->attribute(boundary => $boundary);
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Multipart.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Multipart.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,828 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::Multipart - body of a message with attachments
-
-
-=head1 INHERITANCE
-
- Mail::Message::Body::Multipart
- is a Mail::Message::Body
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Message::Body
-
- if($body->isMultipart) {
- my @attachments = $body->parts;
- my $attachment3 = $body->part(2);
- my $before = $body->preamble;
- my $after = $body->epilogue;
- $body->part(1)->delete;
- }
-
-
-=head1 DESCRIPTION
-
-The body (content) of a message can be stored in various ways. In this
-manual-page you find the description of extra functionality you have
-when a message contains attachments (parts).
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<'==' and '!='>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Body/"Constructors">
-
-=back
-
-Mail::Message::Body::Multipart-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- based_on L<Mail::Message::Body> undef
- boundary undef
- charset L<Mail::Message::Body> C<'us-ascii'>
- checked L<Mail::Message::Body> <false>
- data L<Mail::Message::Body> undef
- disposition L<Mail::Message::Body> undef
- eol L<Mail::Message::Body> C<'NATIVE'>
- epilogue undef
- file L<Mail::Message::Body> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- message L<Mail::Message::Body> undef
- mime_type L<Mail::Message::Body> C<'multipart/mixed'>
- modified L<Mail::Message::Body> <false>
- parts undef
- preamble undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- transfer_encoding L<Mail::Message::Body> C<'none'>
-
-. based_on BODY
-
-. boundary STRING
-
-=over 4
-
-Separator to be used between parts of the message. This separator must
-be unique in case the message contains nested multiparts (which are not
-unusual). If C<undef>, a nice unique boundary will be generated.
-
-=back
-
-. charset STRING
-
-. checked BOOLEAN
-
-. data ARRAY-OF-LINES | STRING
-
-. disposition STRING|FIELD
-
-. eol 'CR'|'LF'|'CRLF'|'NATIVE'
-
-. epilogue BODY|STRING
-
-=over 4
-
-The text which is included in the main body after the final boundary. This
-is usually empty, and has no meaning.
-
-Provide a BODY object or a STRING which will automatically translated
-into a C<text/plain> body.
-
-=back
-
-. file FILENAME|FILEHANDLE|IOHANDLE
-
-. log LEVEL
-
-. message MESSAGE
-
-. mime_type STRING|FIELD|MIME
-
-. modified BOOLEAN
-
-. parts ARRAY-OF-(MESSAGES|BODIES)
-
-=over 4
-
-Specifies an initial list of parts in this body. These may be full
-MESSAGES, or BODIES which transformed into messages before use. Each
-message is coerced into a L<Mail::Message::Part|Mail::Message::Part> object.
-
-MIME::Entity and Mail::Internet objects are acceptable in the
-list, because they are coercible into L<Mail::Message::Part|Mail::Message::Part>'s. Values
-of C<undef> will be skipped silently.
-
-=back
-
-. preamble BODY|STRING
-
-=over 4
-
-The text which is included in the body before the first part. It is
-common use to include a text to warn the user that the message is a
-multipart. However, this was useful in earlier days: most mail
-agents are very capable in warning the user themselves.
-
-Provide a BODY object or a STRING which will automatically translated
-into a text/plain body.
-
-=back
-
-. trace LEVEL
-
-. transfer_encoding STRING|FIELD
-
-I<Example:>
-
- my $intro = Mail::Message::Body->new(data => ['part one']);
- my $pgp = Mail::Message::Body->new(data => ['part three']);
-
- my $body = Mail::Message::Body::Multipart->new
- ( boundary => time . '--it-s-mine'
- , preamble => "This is a multi-part message in MIME format.\n\n"
- , parts => [ $intro, $folder->message(3)->decoded, $pgp ]
- );
-
-=back
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<attach>(MESSAGES|BODIES)
-
-=over 4
-
-Attach a list of MESSAGES to this multipart. A new body is returned.
-When you specify BODIES, they will first be translated into
-real messages. MIME::Entity and Mail::Internet objects may be
-specified too. In any case, the parts will be coerced into
-L<Mail::Message::Part|Mail::Message::Part>'s.
-
-=back
-
-$obj-E<gt>B<check>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<concatenate>(COMPONENTS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encoded>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<eol>(['CR'|'LF'|'CRLF'|'NATIVE'])
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<foreachComponent>(CODE)
-
-=over 4
-
-Execute the CODE for each component of the message: the preamble, the
-epilogue, and each of the parts.
-
-Each component is a body and is passed as second argument to the CODE.
-The first argument is a reference to this multi-parted body. The CODE
-returns a body object. When any of the returned bodies differs from
-the body which was passed, then a new multi-part body will be returned.
-Reference to the not-changed bodies and the changed bodies will be
-included in that new multi-part.
-
-I<Example:>
-
- my $checked = $multi->foreachComponent(sub {$_[1]->check});
-
-=back
-
-$obj-E<gt>B<foreachLine>(CODE)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<stripSignature>(OPTIONS)
-
-=over 4
-
-Removes all parts which contains data usually defined as being signature.
-The L<MIME::Type|MIME::Type> module provides this knowledge. A new multipart is
-returned, containing the remaining parts. No OPTIONS are defined yet,
-although some may be specified, because this method overrules the
-C<stripSignature> method for normal bodies.
-
- Option Defined in Default
- max_lines L<Mail::Message::Body::Construct> C<10>
- pattern L<Mail::Message::Body::Construct> C<qr/^--\s?$/>
- result_type L<Mail::Message::Body::Construct> <same as current>
-
-. max_lines INTEGER|undef
-
-. pattern REGEX|STRING|CODE
-
-. result_type CLASS
-
-=back
-
-$obj-E<gt>B<unify>(BODY)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-=head2 About the payload
-
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<checked>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<disposition>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<dispositionFilename>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isBinary>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isText>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<mimeType>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<transferEncoding>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<type>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-=head2 Access to the payload
-
-
-$obj-E<gt>B<boundary>([STRING])
-
-=over 4
-
-Returns the boundary which is used to separate the parts in this
-body. If none was read from file, then one will be assigned. With
-STRING you explicitly set the boundary to be used.
-
-=back
-
-$obj-E<gt>B<epilogue>
-
-=over 4
-
-Returns the epilogue; the text after the last message part (after the
-last real attachment).
-The epilogue is stored in a BODY object, and its encoding is taken
-from the general multipart header.
-
-=back
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<part>(INDEX)
-
-=over 4
-
-Returns only the part with the specified INDEX. You may use a negative
-value here, which counts from the back in the list. Parts which are
-flagged to be deleted are included in the count.
-
-I<Example:>
-
- $message->body->part(2)->print;
- $body->part(1)->delete;
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-Return all parts by default, or when ALL is specified. C<ACTIVE> returns
-the parts which are not flagged for deletion, as opposite to C<DELETED>.
-C<RECURSE> descents into all nested multiparts to collect all parts.
-
-You may also specify a code reference which is called for each nested
-part. The first argument will be the message part. When the code
-returns true, the part is incorporated in the return list.
-
-I<Example:>
-
- print "Number of attachments: ",
- scalar $message->body->parts('ACTIVE');
-
- foreach my $part ($message->body->parts) {
- print "Type: ", $part->get('Content-Type');
- }
-
-=back
-
-$obj-E<gt>B<preamble>
-
-=over 4
-
-Returns the preamble; the text before the first message part (before the
-first real attachment).
-The preamble is stored in a BODY object, and its encoding is taken
-from the multipart header.
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<printEscapedFrom>(FILEHANDLE)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-Mail::Message::Body::Multipart-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoFrom>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoTo>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>([BEGIN,END])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<getTransferEncHandler>(TYPE)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>([DISTANCE])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER, HEAD, BODYTYPE [,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Body/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Body::Multipart-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Body::Multipart-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Body::Multipart-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Data not convertible to a message (type is $type)
-
-An object which is not coercable into a L<Mail::Message::Part|Mail::Message::Part> object was
-passed to the initiation. The data is ignored.
-
-I<Warning:> No decoder defined for transfer encoding $name.
-
-The data (message body) is encoded in a way which is not currently understood,
-therefore no decoding (or recoding) can take place.
-
-I<Warning:> No encoder defined for transfer encoding $name.
-
-The data (message body) has been decoded, but the required encoding is
-unknown. The decoded data is returned.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unknown criterium $what to select parts.
-
-Valid choices fdr part selections are C<ALL>, C<ACTIVE>, C<DELETED>,
-C<RECURSE> or a code reference. However, some other argument was passed.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Multipart.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Multipart.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Nested.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,181 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Body::Nested;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Body';
-
-use Mail::Message::Body::Lines;
-use Mail::Message::Part;
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $args->{mime_type} ||= 'message/rfc822';
-
- $self->SUPER::init($args);
-
- my $nested;
- if(my $raw = $args->{nested})
- { $nested = Mail::Message::Part->coerce($raw, $self);
-
- croak 'Data not convertible to a message (type is ', ref $raw,")\n"
- unless defined $nested;
- }
-
- $self->{MMBN_nested} = $nested;
- $self;
-}
-
-#------------------------------------------
-
-sub isNested() {1}
-
-#------------------------------------------
-
-sub isBinary() { shift->nested->body->isBinary }
-
-#------------------------------------------
-
-sub clone()
-{ my $self = shift;
-
- ref($self)->new
- ( $self->logSettings
- , based_on => $self
- , nested => $self->nested->clone
- );
-}
-
-#------------------------------------------
-
-sub nrLines() { shift->nested->nrLines }
-
-#------------------------------------------
-
-sub size() { shift->nested->size }
-
-#------------------------------------------
-
-sub string()
-{ my $nested = shift->nested;
- defined $nested ? $nested->string : '';
-}
-
-#------------------------------------------
-
-sub lines()
-{ my $nested = shift->nested;
- defined $nested ? ($nested->lines) : ();
-}
-
-#------------------------------------------
-
-sub file()
-{ my $nested = shift->nested;
- defined $nested ? $nested->file : undef;
-}
-
-#------------------------------------------
-
-sub print(;$)
-{ my $self = shift;
- $self->nested->print(shift || select);
-}
-
-#------------------------------------------
-
-sub printEscapedFrom($)
-{ my $self = shift;
- $self->nested->printEscapedFrom(shift);
-}
-
-sub check() { shift->forNested( sub {$_[1]->check} ) }
-
-#------------------------------------------
-
-sub encode(@)
-{ my ($self, %args) = @_;
- $self->forNested( sub {$_[1]->encode(%args)} );
-}
-
-#------------------------------------------
-
-sub encoded() { shift->forNested( sub {$_[1]->encoded} ) }
-
-#------------------------------------------
-
-sub read($$$$)
-{ my ($self, $parser, $head, $bodytype) = @_;
-
- my $nest = Mail::Message::Part->new(container => undef);
- $nest->readFromParser($parser, $bodytype)
- or return;
-
- $nest->container($self);
- $self->{MMBN_nested} = $nest;
- $self;
-}
-
-#-------------------------------------------
-
-sub fileLocation()
-{ my $nested = shift->nested;
-
- ( ($nested->head->fileLocation)[0]
- , ($nested->body->fileLocation)[1]
- );
-}
-
-#------------------------------------------
-
-sub moveLocation($)
-{ my $self = shift;
- my $nested = $self->nested;
- my $dist = shift or return $self; # no move
-
- $nested->head->moveLocation($dist);
- $nested->body->moveLocation($dist);
- $self;
-}
-
-#------------------------------------------
-
-
-sub nested() { shift->{MMBN_nested} }
-
-#------------------------------------------
-
-
-sub forNested($)
-{ my ($self, $code) = @_;
- my $nested = $self->nested;
- my $body = $nested->body;
-
- my $new_body = $code->($self, $body)
- or return;
-
- return $self if $new_body == $body;
-
- my $new_nested = Mail::Message::Part->new
- ( head => $nested->head->clone
- , container => undef
- );
-
- $new_nested->body($new_body);
-
- my $created = (ref $self)->new
- ( based_on => $self
- , nested => $new_nested
- );
-
- $new_nested->container($created);
- $created;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Nested.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Nested.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,684 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::Nested - body of a message which contains a message
-
-
-=head1 INHERITANCE
-
- Mail::Message::Body::Nested
- is a Mail::Message::Body
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Message::Body
-
- if($body->isNested) {
- my $nest = $body->nested;
- $nest->delete;
- }
-
-
-=head1 DESCRIPTION
-
-The body (content) of a message can be stored in various ways. In this
-manual-page you find the description of extra functionality you have
-when a message contains a nested message, like C<message/rfc822>.
-
-A nested message is different from a multipart message which contains
-only one element, because a nested message has a full set of message
-header fields defined by the RFC882, where a part of a multipart has
-only a few. But because we do not keep track whether all fields are
-presented, a C<Mail::Message::Part> is used anyway.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<'==' and '!='>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Body/"Constructors">
-
-=back
-
-Mail::Message::Body::Nested-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- based_on L<Mail::Message::Body> undef
- charset L<Mail::Message::Body> C<'us-ascii'>
- checked L<Mail::Message::Body> <false>
- data L<Mail::Message::Body> undef
- disposition L<Mail::Message::Body> undef
- eol L<Mail::Message::Body> C<'NATIVE'>
- file L<Mail::Message::Body> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- message L<Mail::Message::Body> undef
- mime_type L<Mail::Message::Body> C<'message/rfc822'>
- modified L<Mail::Message::Body> <false>
- nested undef
- trace L<Mail::Reporter> C<'WARNINGS'>
- transfer_encoding L<Mail::Message::Body> C<'none'>
-
-. based_on BODY
-
-. charset STRING
-
-. checked BOOLEAN
-
-. data ARRAY-OF-LINES | STRING
-
-. disposition STRING|FIELD
-
-. eol 'CR'|'LF'|'CRLF'|'NATIVE'
-
-. file FILENAME|FILEHANDLE|IOHANDLE
-
-. log LEVEL
-
-. message MESSAGE
-
-. mime_type STRING|FIELD|MIME
-
-. modified BOOLEAN
-
-. nested MESSAGE
-
-=over 4
-
-The message which is encapsulated within this body.
-
-=back
-
-. trace LEVEL
-
-. transfer_encoding STRING|FIELD
-
-I<Example:>
-
- my $msg = $folder->message(3);
- my $encaps= Mail::Message::Body::Nested->new(nested => $msg);
-
- # The body will be coerced into a message, which lacks a few
- # lines but we do not bother.
- my $intro = Mail::Message::Body->new(data => ...);
- my $body = Mail::Message::Body::Nested->new(nested => $intro);
-
-=back
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<attach>(MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<check>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<concatenate>(COMPONENTS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encoded>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<eol>(['CR'|'LF'|'CRLF'|'NATIVE'])
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<foreachLine>(CODE)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<stripSignature>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<unify>(BODY)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-=head2 About the payload
-
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<checked>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<disposition>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<dispositionFilename>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isBinary>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isText>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<mimeType>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<transferEncoding>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<type>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-=head2 Access to the payload
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<forNested>(CODE)
-
-=over 4
-
-Execute the CODE for the nested message. This returns a new
-nested body object. Returns C<undef> when the CODE returns C<undef>.
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<nested>
-
-=over 4
-
-Returns the L<Mail::Message::Part|Mail::Message::Part> message which is enclosed within
-this body.
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<printEscapedFrom>(FILEHANDLE)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-Mail::Message::Body::Nested-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoFrom>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoTo>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>([BEGIN,END])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<getTransferEncHandler>(TYPE)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>([DISTANCE])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER, HEAD, BODYTYPE [,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Body/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Body::Nested-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Body::Nested-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Body::Nested-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> No decoder defined for transfer encoding $name.
-
-The data (message body) is encoded in a way which is not currently understood,
-therefore no decoding (or recoding) can take place.
-
-I<Warning:> No encoder defined for transfer encoding $name.
-
-The data (message body) has been decoded, but the required encoding is
-unknown. The decoded data is returned.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/Nested.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/Nested.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/String.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,145 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Body::String;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Body';
-
-use Carp;
-use Mail::Box::FastScalar;
-
-
-#------------------------------------------
-# The scalar is stored as reference to avoid a copy during creation of
-# a string object.
-
-sub _data_from_filename(@)
-{ my ($self, $filename) = @_;
-
- delete $self->{MMBS_nrlines};
-
- local *IN;
- unless(open IN, '<', $filename)
- { $self->log(ERROR =>
- "Unable to read file $filename for message body scalar: $!");
- return;
- }
-
- my @lines = <IN>;
- close IN;
-
- $self->{MMBS_nrlines} = @lines;
- $self->{MMBS_scalar} = join '', @lines;
- $self;
-}
-
-sub _data_from_filehandle(@)
-{ my ($self, $fh) = @_;
- if(ref $fh eq 'Mail::Box::FastScalar')
- { my $lines = $fh->getlines;
- $self->{MMBS_nrlines} = @$lines;
- $self->{MMBS_scalar} = join '', @$lines;
- }
- else
- { my @lines = $fh->getlines;
- $self->{MMBS_nrlines} = @lines;
- $self->{MMBS_scalar} = join '', @lines;
- }
- $self;
-}
-
-sub _data_from_glob(@)
-{ my ($self, $fh) = @_;
- my @lines = <$fh>;
- $self->{MMBS_nrlines} = @lines;
- $self->{MMBS_scalar} = join '', @lines;
- $self;
-}
-
-sub _data_from_lines(@)
-{ my ($self, $lines) = @_;
- $self->{MMBS_nrlines} = @$lines unless @$lines==1;
- $self->{MMBS_scalar} = @$lines==1 ? shift @$lines : join('', @$lines);
- $self;
-}
-
-#------------------------------------------
-
-sub clone()
-{ my $self = shift;
- ref($self)->new(data => $self->string, based_on => $self);
-}
-
-#------------------------------------------
-# Only compute it once, if needed. The scalar contains lines, so will
-# have a \n even at the end.
-
-sub nrLines()
-{ my $self = shift;
- return $self->{MMBS_nrlines} if defined $self->{MMBS_nrlines};
-
- my $nrlines = 0;
- for($self->{MMBS_scalar})
- { $nrlines++ while /\n/g;
- }
-
- $self->{MMBS_nrlines} = $nrlines;
-}
-
-#------------------------------------------
-
-sub size() { length shift->{MMBS_scalar} }
-
-#------------------------------------------
-
-sub string() { shift->{MMBS_scalar} }
-
-#------------------------------------------
-
-sub lines()
-{ my @lines = split /^/, shift->{MMBS_scalar};
- wantarray ? @lines : \@lines;
-}
-
-#------------------------------------------
-
-sub file() { Mail::Box::FastScalar->new(shift->{MMBS_scalar}) }
-
-#------------------------------------------
-
-sub print(;$)
-{ my $self = shift;
- my $fh = shift || select;
- if(ref $fh eq 'GLOB') { print $fh $self->{MMBS_scalar} }
- else { $fh->print($self->{MMBS_scalar}) }
- $self;
-}
-
-#------------------------------------------
-
-sub printEscapedFrom($)
-{ my ($self, $fh) = @_;
-
- my $text = $self->{MMBS_scalar}; # copy required
- $text =~ s/^(?=\>*From )/>/;
- if(ref $fh eq 'GLOB') { print $fh $text }
- else { $fh->print($text) }
- $self;
-}
-
-#------------------------------------------
-
-sub read($$;$@)
-{ my ($self, $parser, $head, $bodytype) = splice @_, 0, 4;
- delete $self->{MMBS_nrlines};
-
- (my $begin, my $end, $self->{MMBS_scalar}) = $parser->bodyAsString(@_);
- $self->fileLocation($begin, $end);
-
- $self;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/String.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body/String.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,646 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body::String - body of a Mail::Message stored as single string
-
-
-=head1 INHERITANCE
-
- Mail::Message::Body::String
- is a Mail::Message::Body
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Message::Body
-
-
-=head1 DESCRIPTION
-
-The body (content) of a message can be stored in various ways. In this
-documentation you will find the description of extra functionality you have
-when a message is stored as a single scalar.
-
-Storing a whole message in one string is only a smart choice when the content
-is small or encoded. Even when stored as a scalar, you can still treat the
-body as if the data is stored in lines or an external file, but this will be
-slower.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<'==' and '!='>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Body/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Body/"Constructors">
-
-=back
-
-Mail::Message::Body::String-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- based_on L<Mail::Message::Body> undef
- charset L<Mail::Message::Body> C<'us-ascii'>
- checked L<Mail::Message::Body> <false>
- data L<Mail::Message::Body> undef
- disposition L<Mail::Message::Body> undef
- eol L<Mail::Message::Body> C<'NATIVE'>
- file L<Mail::Message::Body> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- message L<Mail::Message::Body> undef
- mime_type L<Mail::Message::Body> C<'text/plain'>
- modified L<Mail::Message::Body> <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- transfer_encoding L<Mail::Message::Body> C<'none'>
-
-. based_on BODY
-
-. charset STRING
-
-. checked BOOLEAN
-
-. data ARRAY-OF-LINES | STRING
-
-. disposition STRING|FIELD
-
-. eol 'CR'|'LF'|'CRLF'|'NATIVE'
-
-. file FILENAME|FILEHANDLE|IOHANDLE
-
-. log LEVEL
-
-. message MESSAGE
-
-. mime_type STRING|FIELD|MIME
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-. transfer_encoding STRING|FIELD
-
-=back
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<attach>(MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<check>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<concatenate>(COMPONENTS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encoded>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<eol>(['CR'|'LF'|'CRLF'|'NATIVE'])
-
-=over 4
-
-See L<Mail::Message::Body/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<foreachLine>(CODE)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<stripSignature>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<unify>(BODY)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Body/"The body">
-
-=back
-
-=head2 About the payload
-
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<checked>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<disposition>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<dispositionFilename>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isBinary>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isText>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<mimeType>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<transferEncoding>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-$obj-E<gt>B<type>([STRING|FIELD])
-
-=over 4
-
-See L<Mail::Message::Body/"About the payload">
-
-=back
-
-=head2 Access to the payload
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<printEscapedFrom>(FILEHANDLE)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body/"Access to the payload">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-Mail::Message::Body::String-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoFrom>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoTo>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>([BEGIN,END])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<getTransferEncHandler>(TYPE)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>([DISTANCE])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER, HEAD, BODYTYPE [,CHARS [,LINES]])
-
-=over 4
-
-See L<Mail::Message::Body/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Body/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Body::String-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Body::String-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Body::String-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> No decoder defined for transfer encoding $name.
-
-The data (message body) is encoded in a way which is not currently understood,
-therefore no decoding (or recoding) can take place.
-
-I<Warning:> No encoder defined for transfer encoding $name.
-
-The data (message body) has been decoded, but the required encoding is
-unknown. The decoded data is returned.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Unable to read file $filename for message body scalar: $!
-
-A L<Mail::Message::Body::String|Mail::Message::Body::String> object is to be created from a named
-file, but it is impossible to read that file to retrieve the lines within.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body/String.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body/String.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,454 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Body;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Mail::Message::Field;
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::File;
-
-use Carp;
-use Scalar::Util 'weaken';
-use File::Basename 'basename';
-
-use MIME::Types;
-my $mime_types = MIME::Types->new;
-my $mime_plain = $mime_types->type('text/plain');
-
-
-use overload bool => sub {1} # $body->print if $body
- , '""' => 'string_unless_carp'
- , '@{}' => 'lines'
- , '==' => sub {$_[0]->{MMB_seqnr}==$_[1]->{MMB_seqnr}}
- , '!=' => sub {$_[0]->{MMB_seqnr}!=$_[1]->{MMB_seqnr}};
-
-#------------------------------------------
-
-
-my $body_count = 0; # to be able to compare bodies for equivalence.
-
-sub new(@)
-{ my $class = shift;
-
- return $class->SUPER::new(@_)
- unless $class eq __PACKAGE__;
-
- my %args = @_;
-
- exists $args{file}
- ? Mail::Message::Body::File->new(@_)
- : Mail::Message::Body::Lines->new(@_);
-}
-
-# All body implementations shall implement all of the following!!
-
-sub _data_from_filename(@) {shift->notImplemented}
-sub _data_from_filehandle(@) {shift->notImplemented}
-sub _data_from_glob(@) {shift->notImplemented}
-sub _data_from_lines(@) {shift->notImplemented}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MMB_modified} = $args->{modified} || 0;
-
- my $filename;
- if(defined(my $file = $args->{file}))
- {
- if(!ref $file)
- { $self->_data_from_filename($file) or return;
- $filename = $file;
- }
- elsif(ref $file eq 'GLOB')
- { $self->_data_from_glob($file) or return }
- elsif($file->isa('IO::Handle'))
- { $self->_data_from_filehandle($file) or return }
- else
- { croak "Illegal datatype for file option." }
- }
- elsif(defined(my $data = $args->{data}))
- {
- if(!ref $data)
- { my @lines = split /^/, $data;
- $self->_data_from_lines(\@lines)
- }
- elsif(ref $data eq 'ARRAY')
- { $self->_data_from_lines($data) or return;
- }
- else
- { croak "Illegal datatype for data option." }
- }
- elsif(! $self->isMultipart && ! $self->isNested)
- { # Neither 'file' nor 'data', so empty body.
- $self->_data_from_lines( [] ) or return;
- }
-
- # Set the content info
-
- my ($mime, $transfer, $disp, $charset)
- = @$args{ qw/mime_type transfer_encoding disposition charset/ };
-
- if(defined $filename)
- { $disp = Mail::Message::Field->new
- ('Content-Disposition' => (-T $filename ? 'inline':'attachment')
- , filename => basename($filename)
- ) unless defined $disp;
-
- unless(defined $mime)
- { $mime = $mime_types->mimeTypeOf($filename);
- $mime = -T $filename ? 'text/plain' : 'application/octet-stream'
- unless defined $mime;
- }
- }
-
- if(ref $mime && $mime->isa('MIME::Type'))
- { $mime = $mime->type;
- }
-
- if(defined(my $based = $args->{based_on}))
- { $mime = $based->type unless defined $mime;
- $transfer = $based->transferEncoding unless defined $transfer;
- $disp = $based->disposition unless defined $disp;
- $charset = $based->charset unless defined $charset;
-
- $self->{MMB_checked}
- = defined $args->{checked} ? $args->{checked} : $based->checked;
- }
- else
- { $transfer = $args->{transfer_encoding};
- $self->{MMB_checked} = $args->{checked}|| 0;
- }
-
- if(defined $mime)
- { #$charset ||= 'us-ascii' if $mime =~ m!^text/!i;
- $mime = $self->type($mime);
- $mime->attribute(charset => $charset) if defined $charset;
- }
-
- $self->transferEncoding($transfer) if defined $transfer;
- $self->disposition($disp) if defined $disp;
-
- $self->{MMB_eol} = $args->{eol} || 'NATIVE';
-
- # Set message where the body belongs to.
-
- $self->message($args->{message})
- if defined $args->{message};
-
- $self->{MMB_seqnr} = $body_count++;
- $self;
-}
-
-#------------------------------------------
-
-
-sub clone() {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub decoded(@)
-{ my $self = shift;
- $self->encode
- ( mime_type => 'text/plain'
- , charset => 'us-ascii'
- , transfer_encoding => 'none'
- , @_
- );
-}
-
-#------------------------------------------
-
-
-sub eol(;$)
-{ my $self = shift;
- return $self->{MMB_eol} unless @_;
-
- my $eol = shift;
- if($eol eq 'NATIVE')
- { $eol = $^O =~ m/^win/i ? 'CRLF'
- : $^O =~ m/^mac/i ? 'CR'
- : 'LF';
- }
-
- return $eol if $eol eq $self->{MMB_eol} && $self->checked;
- my $lines = $self->lines;
-
- if($eol eq 'CR') {s/[\015\012]+$/\015/ foreach @$lines}
- elsif($eol eq 'LF') {s/[\015\012]+$/\012/ foreach @$lines}
- elsif($eol eq 'CRLF') {s/[\015\012]+$/\015\012/ foreach @$lines}
- else
- { $self->log(WARNING => "Unknown line terminator $eol ignored.");
- return $self->eol('NATIVE');
- }
-
- (ref $self)->new
- ( based_on => $self
- , eol => $eol
- , data => $lines
- );
-}
-
-#------------------------------------------
-
-
-sub message(;$)
-{ my $self = shift;
- if(@_)
- { $self->{MMB_message} = shift;
- weaken($self->{MMB_message});
- }
- $self->{MMB_message};
-}
-
-#------------------------------------------
-
-
-sub isDelayed() {0}
-
-#------------------------------------------
-
-
-sub isMultipart() {0}
-
-#------------------------------------------
-
-
-sub isNested() {0}
-
-#------------------------------------------
-
-
-sub type(;$)
-{ my $self = shift;
- return $self->{MMB_type} if !@_ && defined $self->{MMB_type};
-
- delete $self->{MMB_mime};
- my $type = defined $_[0] ? shift : 'text/plain';
-
- $self->{MMB_type}
- = ref $type ? $type->clone
- : Mail::Message::Field->new('Content-Type' => $type);
-}
-
-#------------------------------------------
-
-
-sub mimeType()
-{ my $self = shift;
- return $self->{MMB_mime} if exists $self->{MMB_mime};
-
- my $field = $self->{MMB_type};
- my $body = defined $field ? $field->body : '';
-
- return $self->{MMB_mime} = $mime_plain
- unless length $body;
-
- $self->{MMB_mime}
- = $mime_types->type($body) || MIME::Type->new(type => $body);
-}
-
-#------------------------------------------
-
-
-sub charset() { shift->type->attribute('charset') }
-
-#------------------------------------------
-
-
-sub transferEncoding(;$)
-{ my $self = shift;
- return $self->{MMB_transfer} if !@_ && defined $self->{MMB_transfer};
-
- my $set = defined $_[0] ? shift : 'none';
- $self->{MMB_transfer} = ref $set ? $set->clone
- : Mail::Message::Field->new('Content-Transfer-Encoding' => $set);
-}
-
-#------------------------------------------
-
-
-sub disposition(;$)
-{ my $self = shift;
- return $self->{MMB_disposition} if !@_ && $self->{MMB_disposition};
-
- my $disp = defined $_[0] ? shift : 'none';
-
- $self->{MMB_disposition} = ref $disp ? $disp->clone
- : Mail::Message::Field->new('Content-Disposition' => $disp);
-}
-
-#------------------------------------------
-
-
-sub checked(;$)
-{ my $self = shift;
- @_ ? ($self->{MMB_checked} = shift) : $self->{MMB_checked};
-}
-
-#------------------------------------------
-
-
-sub nrLines(@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub size(@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub string() {shift->notImplemented}
-
-sub string_unless_carp()
-{ my $self = shift;
- return $self->string unless (caller)[0] eq 'Carp';
-
- (my $class = ref $self) =~ s/^Mail::Message/MM/;
- "$class object";
-}
-
-#------------------------------------------
-
-
-sub lines() {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub file(;$) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub print(;$) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub printEscapedFrom($) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub write(@)
-{ my ($self, %args) = @_;
- my $filename = $args{filename};
- die "No filename for write() body" unless defined $filename;
-
- open OUT, '>', $filename or return;
- $self->print(\*OUT);
- close OUT or return undef;
- $self;
-}
-
-#------------------------------------------
-
-
-sub read(@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub contentInfoTo($)
-{ my ($self, $head) = @_;
- return unless defined $head;
-
- my $lines = $self->nrLines;
- my $size = $self->size;
- $size += $lines if $Mail::Message::crlf_platform;
-
- $head->set($self->type);
- $head->set('Content-Length' => $size);
- $head->set(Lines => $lines);
-
- $head->set($self->transferEncoding);
- $head->set($self->disposition);
- $self;
-}
-
-#------------------------------------------
-
-
-sub contentInfoFrom($)
-{ my ($self, $head) = @_;
-
- $self->type($head->get('Content-Type'));
- $self->transferEncoding($head->get('Content-Transfer-Encoding'));
- $self->disposition($head->get('Content-Disposition'));
-
- delete $self->{MMB_mime};
- $self;
-
-}
-#------------------------------------------
-
-
-sub modified(;$)
-{ my $self = shift;
- return $self->isModified unless @_; # compat 2.036
- $self->{MMB_modified} = shift;
-}
-
-#------------------------------------------
-
-
-sub isModified() { shift->{MMB_modified} }
-
-#------------------------------------------
-
-
-sub fileLocation(;@) {
- my $self = shift;
- return @$self{ qw/MMB_begin MMB_end/ } unless @_;
- @$self{ qw/MMB_begin MMB_end/ } = @_;
-}
-
-#------------------------------------------
-
-
-sub moveLocation($)
-{ my ($self, $dist) = @_;
- $self->{MMB_begin} -= $dist;
- $self->{MMB_end} -= $dist;
- $self;
-}
-
-#------------------------------------------
-
-
-sub load() {shift}
-
-#------------------------------------------
-
-
-my @in_encode = qw/check encode encoded eol isBinary isText unify
- dispositionFilename/;
-my %in_module = map { ($_ => 'encode') } @in_encode;
-
-sub AUTOLOAD(@)
-{ my $self = shift;
- our $AUTOLOAD;
- (my $call = $AUTOLOAD) =~ s/.*\:\://g;
-
- my $mod = $in_module{$call} || 'construct';
- if($mod eq 'encode'){ require Mail::Message::Body::Encode }
- else { require Mail::Message::Body::Construct }
-
- no strict 'refs';
- return $self->$call(@_) if $self->can($call); # now loaded
-
- # Try parental AUTOLOAD
- Mail::Reporter->$call(@_);
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Body.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1099 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Body - the data of a body in a message
-
-
-=head1 INHERITANCE
-
- Mail::Message::Body has extra code in
- Mail::Message::Body::Construct
- Mail::Message::Body::Encode
-
- Mail::Message::Body
- is a Mail::Reporter
-
- Mail::Message::Body is extended by
- Mail::Message::Body::File
- Mail::Message::Body::Lines
- Mail::Message::Body::Multipart
- Mail::Message::Body::Nested
- Mail::Message::Body::String
-
- Mail::Message::Body is realized by
- Mail::Message::Body::Delayed
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $body = $msg->body;
- my @text = $body->lines;
- my $text = $body->string;
- my IO::Handle $file = $body->file;
- $body->print(\*FILE);
-
- my $content_type = $body->type;
- my $transfer_encoding = $body->transferEncoding;
- my $encoded = $body->encode(mime_type => 'text/html',
- charset => 'us-ascii', transfer_encoding => 'none');\n";
- my $decoded = $body->decoded;
-
-
-=head1 DESCRIPTION
-
-The encoding and decoding functionality of a L<Mail::Message::Body|Mail::Message::Body> is
-implemented in the L<Mail::Message::Body::Encode|Mail::Message::Body::Encode> package. That package is
-automatically loaded when encoding and decoding of messages needs to take
-place. Methods to simply build an process body objects are implemented
-in L<Mail::Message::Body::Construct|Mail::Message::Body::Construct>.
-
-The body of a message (a L<Mail::Message|Mail::Message> object) is stored in one of the
-many body types. The functionality of each body type is equivalent, but there
-are performance differences. Each body type has its own documentation
-with details about its implementation.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-(stringification) Returns the body as string --which will trigger
-completion-- unless called to produce a string for C<Carp>. The latter
-to avoid deep recursions.
-
-I<Example:> stringification of body
-
-
- print $msg->body; # implicit by print
-
- my $body = $msg->body;
- my $x = "$body"; # explicit by interpolation
-
-=back
-
-overload: B<'==' and '!='>
-
-=over 4
-
-(numeric comparison) compares if two references point to the
-same message. This only produces correct results is both arguments
-are message references B<within the same folder>.
-
-I<Example:> use of numeric comparison on a body
-
-
- my $skip = $folder->message(3);
- foreach my $msg (@$folder)
- { next if $msg == $skip;
- $msg->send;
- }
-
-=back
-
-overload: B<@{}>
-
-=over 4
-
-When a body object is used as being an array reference, the lines of
-the body are returned. This is the same as using L<lines()|Mail::Message::Body/"Access to the payload">.
-
-I<Example:> using a body as array
-
-
- print $body->lines->[1]; # second line
- print $body->[1]; # same
-
- my @lines = $body->lines;
- my @lines = @$body; # same
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-Always returns a true value, which is needed to have overloaded
-objects to be used as in C<if($body)>. Otherwise, C<if(defined $body)>
-would be needed to avoid a runtime error.
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-Return a copy of this body, usually to be included in a cloned
-message. Use L<Mail::Message::clone()|Mail::Message/"Constructors"> for a whole message.
-
-=back
-
-Mail::Message::Body-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-BE WARNED that, what you specify here are encodings and such which are
-already in place. The options will not trigger conversions. When you
-need conversions, first create a body with options which tell what you've
-got, and then call L<encode()|Mail::Message::Body::Encode/"Constructing a body"> for what you need.
-
- Option Defined in Default
- based_on undef
- charset C<'us-ascii'>
- checked <false>
- data undef
- disposition undef
- eol C<'NATIVE'>
- file undef
- log L<Mail::Reporter> C<'WARNINGS'>
- message undef
- mime_type C<'text/plain'>
- modified <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- transfer_encoding C<'none'>
-
-. based_on BODY
-
-=over 4
-
-The information about encodings must be taken from the specified BODY,
-unless specified differently.
-
-=back
-
-. charset STRING
-
-=over 4
-
-Defines the character-set which is used in the data. Only useful in
-combination with a C<mime_type> which refers to C<text> in any shape.
-This field is case-insensitive.
-
-=back
-
-. checked BOOLEAN
-
-=over 4
-
-Whether the added information has been check not to contain illegal
-octets with respect to the transfer encoding and mime type. If not
-checked, and then set as body for a message, it will be.
-
-=back
-
-. data ARRAY-OF-LINES | STRING
-
-=over 4
-
-The content of the body. The only way to set the content of a body
-is during the creation of the body. So if you want to modify the content
-of a message, you need to create a new body with the new content and
-add that to the body. The reason behind this, is that correct encodings
-and body information must be guaranteed. It avoids your hassle in
-calculating the number of lines in the body, and checking whether bad
-characters are enclosed in text.
-
-Specify a reference to an ARRAY of lines, each terminated by a newline.
-Or one STRING which may contain multiple lines, separated and terminated
-by a newline.
-
-=back
-
-. disposition STRING|FIELD
-
-=over 4
-
-How this message can be decomposed. The data relates to the
-C<Content-Disposition> field. Specify a STRING which will become the
-field content, or a real FIELD.
-
-The content of this field is specified in RFC 1806. The body of the
-field can be C<inline>, to indicate that the body is intended to be
-displayed automatically upon display of the message. Use C<attachment>
-to indicate that they are separate from the main body of the mail
-message, and that their display should not be automatic, but contingent
-upon some further action of the user.
-
-The C<filename> attribute specifies a name to which is suggested to the
-reader of the message when it is extracted.
-
-=back
-
-. eol 'CR'|'LF'|'CRLF'|'NATIVE'
-
-=over 4
-
-Convert the message into having the specified string as line terminator
-for all lines in the body. C<NATIVE> is used to represent the C<\n>
-on the current platform and will be translated in the applicable one.
-
-BE WARNED that folders with a non-native encoding may appear on your
-platform, for instance in Windows folders handled from a UNIX system.
-The eol encoding has effect on the size of the body!
-
-=back
-
-. file FILENAME|FILEHANDLE|IOHANDLE
-
-=over 4
-
-Read the data from the specified file, file handle, or object of
-type C<IO::Handle>.
-
-=back
-
-. log LEVEL
-
-. message MESSAGE
-
-=over 4
-
-The message where this body belongs to.
-
-=back
-
-. mime_type STRING|FIELD|MIME
-
-=over 4
-
-The type of data which is added. You may specify a content of a header
-line as STRING, or a FIELD object. You may also specify a L<MIME::Type|MIME::Type>
-object. In any case, it will be kept internally as
-a real field (a L<Mail::Message::Field|Mail::Message::Field> object). This relates to the
-C<Content-Type> header field.
-
-A mime-type specification consists of two parts: a general class (C<text>,
-C<image>, C<application>, etc) and a specific sub-class. Examples for
-specific classes with C<text> are C<plain>, C<html>, and C<xml>. This
-field is case-insensitive but case preserving. The default mime-type
-is C<text/plain>,
-
-=back
-
-. modified BOOLEAN
-
-=over 4
-
-Whether the body is flagged modified, directly from its creation.
-
-=back
-
-. trace LEVEL
-
-. transfer_encoding STRING|FIELD
-
-=over 4
-
-The encoding that the data has. If the data is to be encoded, than you
-will have to call L<encode()|Mail::Message::Body::Encode/"Constructing a body"> after the body is created. That will
-return a new encoded body. This field is case-insensitive and relates
-to the C<Content-Transfer-Encoding> field in the header.
-
-=back
-
-I<Example:>
-
- my $body = Mail::Message::Body::String->new(file => \*IN,
- mime_type => 'text/html; charset="ISO-8859-1"');
-
- my $body = Mail::Message::Body::Lines->new(data => ['first', $second],
- charset => 'ISO-10646', transfer_encoding => 'none');
-
- my $body = Mail::Message::Body::Lines->new(data => \@lines,
- transfer_encoding => 'base64');
-
- my $body = Mail::Message::Body::Lines->new(file => 'picture.gif',
- mime_type => 'image/gif');
-
-=back
-
-=head2 Constructing a body
-
-
-$obj-E<gt>B<attach>(MESSAGES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<check>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<concatenate>(COMPONENTS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-Returns a body, an object which is (a sub-)class of a L<Mail::Message::Body|Mail::Message::Body>,
-which contains a simplified representation of textual data. The returned
-object may be the object where this is called on, but may also be a new
-body of any type.
-
- my $dec = $body->decoded;
-
-is equivalent with
-
- my $dec = $body->encode(mime_type => 'text/plain', charset => 'us-ascii',
- transfer_encoding => 'none');
-
-The C<$dec> which is returned is a body. Ask with the L<mimeType()|Mail::Message::Body/"About the payload"> method
-what is produced. This C<$dec> body is B<not related to a header>.
-
- Option Defined in Default
- result_type <same as current>
-
-. result_type CLASS
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<encoded>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<eol>(['CR'|'LF'|'CRLF'|'NATIVE'])
-
-=over 4
-
-Returns the character (or characters) which are used to separate lines
-within this body. When a kind of separator is specified, the body
-is translated to contain the specified line endings.
-
-=back
-
-$obj-E<gt>B<foreachLine>(CODE)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<stripSignature>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Body::Construct/"Constructing a body">
-
-=back
-
-$obj-E<gt>B<unify>(BODY)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Constructing a body">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-Returns a true or false value, depending on whether the body of this
-message has been read from file. This can only false for a
-L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>.
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-Returns whether this message-body contains parts which are messages
-by themselves.
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-Only true for a message body which contains exactly one sub-message:
-the C<Mail::Message::Body::Nested> body type.
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-Returns the message where this body belongs to, optionally setting it
-to a new MESSAGE first. If C<undef> is passed, the body will be
-disconnected from the message.
-
-=back
-
-=head2 About the payload
-
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-Returns the character set which is used in the text body as string. This
-is part of the result of what the C<type> method returns.
-
-=back
-
-$obj-E<gt>B<checked>([BOOLEAN])
-
-=over 4
-
-Returns whether the body encoding has been checked or not (optionally
-after setting the flag to a new value).
-
-=back
-
-$obj-E<gt>B<disposition>([STRING|FIELD])
-
-=over 4
-
-Returns (optionally after setting) how the message can be disposed
-(unpacked). The related header field is C<Content-Disposition>.
-A L<Mail::Message::Field|Mail::Message::Field> object is returned (which stringifies into
-the field content). The field content will be C<none> if no disposition
-was specified.
-
-The argument can be a STRING (which is converted into a field), or a
-fully prepared header field.
-
-=back
-
-$obj-E<gt>B<dispositionFilename>([DIRECTORY])
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isBinary>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<isText>
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"About the payload">
-
-=back
-
-$obj-E<gt>B<mimeType>
-
-=over 4
-
-Returns a L<MIME::Type|MIME::Type> object which is related to this body's type. This
-differs from the C<type> method, which results in a L<Mail::Message::Field|Mail::Message::Field>.
-
-I<Example:>
-
- if($body->mimeType eq 'text/html') {...}
- print $body->mimeType->simplified;
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-Returns the number of lines in the message body. For multi-part messages,
-this includes the header lines and boundaries of all the parts.
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-The total number of bytes in the message body. The size of the body
-is computed in the shape it is in. For example, if this is a base64
-encoded message, the size of the encoded data is returned; you may
-want to call L<Mail::Message::decoded()|Mail::Message/"The body"> first.
-
-=back
-
-$obj-E<gt>B<transferEncoding>([STRING|FIELD])
-
-=over 4
-
-Returns the transfer-encoding of the data within this body as
-L<Mail::Message::Field|Mail::Message::Field> (which stringifies to its content). If it
-needs to be changed, call the L<encode()|Mail::Message::Body::Encode/"Constructing a body"> or L<decoded()|Mail::Message::Body/"Constructing a body"> method.
-When no encoding is present, the field contains the text C<none>.
-
-The optional STRING or FIELD enforces a new encoding to be set, without the
-actual required translations.
-
-I<Example:>
-
- my $transfer = $msg->decoded->transferEncoding;
- $transfer->print; # --> Content-Encoding: base64
- print $transfer; # --> base64
-
- if($msg->body->transferEncoding eq 'none') {...}
-
-=back
-
-$obj-E<gt>B<type>([STRING|FIELD])
-
-=over 4
-
-Returns the type of information the body contains as
-L<Mail::Message::Field|Mail::Message::Field> object. The type is taken from the header
-field C<Content-Type>. If the header did not contain that field,
-then you will get a default field containing C<text/plain>.
-
-You usually can better use L<mimeType()|Mail::Message::Body/"About the payload">, because that will return a
-clever object with type information.
-
-I<Example:>
-
- my $msg = $folder->message(6);
- $msg->get('Content-Type')->print;
- # --> Content-Type: text/plain; charset="us-ascii"
-
- my $content = $msg->decoded;
- my $type = $content->type;
-
- print "This is a $type message\n";
- # --> This is a text/plain; charset="us-ascii" message
-
- print "This is a ", $type->body, "message\n";
- # --> This is a text/plain message
-
- print "Comment: ", $type->comment, "\n";
- # --> Comment: charset="us-ascii"
-
-=back
-
-=head2 Access to the payload
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-Return the content of the body as a file handle. The returned stream may
-be a real file, or a simulated file in any form that Perl supports. While
-you may not be able to write to the file handle, you can read from it.
-
-WARNING: Even if the file handle supports writing, do not write
-to the file handle. If you do, some of the internal values of the
-L<Mail::Message::Body|Mail::Message::Body> may not be updated.
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-Return the content of the body as a list of lines (in LIST context) or a
-reference to an array of lines (in SCALAR context). In scalar context the
-array of lines is cached to avoid needless copying and therefore provide
-much faster access for large messages.
-
-To just get the number of lines in the body, use the L<nrLines()|Mail::Message::Body/"About the payload"> method,
-which is usually much more efficient.
-
-BE WARNED: For some types of bodies the reference will refer to the
-original data. You must not change the referenced data! If you do, some of
-the essential internal variables of the L<Mail::Message::Body|Mail::Message::Body> may not be
-updated.
-
-I<Example:>
-
- my @lines = $body->lines; # copies lines
- my $line3 = ($body->lines)[3] # only one copy
- print $lines[0];
-
- my $linesref = $body->lines; # reference to originals
- my $line3 = $body->lines->[3] # only one copy (faster)
- print $linesref->[0];
-
- print $body->[0]; # by overloading
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-Print the body to the specified FILEHANDLE (defaults to the selected handle).
-The handle may be a GLOB, an IO::File object, or... any object with a
-C<print()> method will do. Nothing useful is returned.
-
-=back
-
-$obj-E<gt>B<printEscapedFrom>(FILEHANDLE)
-
-=over 4
-
-Print the body to the specified FILEHANDLE but all lines which start
-with 'From ' (optionally already preceded by E<gt>'s) will habe an E<gt>
-added in front. Nothing useful is returned.
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-Return the content of the body as a scalar (a single string). This is
-a copy of the internally kept information.
-
-I<Example:>
-
- my $text = $body->string;
- print "Body: $body\n"; # by overloading
-
-=back
-
-$obj-E<gt>B<write>(OPTIONS)
-
-=over 4
-
-Write the content of the body to a file. Be warned that you may want to
-decode the body before writing it!
-
- Option Defined in Default
- filename <required>
-
-. filename FILENAME
-
-I<Example:> write the data to a file
-
-
- use File::Temp;
- my $fn = tempfile;
- $message->decoded->write(filename => $fn)
- or die "Couldn't write to $fn: $!\n";
-
-I<Example:> using the content-disposition information to write
-
-
- use File::Temp;
- my $dir = tempdir; mkdir $dir or die;
- my $fn = $message->body->dispositionFilename($dir);
- $message->decoded->write(filename => $fn)
- or die "Couldn't write to $fn: $!\n";
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-Mail::Message::Body-E<gt>B<addTransferEncHandler>(NAME, CLASS|OBJECT)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<contentInfoFrom>(HEAD)
-
-=over 4
-
-Transfer the body related info from the header into this body.
-
-=back
-
-$obj-E<gt>B<contentInfoTo>(HEAD)
-
-=over 4
-
-Copy the content information (the C<Content-*> fields) into the specified
-HEAD. The body was created from raw data without the required information,
-which must be added. See also L<contentInfoFrom()|Mail::Message::Body/"Internals">.
-
-=back
-
-$obj-E<gt>B<fileLocation>([BEGIN,END])
-
-=over 4
-
-The location of the body in the file. Returned a list containing begin and
-end. The begin is the offsets of the first byte if the folder used for
-this body. The end is the offset of the first byte of the next message.
-
-=back
-
-$obj-E<gt>B<getTransferEncHandler>(TYPE)
-
-=over 4
-
-See L<Mail::Message::Body::Encode/"Internals">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-Returns whether the body has changed.
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-Be sure that the body is loaded. This returns the loaded body.
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-Change the body modification flag. This will force a re-write of the body
-to a folder file when it is closed. It is quite dangerous to change the
-body: the same body may be shared between messages within your program.
-
-Especially be warned that you have to change the message-id when you
-change the body of the message: no two messages should have the same id.
-
-Without value, the current setting is returned, although you can better use
-L<isModified()|Mail::Message::Body/"Internals">.
-
-=back
-
-$obj-E<gt>B<moveLocation>([DISTANCE])
-
-=over 4
-
-Move the registration of the message to a new location over DISTANCE. This
-is called when the message is written to a new version of the same
-folder-file.
-
-=back
-
-$obj-E<gt>B<read>(PARSER, HEAD, BODYTYPE [,CHARS [,LINES]])
-
-=over 4
-
-Read the body with the PARSER from file. The implementation of this method
-will differ between types of bodies. The BODYTYPE argument is a class name
-or a code reference of a routine which can produce a class name, and is
-used in multipart bodies to determine the type of the body for each part.
-
-The CHARS argument is the estimated number of bytes in the body, or
-C<undef> when this is not known. This data can sometimes be derived from
-the header (the C<Content-Length> line) or file-size.
-
-The second argument is the estimated number of LINES of the body. It is less
-useful than the CHARS but may be of help determining whether the message
-separator is trustworthy. This value may be found in the C<Lines> field
-of the header.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-When an unknown method is called on a message body object, this may
-not be problematic. For performance reasons, some methods are
-implemented in separate files, and only demand-loaded. If this
-delayed compilation of additional modules does not help, an error
-will be produced.
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Body-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Body-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Body-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> No decoder defined for transfer encoding $name.
-
-The data (message body) is encoded in a way which is not currently understood,
-therefore no decoding (or recoding) can take place.
-
-I<Warning:> No encoder defined for transfer encoding $name.
-
-The data (message body) has been decoded, but the required encoding is
-unknown. The decoded data is returned.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-=head2 Access to the body
-
-A body can be contained in a message, but may also live without a message.
-In both cases it stores data, and the same questions can be asked: what
-type of data it is, how many bytes and lines, what encoding is used. Any
-body can be encoded and decoded, returning a new body object. However,
-bodies which are part of a message will always be in a shape that they can
-be written to a file or send to somewhere: they will be encoded if needed.
-
-I<Example:>
-
- my $body = Mail::Message::Body::String->new(mime_type => 'image/gif');
- $body->print(\*OUT); # this is binary image data...
-
- my $encoded = $message->body($body);
- $encoded->print(\*OUT); # ascii data, encoded image
-
-Now encoded refers to the body of the C<$message> which is the content of
-C<$body> in a shape that it can be transmitted. Usually C<base64> encoding
-is used.
-
-=head2 Body class implementation
-
-The body of a message can be stored in many ways. Roughtly, the
-implementations can be split in two groups: the data collectors and
-the complex bodies. The primer implement various ways to access data,
-and are full compatible: they only differ in performance and memory
-footprint under different circumstances. The latter are created to
-handle complex multiparts and lazy extraction.
-
-=head3 Data collector bodies
-
-=over 4
-
-=item * L<Mail::Message::Body::String|Mail::Message::Body::String>
-
-The whole message body is stored in one scalar. Small messages can be
-contained this way without performance penalties.
-
-=item * L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
-
-Each line of the message body is stored as single scalar. This is a
-useful representation for a detailed look in the message body, which is
-usually line-organized.
-
-=item * L<Mail::Message::Body::File|Mail::Message::Body::File>
-
-The message body is stored in an external temporary file. This type of
-storage is especially useful when the body is large, the total folder is
-large, or memory is limited.
-
-=item * Mail::Message::Body::InFolder
-
-NOT IMPLEMENTED YET.
-The message is kept in the folder, and is only taken out when the
-content is changed.
-
-=item * Mail::Message::Body::External
-
-NOT IMPLEMENTED YET.
-The message is kept in a separate file, usually because the message body
-is large. The difference with the C<::External> object is that this external
-storage stays this way between closing and opening of a folder. The
-C<::External> object only uses a file when the folder is open.
-
-=back
-
-=head3 Complex bodies
-
-=over 4
-
-=item * L<Mail::Message::Body::Delayed|Mail::Message::Body::Delayed>
-
-The message-body is not yet read, but the exact location of the
-body is known so the message can be read when needed. This is part of
-the lazy extraction mechanism. Once extracted, the object can become
-any simple or complex body.
-
-=item * L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
-
-The message body contains a set of sub-messages (which can contain
-multipart bodies themselves). Each sub-message is an instance
-of L<Mail::Message::Part|Mail::Message::Part>, which is an extension of L<Mail::Message|Mail::Message>.
-
-=item * L<Mail::Message::Body::Nested|Mail::Message::Body::Nested>
-
-Nested messages, like C<message/rfc822>: they contain a message in
-the body. For most code, they simply behave like multiparts.
-
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Body.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Body.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Bounce.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,63 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Mail::Message::Head::Complete;
-use Mail::Message::Field;
-use Carp qw/croak/;
-
-
-sub bounce(@)
-{ my $self = shift;
- my $bounce = $self->clone;
- my $head = $bounce->head;
-
- if(@_==1 && ref $_[0] && $_[0]->isa('Mail::Message::Head::ResentGroup' ))
- { $head->addResentGroup(shift);
- return $bounce;
- }
-
- my @rgs = $head->resentGroups;
- my $rg = $rgs[0];
-
- if(defined $rg)
- { $rg->delete; # Remove group to re-add it later: otherwise
- while(@_) # field order in header would be disturbed.
- { my $field = shift;
- ref $field ? $rg->set($field) : $rg->set($field, shift);
- }
- }
- elsif(@_)
- { $rg = Mail::Message::Head::ResentGroup->new(@_);
- }
- else
- { croak "ERROR: bounce requires To, Cc, or Bcc";
- }
-
- #
- # Add some nice extra fields.
- #
-
- $rg->set(Date => Mail::Message::Field->toDate)
- unless defined $rg->date;
-
- unless(defined $rg->messageId)
- { my $msgid = $head->createMessageId;
- $rg->set('Message-ID' => "<$msgid>");
- }
-
- $head->addResentGroup($rg);
-
- #
- # Flag action to original message
- #
-
- $self->label(passed => 1); # used by some maildir clients
-
- $bounce;
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Bounce.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Bounce.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,94 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct::Bounce - bounce a Mail::Message
-
-
-
-=head1 SYNOPSIS
-
- $message->bounce(To => 'you')->send;
-
-
-=head1 DESCRIPTION
-
-Complex functionality on L<Mail::Message|Mail::Message> objects is implemented in
-different files which are autoloaded. This file implements the
-functionality related to bouncing messages off to other destinations.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-The program calling this method considers itself as an intermediate step
-in the message delivery process; it therefore leaves a resent group
-of header fields as trace.
-
-When a message is received, the Mail Transfer Agent (MTA) adds a
-C<Received> field to the header. As OPTIONS, you may specify lines
-which are added to the resent group of that received field. C<Resent->
-is prepended before the field-names automatically, unless already present.
-
-You may also specify an instantiated L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup> (RG)
-object. See L<Mail::Message::Head::ResentGroup::new()|Mail::Message::Head::ResentGroup/"METHODS"> for the available
-options. This is required if you want to add a new resent group: create
-a new C<Received> line in the header as well.
-
-If you are planning to change the body of a bounce message, don't! Bounced
-messages have the same message-id as the original message, and therefore
-should have the same content (message-ids are universally unique). If you
-still insist, use L<Mail::Message::body()|Mail::Message/"The body">.
-
-I<Example:>
-
- my $bounce = $folder->message(3)->bounce(To => 'you', Bcc => 'everyone');
-
- $bounce->send;
- $outbox->addMessage($bounce);
-
- my $rg = Mail::Message::Head::ResentGroup->new(To => 'you',
- Received => 'from ... by ...');
- $msg->bounce($rg)->send;
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Bounce.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Bounce.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Build.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,136 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Mail::Message::Head::Complete ();
-use Mail::Message::Body::Lines ();
-use Mail::Message::Body::Multipart ();
-use Mail::Message::Body::Nested ();
-use Mail::Message::Field ();
-
-use Mail::Address ();
-
-
-sub build(@)
-{ my $class = shift;
-
- if($class->isa('Mail::Box::Message'))
- { $class->log(ERROR
- => "Only build() Mail::Message's; they are not in a folder yet");
- return undef;
- }
-
- my @parts
- = ! ref $_[0] ? ()
- : $_[0]->isa('Mail::Message') ? shift
- : $_[0]->isa('Mail::Message::Body') ? shift
- : ();
-
- my ($head, @headerlines);
- my ($type, $transfenc, $dispose);
- while(@_)
- { my $key = shift;
- if(ref $key && $key->isa('Mail::Message::Field'))
- { my $name = $key->name;
- if($name eq 'content-type') { $type = $key }
- elsif($name eq 'content-transfer-encoding') { $transfenc = $key }
- elsif($name eq 'content-disposition') { $dispose = $key }
- else { push @headerlines, $key }
- next;
- }
-
- my $value = shift;
- next unless defined $value;
-
- my @data;
-
- if($key eq 'head')
- { $head = $value }
- elsif($key eq 'data')
- { @data = Mail::Message::Body->new(data => $value) }
- elsif($key eq 'file')
- { @data = Mail::Message::Body->new(file => $value) }
- elsif($key eq 'files')
- { @data = map {Mail::Message::Body->new(file => $_) } @$value }
- elsif($key eq 'attach')
- { foreach my $c (ref $value eq 'ARRAY' ? @$value : $value)
- { push @data, $c->isa('Mail::Message')
- ? Mail::Message::Body::Nested->new(nested => $c)
- : $c;
- }
- }
- elsif($key =~ m/^content\-(type|transfer\-encoding|disposition)$/i )
- { my $k = lc $1;
- my $field = Mail::Message::Field->new($key, $value);
- if($k eq 'type') { $type = $field }
- elsif($k eq 'disposition' ) { $dispose = $field }
- else { $transfenc = $field }
- }
- elsif($key =~ m/^[A-Z]/)
- { push @headerlines, $key, $value }
- else
- { $class->log(WARNING => "Skipped unknown key $key in build");
- }
-
- push @parts, grep {defined $_} @data if @data;
- }
-
- my $body
- = @parts==0 ? Mail::Message::Body::Lines->new()
- : @parts==1 ? $parts[0]
- : Mail::Message::Body::Multipart->new(parts => \@parts);
-
- # Setting the type explicitly, only after the body object is finalized
- $body->type($type) if defined $type;
- $body->disposition($dispose) if defined $dispose;
- $body->transferEncoding($transfenc) if defined $transfenc;
-
- $class->buildFromBody($body, $head, @headerlines);
-}
-
-#------------------------------------------
-
-
-sub buildFromBody(@)
-{ my ($class, $body) = (shift, shift);
- my @log = $body->logSettings;
-
- my $head;
- if(ref $_[0] && $_[0]->isa('Mail::Message::Head')) { $head = shift }
- else
- { shift unless defined $_[0]; # undef as head
- $head = Mail::Message::Head::Complete->new(@log);
- }
-
- while(@_)
- { if(ref $_[0]) {$head->add(shift)}
- else {$head->add(shift, shift)}
- }
-
- my $message = $class->new
- ( head => $head
- , @log
- );
-
- $message->body($body);
-
- # be sure the message-id is actually stored in the header.
- $head->add('Message-Id' => '<'.$message->messageId.'>')
- unless defined $head->get('message-id');
-
- $head->add(Date => Mail::Message::Field->toDate)
- unless defined $head->get('Date');
-
- $head->add('MIME-Version' => '1.0') # required by rfc2045
- unless defined $head->get('MIME-Version');
-
- $message;
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Build.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Build.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,346 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct::Build - building a Mail::Message from components
-
-
-
-=head1 SYNOPSIS
-
- my $msg3 = Mail::Message->build
- (From => 'me', data => "only two\nlines\n");
-
- my $msg4 = Mail::Message->buildFromBody($body);
-
-
-=head1 DESCRIPTION
-
-Complex functionality on L<Mail::Message|Mail::Message> objects is implemented in
-different files which are autoloaded. This file implements the
-functionality related to building of messages from various components.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a message
-
-
-Mail::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-Simplified message object builder. In case a MESSAGE or message PART is
-specified, a new message is created with the same body to start with, but
-new headers. A BODY may be specified as well. However, there are more
-ways to add data simply.
-
-The CONTENT is a list of key-value pairs and header field objects.
-The keys which start with a capital are used as header-lines. Lower-cased
-fields are used for other purposes as listed below. Each field may be used
-more than once. Pairs where the value is C<undef> are ignored.
-
-If more than one C<data>, C<file>, and C<attach> is specified,
-a multi-parted message is created. Some C<Content-> fields are
-treated separately: to enforce the content lines of the produced
-message body B<after> it has been created. For instance, to explicitly
-state that you wish a C<multipart/alternative> in stead of the default
-C<multipart/mixed>. If you wish to specify the type per datum, you need
-to start playing with L<Mail::Message::Body|Mail::Message::Body> objects yourself.
-
-This C<build> method will use L<buildFromBody()|Mail::Message::Construct::Build/"Constructing a message"> when the body object has
-been constructed. Together, they produce your message.
-
- Option Defined in Default
- attach undef
- data undef
- file undef
- files C<[ ]>
- head undef
-
-. attach BODY|PART|MESSAGE|ARRAY
-
-=over 4
-
-One attachment to the message. Each attachment can be full MESSAGE, a
-PART, or a BODY.
-Any MESSAGE will get encapsulated into a C<message/rfc822> body.
-You can specify many items (may be of different types) at once.
-
- attach => $folder->message(3)->decoded # body
- attach => $folder->message(3) # message
- attach => [ $msg1, $msg2->part(6), $msg3->body ];
-
-=back
-
-. data STRING|ARRAY-OF-LINES
-
-=over 4
-
-The text for one part, specified as one STRING, or an ARRAY of lines. Each
-line, including the last, must be terminated by a newline. This argument
-is passed to L<Mail::Message::Body::new(data)|Mail::Message::Body/"Constructors"> to
-construct one.
-
- data => [ "line 1\n", "line 2\n" ] # array of lines
- data => <<'TEXT' # string
- line 1
- line 2
- TEXT
-
-=back
-
-. file FILENAME|FILEHANDLE|IOHANDLE
-
-=over 4
-
-Create a body where the data is read from the specified FILENAME,
-FILEHANDLE, or object of type IO::Handle. Also this body is used
-to create a L<Mail::Message::Body|Mail::Message::Body>.
-
- my $in = IO::File->new('/etc/passwd', 'r');
-
- file => 'picture.jpg' # filename
- file => \*MYINPUTFILE # file handle
- file => $in # any IO::Handle
-
- open my $in, '<', '/etc/passwd'; # alternative for IO::File
-
-=back
-
-. files ARRAY-OF-FILE
-
-=over 4
-
-See option file, but then an array reference collection more of them.
-
-=back
-
-. head HEAD
-
-=over 4
-
-Start with a prepared header, otherwise one is created.
-
-=back
-
-I<Example:>
-
- my $msg = Mail::Message->build
- ( From => 'me at home.nl'
- , To => Mail::Address->new('your name', 'you at yourplace.aq')
- , Cc => 'everyone at example.com'
- , $other_message->get('Bcc')
-
- , data => [ "This is\n", "the first part of\n", "the message\n" ]
- , file => 'myself.gif'
- , file => 'you.jpg'
- , attach => $signature
- );
-
- my $msg = Mail::Message->build
- ( To => 'you'
- , 'Content-Type' => 'text/html'
- , data => "<html></html>"
- );
-
-=back
-
-Mail::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-Shape a message around a BODY. Bodies have information about their
-content in them, which is used to construct a header for the message.
-You may specify a HEAD object which is pre-initialized, or one is
-created for you (also when HEAD is C<undef>).
-Next to that, more HEADERS can be specified which are stored in that
-header.
-
-Header fields are added in order, and before the header lines as
-defined by the body are taken. They may be supplied as key-value
-pairs or L<Mail::Message::Field|Mail::Message::Field> objects. In case of a key-value
-pair, the field's name is to be used as key and the value is a
-string, address (Mail::Address object), or array of addresses.
-
-A C<Date>, C<Message-Id>, and C<MIME-Version> field are added unless
-supplied.
-
-I<Example:>
-
- my $type = Mail::Message::Field->new('Content-Type', 'text/html'
- , 'charset="us-ascii"');
-
- my @to = ( Mail::Address->new('Your name', 'you at example.com')
- , 'world at example.info'
- );
-
- my $msg = Mail::Message->buildFromBody
- ( $body
- , From => 'me at example.nl'
- , To => \@to
- , $type
- );
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-
-=head1 DETAILS
-
-
-=head2 Building a message
-
-
-=head3 Rapid building
-
-Most messages you need to construct are relatively simple. Therefore,
-this module provides a method to prepare a message with only one method
-call: L<build()|Mail::Message::Construct::Build/"Constructing a message">.
-
-=head3 Compared to MIME::Entity::build()
-
-The C<build> method in MailBox is modelled after the C<build> method
-as provided by MIMETools, but with a few simplifications:
-
-=over 4
-
-=item When a keys starts with a capital, than it is always a header field
-
-=item When a keys is lower-cased, it is always something else
-
-=item You use the real field-names, not abbreviations
-
-=item All field names are accepted
-
-=item You may specify field objects between key-value pairs
-
-=item A lot of facts are auto-detected, like content-type and encoding
-
-=item You can create a multipart at once
-
-=back
-
-Hum, reading the list above... what is equivalent? L<MIME::Entity> is
-not that simple after all! Let's look at an example from MIME::Entity's
-manual page:
-
- ### Create the top-level, and set up the mail headers:
- $top = MIME::Entity->build(Type => "multipart/mixed",
- From => 'me at myhost.com',
- To => 'you at yourhost.com',
- Subject => "Hello, nurse!");
-
- ### Attachment #1: a simple text document:
- $top->attach(Path=>"./testin/short.txt");
-
- ### Attachment #2: a GIF file:
- $top->attach(Path => "./docs/mime-sm.gif",
- Type => "image/gif",
- Encoding => "base64");
-
- ### Attachment #3: text we'll create with text we have on-hand:
- $top->attach(Data => $contents);
-
-The MailBox equivalent could be
-
- my $msg = Mail::Message->build
- ( From => 'me at myhost.com'
- , To => 'you at yourhost.com'
- , Subject => "Hello, nurse!"
-
- , file => "./testin/short.txt"
- , file => "./docs/mime-sm.gif"
- , data => $contents
- );
-
-One of the simplifications is that L<MIME::Types|MIME::Types> is used to lookup
-the right content type and optimal transfer encoding. Good values
-for content-disposition and such are added as well.
-
-=head3 build, starting with nothing
-
-See L<build()|Mail::Message::Construct::Build/"Constructing a message">.
-
-=head3 buildFromBody, body becomes message
-
-See L<buildFromBody()|Mail::Message::Construct::Build/"Constructing a message">.
-
-=head3 The Content-* fields
-
-The various C<Content-*> fields are not as harmless as they look. For
-instance, the "Content-Type" field will have an effect on the default
-transfer encoding.
-
-When a message is built this way:
-
- my $msg = Mail::Message->build
- ( 'Content-Type' => 'video/mpeg3'
- , 'Content-Transfer-Encoding' => 'base64'
- , 'Content-Disposition' => 'attachment'
- , file => '/etc/passwd'
- );
-
-then first a C<text/plain> body is constructed (MIME::Types does not
-find an extension on the filename so defaults to C<text/plain>), with
-no encoding. Only when that body is ready, the new type and requested
-encodings are set. The content of the body will get base64 encoded,
-because it is requested that way.
-
-What basically happens is this:
-
- my $head = ...other header lines...;
- my $body = Mail::Message::Body::Lines->new(file => '/etc/passwd');
- $body->type('video/mpeg3');
- $body->transferEncoding('base64');
- $body->diposition('attachment');
- my $msg = Mail::Message->buildFromBody($body, $head);
-
-A safer way to construct the message is:
-
- my $body = Mail::Message::Body::Lines->new
- ( file => '/etc/passwd'
- , mime_type => 'video/mpeg3'
- , transfer_encoding => 'base64'
- , disposition => 'attachment'
- );
-
- my $msg = Mail::Message->buildFromBody
- ( $body
- , ...other header lines...
- );
-
-In the latter program, you will immediately start with a body of
-the right type.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Build.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Build.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Forward.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,255 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Mail::Message::Body::Multipart;
-use Mail::Message::Body::Nested;
-use Scalar::Util 'blessed';
-
-
-# tests in t/57forw1f.t
-
-sub forward(@)
-{ my $self = shift;
- my %args = @_;
-
- return $self->forwardNo(@_) if exists $args{body};
-
- my $include = $args{include} || 'INLINE';
- return $self->forwardInline(@_) if $include eq 'INLINE';
-
- my $preamble = $args{preamble};
- push @_, preamble => Mail::Message::Body->new(data => $preamble)
- if defined $preamble && ! ref $preamble;
-
- return $self->forwardAttach(@_) if $include eq 'ATTACH';
- return $self->forwardEncapsulate(@_) if $include eq 'ENCAPSULATE';
-
- $self->log(ERROR => 'Cannot include forward source as $include.');
- undef;
-}
-
-#------------------------------------------
-
-
-sub forwardNo(@)
-{ my ($self, %args) = @_;
-
- my $body = $args{body};
- $self->log(INTERNAL => "No body supplied for forwardNo()")
- unless defined $body;
-
- #
- # Collect header info
- #
-
- my $mainhead = $self->toplevel->head;
-
- # Where it comes from
- my $from = $args{From};
- unless(defined $from)
- { my @from = $self->to;
- $from = \@from if @from;
- }
-
- # To whom to send
- my $to = $args{To};
- $self->log(ERROR => "No address to create forwarded to."), return
- unless $to;
-
- # Create a subject
- my $srcsub = $args{Subject};
- my $subject
- = ! defined $srcsub ? $self->forwardSubject($self->subject)
- : ref $srcsub ? $srcsub->($self->subject)
- : $srcsub;
-
- # Create a nice message-id
- my $msgid = $args{'Message-ID'} || $mainhead->createMessageId;
- $msgid = "<$msgid>" if $msgid && $msgid !~ /^\s*\<.*\>\s*$/;
-
- # Thread information
- my $origid = '<'.$self->messageId.'>';
- my $refs = $mainhead->get('references');
-
- my $forward = Mail::Message->buildFromBody
- ( $body
- , From => ($from || '(undisclosed)')
- , To => $to
- , Subject => $subject
- , References => ($refs ? "$refs $origid" : $origid)
- );
-
- my $newhead = $forward->head;
- $newhead->set(Cc => $args{Cc} ) if $args{Cc};
- $newhead->set(Bcc => $args{Bcc} ) if $args{Bcc};
- $newhead->set(Date => $args{Date}) if $args{Date};
-
- # Ready
-
- $self->label(passed => 1);
- $self->log(PROGRESS => "Forward created from $origid");
- $forward;
-}
-
-#------------------------------------------
-
-
-sub forwardInline(@)
-{ my ($self, %args) = @_;
-
- my $body = $self->body;
-
- while(1) # simplify
- { if($body->isMultipart && $body->parts==1)
- { $body = $body->part(0)->body }
- elsif($body->isNested) { $body = $body->nested->body }
- else { last }
- }
-
- # Prelude must be a real body, otherwise concatenate will not work
- my $prelude = exists $args{prelude} ? $args{prelude}
- : $self->forwardPrelude;
-
- $prelude = Mail::Message::Body->new(data => $prelude)
- if defined $prelude && ! blessed $prelude;
-
- # Postlude
- my $postlude = exists $args{postlude} ? $args{postlude}
- : $self->forwardPostlude;
-
- # Binary bodies cannot be inlined, therefore they will be rewritten
- # into a forwardAttach... preamble must replace prelude and postlude.
-
- if($body->isMultipart || $body->isBinary)
- { $args{preamble} ||= $prelude->concatenate
- ( $prelude
- , ($args{is_attached} || "[The forwarded message is attached]\n")
- , $postlude
- );
- return $self->forwardAttach(%args);
- }
-
- $body = $body->decoded;
- my $strip = (!exists $args{strip_signature} || $args{strip_signature})
- && !$body->isNested;
-
- $body = $body->stripSignature
- ( pattern => $args{strip_signature}
- , max_lines => $args{max_signature}
- ) if $strip;
-
- if(defined(my $quote = $args{quote}))
- { my $quoting = ref $quote ? $quote : sub {$quote . $_};
- $body = $body->foreachLine($quoting);
- }
-
- #
- # Create the message.
- #
-
- my $signature = $args{signature};
- $signature = $signature->body
- if defined $signature && $signature->isa('Mail::Message');
-
- my $composed = $body->concatenate
- ( $prelude, $body, $postlude
- , (defined $signature ? "-- \n" : undef), $signature
- );
-
- $self->forwardNo(%args, body => $composed);
-}
-
-#------------------------------------------
-
-
-sub forwardAttach(@)
-{ my ($self, %args) = @_;
-
- my $body = $self->body;
- my $strip = !exists $args{strip_signature} || $args{strip_signature};
-
- if($body->isMultipart)
- { $body = $body->stripSignature if $strip;
- $body = $body->part(0)->body if $body->parts == 1;
- }
-
- my $preamble = $args{preamble};
- $self->log(ERROR => 'forwardAttach requires a preamble object'), return
- unless ref $preamble;
-
- my @parts = ($preamble, $body);
- push @parts, $args{signature} if defined $args{signature};
- my $multi = Mail::Message::Body::Multipart->new(parts => \@parts);
-
- $self->forwardNo(%args, body => $multi);
-}
-
-#------------------------------------------
-
-
-sub forwardEncapsulate(@)
-{ my ($self, %args) = @_;
-
- my $preamble = $args{preamble};
- $self->log(ERROR => 'forwardEncapsulate requires a preamble object'), return
- unless ref $preamble;
-
- my $nested= Mail::Message::Body::Nested->new(nested => $self->clone);
- my @parts = ($preamble, $nested);
- push @parts, $args{signature} if defined $args{signature};
-
- my $multi = Mail::Message::Body::Multipart->new(parts => \@parts);
-
- $self->forwardNo(%args, body => $multi);
-}
-
-#------------------------------------------
-
-
-# tests in t/57forw0s.t
-
-sub forwardSubject($)
-{ my ($self, $subject) = @_;
- defined $subject && length $subject ? "Forw: $subject" : "Forwarded";
-}
-
-#------------------------------------------
-
-
-sub forwardPrelude()
-{ my $head = shift->head;
-
- my @lines = "---- BEGIN forwarded message\n";
- my $from = $head->get('from');
- my $to = $head->get('to');
- my $cc = $head->get('cc');
- my $date = $head->get('date');
-
- push @lines, $from->string if defined $from;
- push @lines, $to->string if defined $to;
- push @lines, $cc->string if defined $cc;
- push @lines, $date->string if defined $date;
- push @lines, "\n";
-
- \@lines;
-}
-
-#------------------------------------------
-
-
-sub forwardPostlude()
-{ my $self = shift;
- my @lines = ("---- END forwarded message\n");
- \@lines;
-}
-
-#------------------------------------------
-
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Forward.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Forward.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,501 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct::Forward - forwarding a Mail::Message
-
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $forward = $message->forward(To => 'you');
- $forward->send;
-
-
-=head1 DESCRIPTION
-
-Complex functionality on L<Mail::Message|Mail::Message> objects is implemented in
-different files which are autoloaded. This file implements the
-functionality related to creating forwarded messages.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-Forward the content of this message. The body of the message to be forwarded
-is encapsulated in some accompanying text (if you have no wish for that, than
-C<bounce> is your choice). A L<Mail::Message|Mail::Message> object is returned on success.
-
-You may forward a whole message, but also message parts.
-You may wish to overrule some of the default header settings for the
-reply immediately, or you may do that later with C<set> on the header.
-
-When a multi-part body is encountered, and the message is included to
-ATTACH, the parts which look like signatures will be removed. If only
-one message remains, it will be the added as single attachment, otherwise
-a nested multipart will be the result. The value of this option does not
-matter, as long as it is present. See C<Mail::Message::Body::Multipart>.
-
- Option Defined in Default
- Bcc undef
- Cc undef
- Date <now>
- From <'to' in current>
- Message-ID <uniquely generated>
- Subject L<forwardSubject()|Mail::Message::Construct::Forward/"Constructing a message">
- To <required>
- body undef
- include <if body then C<'NO'> else C<'INLINE'>>
- preamble C<constructed from prelude and postlude>
- signature undef
-
-. Bcc ADDRESSES
-
-=over 4
-
-Receivers of blind carbon copies: their names will not be published to
-other message receivers.
-
-=back
-
-. Cc ADDRESSES
-
-=over 4
-
-The carbon-copy receivers, by default none.
-
-=back
-
-. Date DATE
-
-=over 4
-
-The date to be used in the message sent.
-
-=back
-
-. From ADDRESSES
-
-=over 4
-
-Your identification, by default taken from the C<To> field of the
-source message.
-
-=back
-
-. Message-ID STRING
-
-=over 4
-
-Supply a STRING as specific message-id for the forwarded message.
-By default, one is generated for you. If there are no angles around
-your id, they will be added.
-
-=back
-
-. Subject STRING|CODE
-
-=over 4
-
-Force the subject line to the specific STRING, or the result of the
-subroutine specified by CODE. The subroutine will be called passing
-the subject of the original message as only argument. By default,
-the L<forwardSubject()|Mail::Message::Construct::Forward/"Constructing a message"> method is used.
-
-=back
-
-. To ADDRESSES
-
-=over 4
-
-The destination of your message. Obligatory. The ADDRESSES may be
-specified as string, a Mail::Address object, or as array of
-Mail::Address objects.
-
-=back
-
-. body OBJECT
-
-=over 4
-
-If you specify a fully prepared body OBJECT, it will be used as forwarded
-message contents. In this case, only the headers are constructed for you.
-
-=back
-
-. include 'NO'|'INLINE'|'ATTACH'|'ENCAPSULATE'
-
-=over 4
-
-Must the message where this is a reply to be included in the message?
-When C<INLINE> is given, you may pass the options of L<forwardInline()|Mail::Message::Construct::Forward/"Constructing a message">
-as well.
-
-In many applications, the forward option C<as attachment> results in a
-structure which is produced when this option is set to C<ENCAPSULATE>.
-Their default behavior is usually C<INLINE>.
-
-It is only possible to inline textual messages, therefore binary or
-multi-part messages will always be enclosed as attachment.
-Read the details in section L</Creating a forward>..
-
-=back
-
-. preamble STRING|BODY
-
-=over 4
-
-Part which is attached before the forwarded message. If no preamble
-is given, then it is constructed from the prelude and postlude. When
-these are also not present, you will still get a one liner: the result
-of L<forwardPrelude()|Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-. signature BODY|MESSAGE
-
-=over 4
-
-The signature to be added in case of a multi-part forward. The mime-type
-of the signature body should indicate this is a used as such. However,
-in INLINE mode, the body will be taken, a line containing C<'-- '> added
-before it, and added behind the epilogue.
-
-=back
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-Forward the message as I<flat> attachment to the specified C<preamble>. You
-can specify all options available to C<forward()>, although a C<preamble>
-which is provided as body object is required, and any specified C<body>
-is ignored.
-
- Option Defined in Default
- preamble <required>
-
-. preamble BODY|PART
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-Like L<forwardAttach()|Mail::Message::Construct::Forward/"Constructing a message">, but in this case the original message is first
-encapsulated as nested message in a L<Mail::Message::Body::Nested|Mail::Message::Body::Nested>, and
-then joint into a multipart.
-
-You can specify all options available to C<forward()>, although a C<preamble>
-which is provided as body object is required, and any specified C<body>
-is ignored. Signatures are not stripped. Signatures are not stripped.
-
- Option Defined in Default
- preamble <required>
-
-. preamble BODY|PART
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-This method is equivalent in behavior to L<forward()|Mail::Message::Construct::Forward/"Constructing a message"> with the
-option C<include> set to C<'INLINE'>. You can specify most of
-the fields which are available to L<forward()|Mail::Message::Construct::Forward/"Constructing a message"> except
-C<include> and C<body>.
-
- Option Defined in Default
- is_attached C<"[The forwarded message is attached]\n">
- max_signature C<10>
- postlude undef
- prelude undef
- quote undef
- strip_signature C<qr/^--\s/>
-
-. is_attached STRING
-
-=over 4
-
-A forward on binary messages can not be inlined. Therefore, they are
-automatically translated into an attachment, as made by L<forwardAttach()|Mail::Message::Construct::Forward/"Constructing a message">.
-The obligatory preamble option to that method may be specified as option
-to this method, to be used in case of such a forward of a binary, but
-is otherwise constructed from the prelude, the value of this option, and
-the postlude.
-
-=back
-
-. max_signature INTEGER
-
-=over 4
-
-Passed to L<Mail::Message::Body::stripSignature(max_lines)|Mail::Message::Body::Construct/"Constructing a body">. Only
-effective for single-part messages.
-
-=back
-
-. postlude BODY
-
-=over 4
-
-The line(s) which to be added after the quoted reply lines. Create a
-body for it first. This should not include the signature, which has its
-own option. The signature will be added after the postlude when the
-forwarded message is C<INLINE>d.
-
-=back
-
-. prelude BODY
-
-=over 4
-
-The line(s) which will be added before the quoted forwarded lines.
-If nothing is specified, the result of the L<forwardPrelude()|Mail::Message::Construct::Forward/"Constructing a message"> method
-is used. When C<undef> is specified, no prelude will be added.
-
-=back
-
-. quote CODE|STRING
-
-=over 4
-
-Mangle the lines of an C<INLINE>d reply with CODE, or by prepending a
-STRING to each line. The routine specified by CODE is called when the
-line is in C<$_>.
-
-By default, nothing is added before each line. This option is processed
-after the body has been decoded.
-
-=back
-
-. strip_signature REGEXP|STRING|CODE
-
-=over 4
-
-Remove the signature of the sender. The value of this parameter is
-passed to L<Mail::Message::Body::stripSignature(pattern)|Mail::Message::Body::Construct/"Constructing a body">, unless the
-source text is not included. The signature is stripped from the message
-before quoting.
-
-=back
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-Construct a forward, where the whole body of the message is already
-constructed. That complex body is usually produced in L<forwardInline()|Mail::Message::Construct::Forward/"Constructing a message">,
-L<forwardAttach()|Mail::Message::Construct::Forward/"Constructing a message">, or L<forwardEncapsulate()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-The OPTIONS are the same as for C<forward()> except that C<body> is
-required. Some other options, like C<preamble>, are ignored.
-
- Option Defined in Default
- body <required>
-
-. body BODY
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-Added after the forwarded message.
-
-I<Example:>
-
- ---- END forwarded message
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-Create a few lines to be included before the forwarded message
-content. The return is an array of lines.
-
-I<Example:>
-
- ---- BEGIN forwarded message
- From: him at somewhere.else.nl (Original Sender)
- To: me at example.com (Me the receiver)
- Cc: the.rest at world.net
- Date: Wed, 9 Feb 2000 15:44:05 -0500
- <blank line>
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-Create a subject for a message which is a forward from this one. This routine
-tries to count the level of reply in subject field, and transform it into
-a standard form. Please contribute improvements.
-
-I<Example:>
-
- subject --> Forw: subject
- Re: subject --> Forw: Re: subject
- Re[X]: subject --> Forw: Re[X]: subject
- <blank> --> Forwarded
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-
-=head1 DETAILS
-
-
-=head2 Creating a forward
-
-The main difference between L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> and L<forward()|Mail::Message::Construct::Forward/"Constructing a message"> is the reason
-for message processing. The I<bounce> has no intention to modify the
-content of message: the same information is passed-on to someplace else.
-This may mean some conversions, but for instance, the Message-ID does
-not need to be changed.
-
-The purpose of I<forward()> is to pass on information which is
-modified: annotated or reduced. The information is not sent back
-to the author of the original message (which is implemented by L<reply()|Mail::Message::Construct::Reply/"Constructing a message">),
-but to someone else.
-
-So: some information comes in, is modified, and than forwarded to someone
-else. Currently, there are four ways to get the original information
-included, which are explained in the next sections.
-
-After the creation of the forward, you may want to L<rebuild()|Mail::Message::Construct::Rebuild/"Constructing a message"> the
-message to remove unnecessary complexities. Of course, that is not
-required.
-
-=head3 forward, specify a body
-
-When you specify L<forward(body)|Mail::Message::Construct::Forward/"Constructing a message">, you have created your own body object to
-be used as content of the forwarded message. This implies that
-L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message"> is C<'NO'>: no automatic generation of the forwarded
-body.
-
-=head3 forward, inline the original
-
-The L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message"> is set to C<'INLINE'> (the default)
-This is the most complicated situation, but most often used by MUAs:
-the original message is inserted textually in the new body. You can
-set-up automatic stripping of signatures, the way of encapsulation,
-and texts which should be added before and after the encapsulated part.
-
-However, the result may not always be what you expect. For instance,
-some people use very long signatures which will not be automatically
-stripped because the pass the threshold. So, you probably need some
-manual intervention after the message is created and before it is sent.
-
-When a binary message is encountered, inlining is impossible. In that
-case, the message is treated as if C<'ENCAPSULATE'> was requested.
-
-=head3 forward, attach the original
-
-When L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message"> is explicitly set to C<'ATTACH'> the result
-will be a multipart which contains two parts. The first part will
-be your message, and the second the body of the original message.
-
-This means that the headers of the forwarded message are used for
-the new message, and detached from the part which now contains the
-original body information. Content related headers will (of course)
-still be part of that part, but lines line C<To> and C<Subject> will
-not be stored with that part.
-
-As example of the structural transformation:
-
- # code: $original->printStructure;
- multipart/alternative: The source message
- text/plain: content in raw text
- text/html: content as html
-
- # code: $fwd = $original->forward(include => 'ATTACH');
- # code: $fwd->printStructure
- multipart/mixed: The source message
- text/plain: prelude/postlude/signature
- multipart/alternative
- text/plain: content in raw text
- text/html: content as html
-
-=head3 forward, encapsulate the original
-
-When L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message"> is explicitly set to C<'ENCAPSULATE'>, then
-the original message is left in-tact as good as possible. The lines
-of the original message are used in the main message header but also
-enclosed in the part header.
-
-The encapsulation is implemented using a nested message, content type
-C<message/rfc822>. As example of the structural transformation:
-
- # code: $original->printStructure;
- multipart/alternative: The source message
- text/plain: content in raw text
- text/html: content as html
-
- # code: $fwd = $original->forward(include => 'ENCAPSULATE');
- # code: $fwd->printStructure
- multipart/mixed: The source message
- text/plain: prelude/postlude/signature
- message/rfc822
- multipart/alternative: The source message
- text/plain: content in raw text
- text/html: content as html
-
-The message structure is much more complex, but no information is lost.
-This is probably the reason why many MUAs use this when the forward
-an original message as attachment.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Forward.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Forward.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Read.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,73 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Mail::Box::FastScalar;
-
-
-sub read($@)
-{ my ($class, $from, %args) = @_;
- my ($filename, $file);
- my $ref = ref $from;
-
- if(!$ref)
- { $filename = 'scalar';
- $file = Mail::Box::FastScalar->new(\$from);
- }
- elsif($ref eq 'SCALAR')
- { $filename = 'ref scalar';
- $file = Mail::Box::FastScalar->new($from);
- }
- elsif($ref eq 'ARRAY')
- { $filename = 'array of lines';
- my $buffer= join '', @$from;
- $file = Mail::Box::FastScalar->new(\$buffer);
- }
- elsif($ref eq 'GLOB')
- { $filename = 'file (GLOB)';
- local $/;
- my $buffer= <$from>;
- $file = Mail::Box::FastScalar->new(\$buffer);
- }
- elsif($ref && $from->isa('IO::Handle'))
- { $filename = 'file ('.ref($from).')';
- my $buffer= join '', $from->getlines;
- $file = Mail::Box::FastScalar->new(\$buffer);
- }
- else
- { $class->log(ERROR => "Cannot read from $from");
- return undef;
- }
-
- my $strip_status = exists $args{strip_status_fields}
- ? delete $args{strip_status_fields}
- : 1;
-
- require Mail::Box::Parser::Perl; # not parseable by C parser
-
- my $parser = Mail::Box::Parser::Perl->new
- ( %args
- , filename => $filename
- , file => $file
- , trusted => 1
- );
-
- my $self = $class->new(%args);
- $self->readFromParser($parser, $args{body_type});
- $self->addReport($parser);
-
- $parser->stop;
-
- my $head = $self->head;
- $head->set('Message-ID' => '<'.$self->messageId.'>')
- unless $head->get('Message-ID');
-
- $head->delete('Status', 'X-Status') if $strip_status;
-
- $self;
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Read.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Read.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,120 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct::Read - read a Mail::Message from a file handle
-
-
-
-=head1 SYNOPSIS
-
- my $msg1 = Mail::Message->read(\*STDIN);
- my $msg2 = Mail::Message->read(\@lines);
-
-
-=head1 DESCRIPTION
-
-When complex methods are called on a C<Mail::Message> object, this package
-is autoloaded to support the reading of messages directly from any file
-handle.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a message
-
-
-Mail::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-Read a message from a FILEHANDLE, SCALAR, a reference to a SCALAR, or
-a reference to an array of LINES. Most OPTIONS are passed to the L<new()|Mail::Message/"Constructors">
-of the message which is created, but a few extra are defined.
-
-Please have a look at L<build()|Mail::Message::Construct::Build/"Constructing a message"> and L<buildFromBody()|Mail::Message::Construct::Build/"Constructing a message"> before thinking about
-this C<read> method. Use this C<read> only when you have a file-handle
-like STDIN to parse from, or some external source of message lines.
-When you already have a separate set of head and body lines, then C<read>
-is certainly B<not> your best choice.
-
-Some people use this method in a procmail script: the message arrives
-at stdin, so we only have a filehandle. In this case, you are stuck
-with this method. The message is preceeded by a line which can be used
-as message separator in mbox folders. See the example how to handle
-that one.
-
-This method will remove C<Status> and C<X-Status> fields when they appear
-in the source, to avoid the risk that these fields accidentally interfere
-with your internal administration, which may have security implications.
-
- Option Defined in Default
- body_type C<undef>
- strip_status_fields <true>
-
-. body_type CLASS
-
-=over 4
-
-Force a body type (any specific implementation of a L<Mail::Message::Body|Mail::Message::Body>)
-to be used to store the message content. When the body is a multipart or
-nested, this will be overruled.
-
-=back
-
-. strip_status_fields BOOLEAN
-
-=over 4
-
-Remove the C<Status> and C<X-Status> fields from the message after
-reading, to lower the risk that received messages from external
-sources interfere with your internal administration. If you want
-fields not to be stripped (you would like to disable the stripping)
-you probably process folders yourself, which is a Bad Thing!
-
-=back
-
-I<Example:>
-
- my $msg1 = Mail::Message->read(\*STDIN);
- my $msg2 = Mail::Message->read(\@lines, log => 'PROGRESS');
- $folder->addMessages($msg1, $msg2);
-
- my $msg3 = Mail::Message->read(<<MSG);
- Subject: hello world
- To: you at example.com
- # warning: empty line required !!!
- Hi, greetings!
- MSG
-
- # promail example
- my $fromline = <STDIN>;
- my $msg = Mail::Message->read(\*STDIN);
- my $coerced = $mboxfolder->addMessage($msg);
- $coerced->fromLine($fromline);
-
-=back
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Read.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Read.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Rebuild.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,285 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Mail::Message::Head::Complete;
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::Multipart;
-
-use Mail::Address;
-use Carp;
-use Scalar::Util 'blessed';
-use List::Util 'first';
-use Mail::Box::FastScalar;
-
-
-my @default_rules =
- qw/replaceDeletedParts descendMultiparts descendNested
- flattenMultiparts flattenEmptyMultiparts/;
-
-sub rebuild(@)
-{ my ($self, %args) = @_;
-
- # Collect the rules to be run
-
- my @rules = $args{rules} ? @{$args{rules}} : @default_rules;
- unshift @rules, @{$args{extraRules}} if $args{extraRules};
-
- foreach my $rule (@rules)
- { next if ref $rule;
- croak "ERROR: no rebuild rule '$rule' defined.\n"
- unless $self->can($rule);
- }
-
- # Start off with the message
-
- my $rebuild = $self->recursiveRebuildPart($self, rules => \@rules)
- or return;
-
- # Be sure we end-up with a message
-
- if($rebuild->isa('Mail::Message::Part'))
- { # a bit too much information is lost: we are left without the
- # main message headers....
- my $clone = Mail::Message->new(head => $self->head->clone);
- $clone->body($rebuild->body); # to update the Content lines
- $rebuild = $clone;
- }
-
- $rebuild->takeMessageId unless $args{keep_message_id};
- $rebuild;
-}
-
-#------------------------------------------
-# The general rules
-
-sub flattenNesting($@)
-{ my ($self, $part) = @_;
- $part->isNested ? $part->body->nested : $part;
-}
-
-sub flattenMultiparts($@)
-{ my ($self, $part) = @_;
- return $part unless $part->isMultipart;
- my @active = $part->parts('ACTIVE');
- @active==1 ? $active[0] : $part;
-}
-
-sub removeEmptyMultiparts($@)
-{ my ($self, $part) = @_;
- $part->isMultipart && $part->body->parts==0 ? undef : $part;
-}
-
-sub flattenEmptyMultiparts($@)
-{ my ($self, $part) = @_;
- return $part unless $part->isMultipart && $part->parts('ACTIVE')==0;
-
- my $body = $part->body;
- my $preamble = $body->preamble
- || Mail::Message::Body::Lines->new(data => '');
- my $epilogue = $body->epilogue;
- my $newbody = $preamble->concatenate($preamble, <<NO_PARTS, $epilogue);
-
- * This multipart did not contain any parts (anymore)
- * and was therefore flattened.
-
-NO_PARTS
-
- my $rebuild = Mail::Message::Part->new
- ( head => $part->head->clone
- , container => undef
- );
- $rebuild->body($newbody);
- $rebuild;
-}
-
-sub removeEmptyBodies($@)
-{ my ($self, $part) = @_;
- $part->body->lines==0 ? undef : $part;
-}
-
-sub descendMultiparts($@)
-{ my ($self, $part, %args) = @_;
- return $part unless $part->isMultipart;
-
- my $body = $part->body;
- my $changed = 0;
- my @newparts;
-
- foreach my $part ($body->parts)
- { my $new = $self->recursiveRebuildPart($part, %args);
-
- if(!defined $new) { $changed++ }
- elsif($new==$part) { push @newparts, $part }
- else { push @newparts, $new; $changed++ }
- }
-
- return $part unless $changed;
-
- my $newbody = ref($body)->new
- ( based_on => $body
- , parts => \@newparts
- );
-
- my $rebuild = ref($part)->new
- ( head => $part->head->clone
- , container => undef
- );
-
- $rebuild->body($newbody); # update Content-* lines
- $rebuild;
- }
-
-sub descendNested($@)
-{ my ($self, $part, %args) = @_;
-
- return $part unless $part->isNested;
-
- my $body = $part->body;
- my $srcnested = $body->nested;
- my $newnested = $self->recursiveRebuildPart($srcnested, %args);
-
- return undef unless defined $newnested;
- return $part if $newnested==$srcnested;
-
- # Changes in the encapsulated message
- my $newbody = ref($body)->new
- ( based_on => $body
- , nested => $newnested
- );
-
- my $rebuild = ref($part)->new(head => $part->head->clone);
- $rebuild->body($newbody);
- $rebuild;
-}
-
-sub removeDeletedParts($@)
-{ my ($self, $part) = @_;
- $part->isDeleted ? undef : $part;
-}
-
-sub replaceDeletedParts($@)
-{ my ($self, $part) = @_;
-
- return $part
- unless ($part->isNested && $part->body->nested->isDeleted)
- || $part->isDeleted;
-
- my $structure = '';
- my $output = Mail::Box::FastScalar->new(\$structure, ' ');
- $part->printStructure($output);
-
- Mail::Message::Part->build
- ( data => "Removed content:\n\n$structure"
- );
-}
-
-#------------------------------------------
-# The more complex rules
-
-sub removeHtmlAlternativeToText($@)
-{ my ($self, $part, %args) = @_;
- return $part unless $part->body->mimeType eq 'text/html';
-
- my $container = $part->container;
-
- return $part
- unless defined $container
- && $container->mimeType eq 'multipart/alternative';
-
- foreach my $subpart ($container->parts)
- { return undef if $subpart->body->mimeType eq 'text/plain';
- }
-
- $part;
-}
-
-my $has_hft;
-
-sub textAlternativeForHtml($@)
-{ my ($self, $part, %args) = @_;
-
- my $hft = 'Mail::Message::Convert::HtmlFormatText';
- unless(defined $has_hft)
- { eval "require Mail::Message::Convert::HtmlFormatText";
- $has_hft = $hft->can('format');
- }
-
- return $part
- unless $has_hft && $part->body->mimeType eq 'text/html';
-
- my $container = $part->container;
- my $in_alt = defined $container
- && $container->mimeType eq 'multipart/alternative';
-
- return $part
- if $in_alt
- && first { $_->body->mimeType eq 'text/plain' } $container->parts;
-
-
- # Create the plain part
-
- my $html_body = $part->body;
- my $plain_body = $hft->new->format($html_body);
-
- my $plain_part = Mail::Message::Part->new(container => undef);
- $plain_part->body($plain_body);
-
- return $container->attach($plain_part)
- if $in_alt;
-
- # Recreate the html part to loose some header lines
-
- my $html_part = Mail::Message::Part->new(container => undef);
- $html_part->body($html_body);
-
- # Create the new part, with the headers of the html part
-
- my $mp = Mail::Message::Body::Multipart->new
- ( mime_type => 'multipart/alternative'
- , parts => [ $plain_part, $html_part ]
- );
-
- my $newpart = ref($part)->new
- ( head => $part->head->clone # Subject field, and such
- , container => undef
- );
- $newpart->body($mp);
- $newpart;
-}
-
-#------------------------------------------
-
-
-sub recursiveRebuildPart($@)
-{ my ($self, $part, %args) = @_;
-
- RULES:
- for(1)
- {
- foreach my $rule ( @{$args{rules}} )
- {
- my $rebuild
- = ref $rule ? $rule->($self, $part, %args)
- : $self->$rule($part, %args);
-
- return undef unless defined $rebuild;
-
- if($part != $rebuild)
- { $part = $rebuild;
- redo RULES;
- }
- }
- }
-
- $part;
-}
-
-#------------------------------------------
-
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Rebuild.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Rebuild.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,307 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct::Rebuild - modify a Mail::Message
-
-
-
-=head1 SYNOPSIS
-
- my $cleanup = $msg->rebuild;
-
-
-=head1 DESCRIPTION
-
-Modifying existing messages is a pain, certainly if this has to be
-done in an automated fashion. The problems are especially had when
-multiparts have to be created or removed. The L<rebuild()|Mail::Message::Construct::Rebuild/"Constructing a message"> method
-tries to simplify this task and add some standard features.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-Reconstruct an existing message into something new. Returned is a new
-message when there were modifications made, C<undef> if the message has
-no body left, or the original message when no modifications had to be
-made.
-
-Examples of use: you have a message which only contains html, and you
-want to translate it into a multipart which contains the original html
-and the textual translation of it. Or, you have a message with parts
-flagged to be deleted, and you want those changes be incorparted in the
-memory structure. Another possibility: clear all the resent groups
-(see L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup>) from the header, before it is
-written to file.
-
-Reconstructing is a hazardous task, where multi level multiparts and
-nested messages come into play. The rebuild method tries to simplify
-handing these messages for you.
-
- Option Defined in Default
- extraRules []
- keep_message_id <false>
- rules <see text>
-
-. extraRules ARRAY
-
-=over 4
-
-The standard set of rules, which is the default for the C<rules> option,
-is a moderest setting. In stead of copying that list into a full set
-of rules of your own, you can also specify only some additional rules
-which will be prependend to the default rule set.
-
-The order of the rules is respected, which means that you do not always
-need to rewrite the whole rule is (see C<rule> option). For instance,
-the extra rule of C<removeDeletedParts> returns an C<undef>, which
-means that it cancels the effect of the default rule C<replaceDeletedParts>.
-
-=back
-
-. keep_message_id BOOLEAN
-
-=over 4
-
-The message-id is an unique identification of the message: no two messages
-with different content shall exist anywhere. However in practice, when
-a message is changed during transmission, the id is often incorrectly
-not changed. This may lead to complications in application which see
-both messages with the same id.
-
-=back
-
-. rules ARRAY
-
-=over 4
-
-The ARRAY is a list of rules, which each describe an action which will
-be called on each part which is found in the message. Most rules
-probably won't match, but some will bring changes to the content.
-Rules can be specified as method name, or as code reference. See the
-L</DETAILS> chapter in this manual page, and L<recursiveRebuildPart()|Mail::Message::Construct::Rebuild/"Internals">.
-
-By default, only the relatively safe transformations are performed:
-C<replaceDeletedParts>, C<descendMultiparts>, C<descendNested>,
-C<flattenMultiparts>, C<flattenEmptyMultiparts>. In the future, more
-safe transformations may be added to this list.
-
-=back
-
-I<Example:>
-
- # remove all deleted parts
- my $cleaned = $msg->rebuild(keep_message_id => 1);
- $folder->addMessage($cleaned) if defined $cleaned;
-
- # Replace deleted parts by a place-holder
- my $cleaned = $msg->rebuild
- ( keep_message_id => 1
- , extraRules => [ 'removeEmpty', 'flattenMultiparts' ]
- );
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- rules <required>
-
-. rules ARRAY-OF-RULES
-
-=over 4
-
-Rules are method names which can be called on messages and message parts
-objects. The ARRAY can also list code references which can be called.
-In any case, each rule will be called the same way:
-
- $code->(MESSAGE, PART)
-
-The return can be C<undef> or any complex construct based on a
-L<Mail::Message::Part|Mail::Message::Part> or coerceable into such a part. For each part,
-all rules are called in sequence. When a rule returns a changed object,
-the rules will start all over again, however C<undef> will immediately
-stop it.
-
-=back
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-=head2 Rebuilding a message
-
-Modifying an existing message is a complicated job. Not only do you need
-to know what you are willing to change, but you have to take care about
-multiparts (possibly nested in multiple levels), rfc822 encapsulated
-messages, header field consistency, and so on. The L<rebuild()|Mail::Message::Construct::Rebuild/"Constructing a message"> method
-let you focus on the task, and takes care of the rest.
-
-The L<rebuild()|Mail::Message::Construct::Rebuild/"Constructing a message"> method uses rules to transform the one message into an
-other. If one or more of the rules apply, a new message will be returned.
-A simple numeric comparison tells whether the message has changed. For
-example
-
- print "No change"
- if $message == $message->rebuild;
-
-Transformation is made with a set of rules. Each rule performs only a
-small step, which makes is easily configurable. The rules are ordered,
-and when one makes a change to the result, the result will be passed
-to all the rules again until no rule makes a change on the part anymore.
-A rule may also return C<undef> in which case the part will be removed
-from the (resulting) message.
-
-=head3 General rules
-
-This sections describes the general configuration rules: all quite straight
-forward transformations on the message structure. The rules marked with (*)
-are used by default.
-
-=over 4
-
-=item * descendMultiparts (*)
-
-Apply the rules to the parts of (possibly nested) multiparts, not only to
-the top-level message.
-
-=item * descendNested (*)
-
-Apply the rules to the C<message/rfc822> encapsulated message as well.
-
-=item * flattenEmptyMultiparts (*)
-
-Multipart messages which do not have any parts left are replaced by
-a single part which contains the preamble, epilogue and a brief
-explanation.
-
-=item * flattenMultiparts (*)
-
-When a multipart contains only one part, that part will take the place of
-the multipart: the removal of a level of nesting. This way, the preamble
-and epilogue of the multipart (which do not have a meaning, officially)
-are lost.
-
-=item * flattenNesting
-
-Remove the C<message/rfc822> encapsulation. Only the content related
-lines of the encapsulated body are preserved one level higher. Other
-information will be lost, which is often not too bad.
-
-=item * removeDeletedParts
-
-All parts which are flagged for deletion are removed from the message
-without leaving a trace. If a nested message is encountered which has
-its encapsulated content flagged for deletion, it will be removed as
-a whole.
-
-=item * removeEmptyMultiparts
-
-Multipart messages which do not have any parts left are removed. The
-information in preamble and epiloge is lost.
-
-=item * removeEmptyBodies
-
-Simple message bodies which do not contain any lines of content are
-removed. This will loose the information which is stored in the
-headers of these bodies.
-
-=item * replaceDeletedParts (*)
-
-All parts of the message which are flagged for deletion are replace
-by a message which says that the part is deleted.
-
-=back
-
-You can specify a selection of these rules with L<rebuild(rules)|Mail::Message::Construct::Rebuild/"Constructing a message"> and
-L<rebuild(extraRules)|Mail::Message::Construct::Rebuild/"Constructing a message">.
-
-=head3 Conversion rules
-
-This section describes the rules which try to be smart with the
-content. Please contribute with ideas and implementations.
-
-=over 4
-
-=item * removeHtmlAlternativeToText
-
-When a multipart alternative is encountered, which contains both a
-plain text and an html part, then the html part is flagged for
-deletion. Especially useful in combination with the C<removeDeletedParts>
-and C<flattenMultiparts> rules.
-
-=item * textAlternativeForHtml
-
-Any C<text/html> part which is not accompanied by an alternative
-plain text part will have one added. You must have a working
-L<Mail::Message::Convert::HtmlFormatText|Mail::Message::Convert::HtmlFormatText>, which means that
-HTML::TreeBuilder and HTML::FormatText must be installed on
-your system.
-
-=back
-
-=head3 Adding your own rules
-
-If you have designed your own rule, please consider contributing this
-to Mail::Box; it may be useful for other people as well.
-
-Each rule is called
-
- my $new = $code->($message, $part, %options)
-
-where the C<%options> are defined by the C<rebuild()> method internals. At
-least the C<rules> option is passed, which is a full expansion of all
-the rules which will be applied.
-
-Your subroutine shall return C<$part> if no changes are needed,
-C<undef> if the part should be removed, and any newly constructed
-C<Mail::Message::Part> when a change is required. It is easiest to
-start looking at the source code of this package, and copy from a
-comparible routine.
-
-When you have your own routine, you simply call:
-
- my $rebuild_message = $message->rebuild
- ( extraRules => [ \&my_own_rule, 'other_rule' ] );
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Rebuild.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Rebuild.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Reply.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,249 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Mail::Message::Body::Multipart;
-use Mail::Address;
-use Scalar::Util 'blessed';
-
-
-# tests in t/55reply1r.t, demo in the examples/ directory
-
-sub reply(@)
-{ my ($self, %args) = @_;
-
- my $body = $args{body};
- my $strip = !exists $args{strip_signature} || $args{strip_signature};
- my $include = $args{include} || 'INLINE';
-
- if($include eq 'NO')
- { # Throw away real body.
- $body = Mail::Message::Body->new
- (data => ["\n[The original message is not included]\n\n"])
- unless defined $body;
- }
- elsif($include eq 'INLINE' || $include eq 'ATTACH')
- {
- unless(defined $body)
- { # text attachment
- $body = $self->body;
- $body = $body->part(0)->body if $body->isMultipart && $body->parts==1;
- $body = $body->nested->body if $body->isNested;
-
- $body
- = $strip && ! $body->isMultipart && !$body->isBinary
- ? $body->decoded->stripSignature
- ( pattern => $args{strip_signature}
- , max_lines => $args{max_signature}
- )
- : $body->decoded;
- }
-
- if($include eq 'INLINE' && $body->isMultipart) { $include = 'ATTACH' }
- elsif($include eq 'INLINE' && $body->isBinary)
- { $include = 'ATTACH';
- $body = Mail::Message::Body::Multipart->new(parts => [$body]);
- }
-
- if($include eq 'INLINE')
- { my $quote
- = defined $args{quote} ? $args{quote}
- : exists $args{quote} ? undef
- : '> ';
-
- if(defined $quote)
- { my $quoting = ref $quote ? $quote : sub {$quote . $_};
- $body = $body->foreachLine($quoting);
- }
- }
- }
- else
- { $self->log(ERROR => "Cannot include reply source as $include.");
- return;
- }
-
- #
- # Collect header info
- #
-
- my $mainhead = $self->toplevel->head;
-
- # Where it comes from
- my $from = $args{From};
- unless(defined $from)
- { my @from = $self->to;
- $from = \@from if @from;
- }
-
- # To whom to send
- my $to = $args{To};
- unless(defined $to)
- { my $reply = $mainhead->get('reply-to');
- $to = [ $reply->addresses ] if defined $reply;
- }
-
- unless(defined $to)
- { my @from = $self->from;
- $to ||= \@from if @from;
- }
-
- defined $to or return;
-
- # Add Cc
- my $cc = $args{Cc};
- if(!defined $cc && $args{group_reply})
- { my @cc = $self->cc;
- $cc = [ $self->cc ] if @cc;
- }
-
- # Add Bcc
- my $bcc = $args{Bcc};
-
- # Create a subject
- my $srcsub = $args{Subject};
- my $subject
- = ! defined $srcsub ? $self->replySubject($self->subject)
- : ref $srcsub ? $srcsub->($self->subject)
- : $srcsub;
-
- # Create a nice message-id
- my $msgid = $args{'Message-ID'};
- $msgid = "<$msgid>" if $msgid && $msgid !~ /^\s*\<.*\>\s*$/;
-
- # Thread information
- my $origid = '<'.$self->messageId.'>';
- my $refs = $mainhead->get('references');
-
- # Prelude
- my $prelude
- = defined $args{prelude} ? $args{prelude}
- : exists $args{prelude} ? undef
- : [ $self->replyPrelude($to) ];
-
- $prelude = Mail::Message::Body->new(data => $prelude)
- if defined $prelude && ! blessed $prelude;
-
- my $postlude = $args{postlude};
- $postlude = Mail::Message::Body->new(data => $postlude)
- if defined $postlude && ! blessed $postlude;
-
- #
- # Create the message.
- #
-
- my $total;
- if($include eq 'NO') {$total = $body}
- elsif($include eq 'INLINE')
- { my $signature = $args{signature};
- $signature = $signature->body
- if defined $signature && $signature->isa('Mail::Message');
-
- $total = $body->concatenate
- ( $prelude, $body, $postlude
- , (defined $signature ? "-- \n" : undef), $signature
- );
- }
- if($include eq 'ATTACH')
- {
- my $intro = $prelude->concatenate
- ( $prelude
- , [ "\n", "[Your message is attached]\n" ]
- , $postlude
- );
-
- $total = Mail::Message::Body::Multipart->new
- ( parts => [ $intro, $body, $args{signature} ]
- );
- }
-
- my $msgtype = $args{message_type} || 'Mail::Message';
-
- my $reply = $msgtype->buildFromBody
- ( $total
- , From => $from || 'Undisclosed senders:;'
- , To => $to
- , Subject => $subject
- , 'In-Reply-To' => $origid
- , References => ($refs ? "$refs $origid" : $origid)
- );
-
- my $newhead = $reply->head;
- $newhead->set(Cc => $cc) if $cc;
- $newhead->set(Bcc => $args{Bcc}) if $args{Bcc};
-
- # Ready
-
- $self->log(PROGRESS => 'Reply created from '.$origid);
- $self->label(replied => 1);
- $reply;
-}
-
-#------------------------------------------
-
-
-# tests in t/35reply1rs.t
-
-sub replySubject($)
-{ my ($thing, $subject) = @_;
- $subject = 'your mail' unless defined $subject && length $subject;
- my @subject = split /\:/, $subject;
- my $re_count = 1;
-
- # Strip multiple Re's from the start.
-
- while(@subject)
- { last if $subject[0] =~ /[A-QS-Za-qs-z][A-DF-Za-df-z]/;
-
- for(shift @subject)
- { while( /\bRe(?:\[\s*(\d+)\s*\]|\b)/g )
- { $re_count += defined $1 ? $1 : 1;
- }
- }
- }
-
- # Strip multiple Re's from the end.
-
- if(@subject)
- { for($subject[-1])
- { $re_count++ while s/\s*\(\s*(re|forw)\W*\)\s*$//i;
- }
- }
-
- # Create the new subject string.
-
- my $text = (join ':', @subject) || 'your mail';
- for($text)
- { s/^\s+//;
- s/\s+$//;
- }
-
- $re_count==1 ? "Re: $text" : "Re[$re_count]: $text";
-}
-
-#------------------------------------------
-
-
-sub replyPrelude($)
-{ my ($self, $who) = @_;
-
- $who = $who->[0] if ref $who eq 'ARRAY';
-
- my $user
- = !defined $who ? undef
- : !ref $who ? (Mail::Address->parse($who))[0]
- : $who->isa('Mail::Message::Field') ? ($who->addresses)[0]
- : $who;
-
- my $from
- = ref $user && $user->isa('Mail::Address')
- ? ($user->name || $user->address || $user->format)
- : 'someone';
-
- my $time = gmtime $self->timestamp;
- "On $time, $from wrote:\n";
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Reply.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Reply.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,315 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct::Reply - reply to a Mail::Message
-
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $reply = $message->reply;
- my $quoted = $message->replyPrelude($head->get('From'));
-
-
-=head1 DESCRIPTION
-
-Complex functionality on L<Mail::Message|Mail::Message> objects is implemented in
-different files which are autoloaded. This file implements the
-functionality related to creating message replies.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-Start a reply to this message. Some of the header-lines of the original
-message will be taken. A message-id will be assigned. Some header lines
-will be updated to facilitate message-thread detection
-(see L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager>).
-
-You may reply to a whole message or a message part.
-You may wish to overrule some of the default header settings for the
-reply immediately, or you may do that later with C<set> on the header.
-
-ADDRESSES may be specified as string, or
-a Mail::Address object, or as array of Mail::Address objects.
-
- Option Defined in Default
- Bcc undef
- Cc <'cc' in current>
- From <'to' in current>
- Message-ID <uniquely generated>
- Subject L<replySubject()|Mail::Message::Construct::Reply/"Constructing a message">
- To <sender in current>
- body undef
- group_reply <true>
- include C<'INLINE'>
- max_signature C<10>
- message_type L<Mail::Message|Mail::Message>
- postlude undef
- prelude undef
- quote 'E<gt> '
- signature undef
- strip_signature C<qr/^--\s/>
-
-. Bcc ADDRESSES
-
-=over 4
-
-Receivers of blind carbon copies: their names will not be published to
-other message receivers.
-
-=back
-
-. Cc ADDRESSES
-
-=over 4
-
-The carbon-copy receivers, by default a copy of the C<Cc> field of
-the source message.
-
-=back
-
-. From ADDRESSES
-
-=over 4
-
-Your identification, by default taken from the C<To> field of the
-source message.
-
-=back
-
-. Message-ID STRING
-
-=over 4
-
-Supply a STRING as specific message-id for the reply. By default, one is
-generated for you. If there are no angles around your id, they will be
-added.
-
-=back
-
-. Subject STRING|CODE
-
-=over 4
-
-Force the subject line to the specific STRING, or the result of the
-subroutine specified by CODE. The subroutine will be called passing
-the subject of the original message as only argument. By default,
-L<Mail::Message::replySubject()|Mail::Message::Construct::Reply/"Constructing a message"> is used.
-
-=back
-
-. To ADDRESSES
-
-=over 4
-
-The destination of your message. By default taken from the C<Reply-To>
-field in the source message. If that field is not present as well, the
-C<From> line is scanned. If they all fail, C<undef> is returned by this
-method: no reply message produced.
-
-=back
-
-. body BODY
-
-=over 4
-
-Usually, the reply method can create a nice, sufficient message from the
-source message's body. In case you like more complicated reformatting,
-you may also create a body yourself first, and pass this on to this
-C<reply> method. Some of the other options to this method will be ingored
-in this case.
-
-=back
-
-. group_reply BOOLEAN
-
-=over 4
-
-Will the people listed in the C<Cc> headers (those who received the
-message where you reply to now) also receive this message as carbon
-copy?
-
-=back
-
-. include 'NO'|'INLINE'|'ATTACH'
-
-=over 4
-
-Must the message where this is a reply to be included in the message?
-If C<NO> then not. With C<INLINE> a reply body is composed. C<ATTACH>
-will create a multi-part body, where the original message is added
-after the specified body. It is only possible to inline textual
-messages, therefore binary or multipart messages will always be
-enclosed as attachment.
-
-=back
-
-. max_signature INTEGER
-
-=over 4
-
-Passed to C<stripSignature> on the body as parameter C<max_lines>. Only
-effective for single-part messages.
-
-=back
-
-. message_type CLASS
-
-=over 4
-
-Create a message with the requested type. By default, it will be a
-Mail::Message. This is correct, because it will be coerced into
-the correct folder message type when it is added to that folder.
-
-=back
-
-. postlude BODY|LINES
-
-=over 4
-
-The line(s) which to be added after the quoted reply lines. Create a
-body for it first. This should not include the signature, which has its
-own option. The signature will be added after the postlude when the
-reply is INLINEd.
-
-=back
-
-. prelude BODY|LINES
-
-=over 4
-
-The line(s) which will be added before the quoted reply lines. If nothing
-is specified, the result of the L<replyPrelude()|Mail::Message::Construct::Reply/"Constructing a message"> method
-is taken. When C<undef> is specified, no prelude will be added.
-
-=back
-
-. quote CODE|STRING
-
-=over 4
-
-Mangle the lines of an C<INLINE>d reply with CODE, or by prepending a
-STRING to each line. The routine specified by CODE is called when the
-line is in C<$_>.
-
-By default, C<'E<gt> '> is added before each line. Specify C<undef> to
-disable quoting. This option is processed after the body has been decoded.
-
-=back
-
-. signature BODY|MESSAGE
-
-=over 4
-
-The signature to be added in case of a multi-part reply. The mime-type
-of the signature body should indicate this is a used as such. However,
-in INLINE mode, the body will be taken, a line containing C<'-- '> added
-before it, and added behind the epilogue.
-
-=back
-
-. strip_signature REGEXP|STRING|CODE
-
-=over 4
-
-Remove the signature of the sender. The value of this parameter is
-passed to L<Mail::Message::Body::stripSignature(pattern)|Mail::Message::Body::Construct/"Constructing a body"> unless the
-source text is not included. The signature is stripped from the message
-before quoting.
-
-When a multipart body is encountered, and the message is included to
-ATTACH, the parts which look like signatures will be removed. If only
-one message remains, it will be the added as single attachment, otherwise
-a nested multipart will be the result. The value of this option does not
-matter, as long as it is present. See L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>.
-
-=back
-
-I<Example:>
-
- my $reply = $msg->reply
- ( prelude => "No spam, please!\n\n"
- , postlude => "\nGreetings\n"
- , strip_signature => 1
- , signature => $my_pgp_key
- , group_reply => 1
- );
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-Produces a list of lines (usually only one), which will preceded the
-quoted body of the message. STRING must comply to the RFC822 email
-address specification, and is usually the content of a C<To> or C<From>
-header line. If a FIELD is specified, the field's body must be
-compliant. Without argument -or when the argument is C<undef>- a
-slightly different line is produced.
-
-An characteristic example of the output is
-
- On Thu Oct 13 04:54:34 1995, him at example.com wrote:
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-Create a subject for a message which is a reply for this one. This routine
-tries to count the level of reply in subject field, and transform it into
-a standard form. Please contribute improvements.
-
-I<Example:>
-
- subject --> Re: subject
- Re: subject --> Re[2]: subject
- Re[X]: subject --> Re[X+1]: subject
- subject (Re) --> Re[2]: subject
- subject (Forw) --> Re[2]: subject
- <blank> --> Re: your mail
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Reply.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Reply.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Text.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,76 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use IO::Lines;
-
-
-sub string()
-{ my $self = shift;
- $self->head->string . $self->body->string;
-}
-
-#------------------------------------------
-
-
-sub lines()
-{ my $self = shift;
- my @lines;
- my $file = IO::Lines->new(\@lines);
- $self->print($file);
- wantarray ? @lines : \@lines;
-}
-
-#------------------------------------------
-
-
-sub file()
-{ my $self = shift;
- my @lines;
- my $file = IO::Lines->new(\@lines);
- $self->print($file);
- $file->seek(0,0);
- $file;
-}
-
-#------------------------------------------
-
-
-sub printStructure(;$$)
-{ my $self = shift;
-
- my $indent
- = @_==2 ? pop
- : defined $_[0] && !ref $_[0] ? shift
- : '';
-
- my $fh = @_ ? shift : select;
-
- my $buffer; # only filled if filehandle==undef
- open $fh, '>', \$buffer unless defined $fh;
-
- my $subject = $self->get('Subject') || '';
- $subject = ": $subject" if length $subject;
-
- my $type = $self->get('Content-Type') || '';
- my $size = $self->size;
- my $deleted = $self->label('deleted') ? ', deleted' : '';
-
- my $text = "$indent$type$subject ($size bytes$deleted)\n";
- ref $fh eq 'GLOB' ? (print $fh $text) : $fh->print($text);
-
- my $body = $self->body;
- my @parts
- = $body->isMultipart ? $body->parts
- : $body->isNested ? ($body->nested)
- : ();
-
- $_->printStructure($fh, $indent.' ') foreach @parts;
- $buffer;
-}
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Text.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Text.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,119 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct::Text - capture a Mail::Message as text
-
-
-
-=head1 SYNOPSIS
-
- my $text = $msg->string;
- my $text = "$msg"; # via overload
-
- my @text = $msg->lines;
- my @text = @$lines; # via overload
-
- my $fh = $msg->file;
- my $line = <$fh>;
-
- $msg->printStructure;
-
-
-=head1 DESCRIPTION
-
-Complex functionality on L<Mail::Message|Mail::Message> objects is implemented in
-different files which are autoloaded. This file implements the
-functionality related to creating message replies.
-
-
-
-=head1 METHODS
-
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-Returns the message as file-handle.
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-Returns the whole message as set of lines. In LIST context, copies of the
-lines are returned. In SCALAR context, a reference to an array of lines
-is returned.
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-Print the structure of a message to the specified FILEHANDLE or the
-selected filehandle. When explicitly C<undef> is specified as handle,
-then the output will be returned as string.
-
-The message's subject and the types of all composing parts are
-displayed.
-
-INDENT specifies the initial indentation string: it is added in front
-of each line. The INDENT must contain at least one white-space.
-
-I<Example:>
-
- my $msg = ...;
- $msg->printStructure(\*OUTPUT);
-
- $msg->printStructure;
-
- my $struct = $msg->printStructure(undef);
-
- # Possible output for one message:
- multipart/mixed: forwarded message from Pietje Puk (1550 bytes)
- text/plain (164 bytes)
- message/rfc822 (1043 bytes)
- multipart/alternative: A multipart alternative (942 bytes)
- text/plain (148 bytes, deleted)
- text/html (358 bytes)
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-Returns the whole message as string.
-
-=back
-
-=head2 Flags
-
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct/Text.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct/Text.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,64 +0,0 @@
-
-use strict;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Mail::Message::Head::Complete;
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::Multipart;
-
-use Mail::Address;
-use Carp;
-use Scalar::Util 'blessed';
-use IO::Lines;
-
-
-our %locations =
-(
- bounce => 'Bounce'
-
-, build => 'Build'
-, buildFromBody => 'Build'
-
-, forward => 'Forward'
-, forwardNo => 'Forward'
-, forwardInline => 'Forward'
-, forwardAttach => 'Forward'
-, forwardEncapsulate => 'Forward'
-, forwardSubject => 'Forward'
-, forwardPrelude => 'Forward'
-, forwardPostlude => 'Forward'
-
-, read => 'Read'
-
-, rebuild => 'Rebuild'
-
-, reply => 'Reply'
-, replySubject => 'Reply'
-, replyPrelude => 'Reply'
-
-, string => 'Text'
-, lines => 'Text'
-, file => 'Text'
-, printStructure => 'Text'
-);
-
-sub AUTOLOAD(@)
-{ my $self = shift;
- our $AUTOLOAD;
- (my $call = $AUTOLOAD) =~ s/.*\:\://g;
-
- if(my $mod = $locations{$call})
- { eval "require Mail::Message::Construct::$mod";
- die $@ if $@;
- return $self->$call(@_);
- }
-
- our @ISA; # produce error via Mail::Reporter
- $call = "${ISA[0]}::$call";
- $self->$call(@_);
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Construct.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,57 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Construct - extends the functionality of a Mail::Message
-
-
-
-=head1 SYNOPSIS
-
- # See Mail::Message
-
-
-=head1 DESCRIPTION
-
-Complex functionality on L<Mail::Message|Mail::Message> objects is implemented in
-different files which are autoloaded. This file implements the
-functionality related to creating message replies.
-
-
-
-=head1 METHODS
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-When an unknown method is called on this message, this may mean that
-not all code is compiled. For performance reasons, most of the
-complex activities on messages are dynamically loaded from other
-packages. An error will be produced when loading does not help resolving
-the requested method.
-
-=back
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Construct.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Construct.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/Html.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,142 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Convert::Html;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Convert';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- my $produce = $args->{produce} || 'HTML';
-
- $self->{MMCH_tail}
- = $produce eq 'HTML' ? '>'
- : $produce eq 'XHTML' ? ' />'
- : carp "Produce XHTML or HTML, not $produce.";
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub textToHtml(@)
-{ my $self = shift;
-
- my @lines = @_; # copy is required
- foreach (@lines)
- { s/\&/&/gs; s/\</</gs;
- s/\>/>/gs; s/\"/"/gs;
- }
- wantarray ? @lines : join('', @lines);
-}
-
-#------------------------------------------
-
-
-sub fieldToHtml($;$)
-{ my ($self, $field, $subject) = @_;
- '<strong>'. $self->textToHtml($field->wellformedName)
- .': </strong>' . $self->fieldContentsToHtml($field,$subject);
-}
-
-#------------------------------------------
-
-
-sub headToHtmlTable($;$)
-{ my ($self, $head) = (shift, shift);
- my $tp = @_ ? ' '.shift : '';
-
- my $subject;
- if($self->{MMHC_mailto_subject})
- { my $s = $head->get('subject');
-
- use Mail::Message::Construct;
- $subject = Mail::Message::Construct->replySubject($s)
- if defined $subject;
- }
-
- my @lines = "<table $tp>\n";
- foreach my $f ($self->selectedFields($head))
- { my $name_html = $self->textToHtml($f->wellformedName);
- my $cont_html = $self->fieldContentsToHtml($f, $subject);
- push @lines, qq(<tr><th valign="top" align="left">$name_html:</th>\n)
- , qq( <td valign="top">$cont_html</td></tr>\n);
- }
-
- push @lines, "</table>\n";
- wantarray ? @lines : join('', at lines);
-}
-
-#------------------------------------------
-
-
-sub headToHtmlHead($@)
-{ my ($self, $head) = (shift,shift);
- my %meta;
- while(@_) {my $k = shift; $meta{lc $k} = shift }
-
- my $title = delete $meta{title} || $head->get('subject') || '<no subject>';
-
- my @lines =
- ( "<head>\n"
- , "<title>".$self->textToHtml($title) . "</title>\n"
- );
-
- my $author = delete $meta{author};
- unless(defined $author)
- { my $from = $head->get('from');
- my @addr = defined $from ? $from->addresses : ();
- $author = @addr ? $addr[0]->format : undef;
- }
-
- push @lines, '<meta name="Author" content="'
- . $self->textToHtml($author) . "\"$self->{MMCH_tail}\n"
- if defined $author;
-
- foreach my $f (map {lc} keys %meta)
- { next if $meta{$f} eq ''; # empty is skipped.
- push @lines, '<meta name="'. ucfirst lc $self->textToHtml($f)
- . '" content="'. $self->textToHtml($meta{$f})
- ."\"$self->{MMCH_tail}\n";
- }
-
- foreach my $f ($self->selectedFields($head))
- { next if exists $meta{$f->name};
- push @lines, '<meta name="' . $self->textToHtml($f->wellformedName)
- . '" content="' . $self->textToHtml($f->content)
- . "\"$self->{MMCH_tail}\n";
- }
-
- push @lines, "</head>\n";
- wantarray ? @lines : join('', at lines);
-}
-
-#------------------------------------------
-
-
-my $atom = qr/[^()<>@,;:\\".\[\]\s[:cntrl:]]+/;
-my $email_address = qr/(($atom(?:\.$atom)*)\@($atom(?:\.$atom)+))/o;
-
-sub fieldContentsToHtml($;$)
-{ my ($self, $field) = (shift,shift);
- my $subject = defined $_[0] ? '?subject='.$self->textToHtml(shift) : '';
-
- my ($body, $comment) = ($self->textToHtml($field->body), $field->comment);
-
- $body =~ s#$email_address#<a href="mailto:$1$subject">$1</a>#gx
- if $field->name =~ m/^(resent-)?(to|from|cc|bcc|reply\-to)$/;
-
- $body . ($comment ? '; '.$self->textToHtml($comment) : '');
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/Html.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/Html.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,318 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Convert::Html - Format messages in HTML
-
-
-=head1 INHERITANCE
-
- Mail::Message::Convert::Html
- is a Mail::Message::Convert
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Message::Convert::Html;
- my $Html = Mail::Message::Convert::Html->new;
-
- print $html->fieldToHtml($head);
- print $html->headToHtmlHead($head);
- print $html->headToHtmlTable($head);
- print $html->textToHtml($text);
-
-
-=head1 DESCRIPTION
-
-The package contains various translators which handle HTML or XHTML
-without the help of external modules. There are more HTML related modules,
-which do require extra packages to be installed.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Convert::Html-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- fields L<Mail::Message::Convert> <see description>
- head_mailto <true>
- log L<Mail::Reporter> C<'WARNINGS'>
- produce C<HTML>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. fields NAMES|ARRAY-OF-NAMES|REGEXS
-
-. head_mailto BOOLEAN
-
-=over 4
-
-Whether to replace e-mail addresses in some header lines with links.
-
-=back
-
-. log LEVEL
-
-. produce 'HTML'|'XHTML'
-
-=over 4
-
-Produce HTML or XHTML output. The output is slightly different, even
-html browsers will usually accept the XHTML data.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 Converting
-
-
-$obj-E<gt>B<fieldContentsToHtml>(FIELD, [SUBJECT])
-
-=over 4
-
-Format one field from the header to HTML. When the header line usually
-contains e-mail addresses, the line is scanned and valid addresses
-are linked with an C<mailto:> anchor. The SUBJECT can be specified to
-be included in that link.
-
-=back
-
-$obj-E<gt>B<fieldToHtml>(FIELD, [SUBJECT])
-
-=over 4
-
-Reformat one header line field to HTML. The FIELD's name
-is printed in bold, followed by the formatted field content,
-which is produced by L<fieldContentsToHtml()|Mail::Message::Convert::Html/"Converting">.
-
-=back
-
-$obj-E<gt>B<headToHtmlHead>(HEAD, META)
-
-=over 4
-
-Translate the selected header lines (fields) to an html page header. Each
-selected field will get its own meta line with the same name as the line.
-Furthermore, the C<Subject> field will become the C<title>,
-and C<From> is used for the C<Author>.
-
-Besides, you can specify your own meta fields, which will overrule header
-fields. Empty fields will not be included. When a C<title> is specified,
-this will become the html title, otherwise the C<Subject> field is
-taken. In list context, the lines are separately, where in scalar context
-the whole text is returned as one.
-
-If you need to add lines to the head (for instance, http-equiv lines), then
-splice them before the last element in the returned list.
-
-I<Example:>
-
- my @head = $html->headToHtmlHead
- ( $head
- , description => 'This is a message'
- , generator => 'Mail::Box'
- );
- splice @head, -1, 0, '<meta http-equiv=...>';
- print @head;
-
-=back
-
-$obj-E<gt>B<headToHtmlTable>(HEAD, [TABLE-PARAMS])
-
-=over 4
-
-Produce a display of the L<selectedFields()|Mail::Message::Convert/"Converting"> of the header in a
-table shape. The optional TABLE-PARAMS are added as parameters to the
-produced TABLE tag. In list context, the separate lines are returned.
-In scalar context, everything is returned as one.
-
-I<Example:>
-
- print $html->headToHtmlTable($head, 'width="50%"');
-
-=back
-
-$obj-E<gt>B<selectedFields>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Convert/"Converting">
-
-=back
-
-$obj-E<gt>B<textToHtml>(LINES)
-
-=over 4
-
-Translate one or more LINES from text into HTML. Each line is taken one
-after the other, and only simple things are translated. C<textToHtml>
-is able to convert large plain texts in a descent fashion. In scalar
-context, the resulting lines are returned as one.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Convert::Html-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Convert::Html-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Convert::Html-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/Html.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/Html.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatPS.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,45 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Convert::HtmlFormatPS;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Convert';
-
-use Mail::Message::Body::String;
-
-use HTML::TreeBuilder;
-use HTML::FormatText;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- my @formopts = map { ($_ => delete $args->{$_} ) }
- grep m/^[A-Z]/, keys %$args;
-
- $self->SUPER::init($args);
-
- $self->{MMCH_formatter} = HTML::FormatPS->new(@formopts);
- $self;
-}
-
-#------------------------------------------
-
-
-sub format($)
-{ my ($self, $body) = @_;
-
- my $dec = $body->encode(transfer_encoding => 'none');
- my $tree = HTML::TreeBuilder->new_from_file($dec->file);
-
- (ref $body)->new
- ( based_on => $body
- , mime_type => 'application/postscript'
- , data => [ $self->{MMCH_formatter}->format($tree) ]
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatPS.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatPS.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,233 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Convert::HtmlFormatPS - Convert HTML into PostScript
-
-
-=head1 INHERITANCE
-
- Mail::Message::Convert::HtmlFormatPS
- is a Mail::Message::Convert
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Message::Convert::HtmlFormatPS;
- my $af = Mail::Message::Convert::HtmlFormatPS->new;
-
- my $postscript = $af->format($body);
-
-
-=head1 DESCRIPTION
-
-Translate an HTML/XHTML message body into a postscript body
-using HTML::FormatPS.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Convert::HtmlFormatPS-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-OPTIONS which start with capitals are blindly passed to HTML::FormatPS.
-As of this writing, that package
-defines BottomMargin, FontFamily, FontScale, HorizontalMargin, Leading,
-LeftMargin, PageNo, PaperHeight, PaperSize, PaperWidth, RightMargin,
-TopMargin, and VerticalMargin.
-
- Option Defined in Default
- fields L<Mail::Message::Convert> <not used>
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. fields NAMES|ARRAY-OF-NAMES|REGEXS
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 Converting
-
-
-$obj-E<gt>B<format>(BODY)
-
-=over 4
-
-Pass an html/xhtml encoded body, and a plain text body is returned.
-Characters are translated into Latin1.
-
-=back
-
-$obj-E<gt>B<selectedFields>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Convert/"Converting">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Convert::HtmlFormatPS-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Convert::HtmlFormatPS-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Convert::HtmlFormatPS-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatPS.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatPS.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatText.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,47 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Convert::HtmlFormatText;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Convert';
-
-use Mail::Message::Body::String;
-
-use HTML::TreeBuilder;
-use HTML::FormatText;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MMCH_formatter} = HTML::FormatText->new
- ( leftmargin => (defined $args->{leftmargin} ? $args->{leftmargin} : 3)
- , rightmargin => (defined $args->{rightmargin} ? $args->{rightmargin} : 72)
- );
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub format($)
-{ my ($self, $body) = @_;
-
- my $dec = $body->encode(transfer_encoding => 'none');
- my $tree = HTML::TreeBuilder->new_from_file($dec->file);
-
- (ref $body)->new
- ( based_on => $body
- , mime_type => 'text/plain'
- , charset => 'iso-8859-1'
- , data => [ $self->{MMCH_formatter}->format($tree) ]
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatText.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatText.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,248 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Convert::HtmlFormatText - Convert HTML into Text
-
-
-=head1 INHERITANCE
-
- Mail::Message::Convert::HtmlFormatText
- is a Mail::Message::Convert
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Message::Convert::HtmlFormatText;
- my $af = Mail::Message::Convert::HtmlFormatText->new;
-
- my $plain_body = $af->format($body);
-
-
-=head1 DESCRIPTION
-
-Convert HTML/XHTML message body objects into plain text bodies using
-HTML::FormatText. This package requires HTML::TreeBuilder and
-HTML::FormatText which are not installed by default together with
-Mail::Box. See also L<Mail::Message::rebuild()|Mail::Message::Construct::Rebuild/"Constructing a message"> with rule
-C<text_alternative_for_html>.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Convert::HtmlFormatText-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- fields L<Mail::Message::Convert> <see description>
- leftmargin C<3>
- log L<Mail::Reporter> C<'WARNINGS'>
- rightmargin C<72>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. fields NAMES|ARRAY-OF-NAMES|REGEXS
-
-. leftmargin INTEGER
-
-=over 4
-
-The column of the left margin, passed to the formatter.
-
-=back
-
-. log LEVEL
-
-. rightmargin INTEGER
-
-=over 4
-
-The column of the right margin, passed to the formatter.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 Converting
-
-
-$obj-E<gt>B<format>(BODY)
-
-=over 4
-
-Pass an html/xhtml encoded body, and a plain text body is returned.
-Characters are translated into Latin1.
-
-=back
-
-$obj-E<gt>B<selectedFields>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Convert/"Converting">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Convert::HtmlFormatText-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Convert::HtmlFormatText-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Convert::HtmlFormatText-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/HtmlFormatText.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/HtmlFormatText.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MailInternet.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,74 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::Convert::MailInternet;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Convert';
-
-use Mail::Internet;
-use Mail::Header;
-use Mail::Message;
-use Mail::Message::Head::Complete;
-use Mail::Message::Body::Lines;
-
-use Carp;
-
-
-sub export($@)
-{ my ($thing, $message) = (shift, shift);
-
- croak "Export message must be a Mail::Message, but is a ".ref($message)."."
- unless $message->isa('Mail::Message');
-
- my $mi_head = Mail::Header->new;
-
- my $head = $message->head;
- foreach my $field ($head->orderedFields)
- { $mi_head->add($field->Name, scalar $field->foldedBody);
- }
-
- Mail::Internet->new
- ( Header => $mi_head
- , Body => [ $message->body->lines ]
- , @_
- );
-}
-
-#------------------------------------------
-
-
-my @pref_order = qw/From To Cc Subject Date In-Reply-To References
- Content-Type Lines Content-Length/;
-
-sub from($@)
-{ my ($thing, $mi) = (shift, shift);
-
- croak "Converting from Mail::Internet but got a ".ref($mi).'.'
- unless $mi->isa('Mail::Internet');
-
- my $head = Mail::Message::Head::Complete->new;
- my $body = Mail::Message::Body::Lines->new(data => [ @{$mi->body} ]);
-
- my $mi_head = $mi->head;
-
- # The tags of Mail::Header are unordered, but we prefer some ordering.
- my %tags = map {lc $_ => ucfirst $_} $mi_head->tags;
- my @tags;
- foreach (@pref_order)
- { push @tags, $_ if delete $tags{lc $_};
- }
- push @tags, sort values %tags;
-
- foreach my $name (@tags)
- { $head->add($name, $_)
- foreach $mi_head->get($name);
- }
-
- Mail::Message->new(head => $head, body => $body, @_);
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MailInternet.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MailInternet.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,252 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Convert::MailInternet - translate Mail::Message to Mail::Internet vv
-
-
-=head1 INHERITANCE
-
- Mail::Message::Convert::MailInternet
- is a Mail::Message::Convert
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Message::Convert::MailInternet;
- my $convert = Mail::Message::Convert::MailInternet->new;
-
- my Mail::Message $msg = Mail::Message->new;
- my Mail::Internet $intern = $convert->export($msg);
-
- my Mail::Internet $intern = Mail::Internet->new;
- my Mail::Message $msg = $convert->from($intern);
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open(folder => 'Outbox');
- $folder->addMessage($intern);
-
-
-=head1 DESCRIPTION
-
-The Mail::Internet class of message is very popular for all
-kinds of message applications written in Perl. However, the
-format was developed when e-mail messages where still small and
-attachments where rare; Mail::Message is much more flexible in
-this respect.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Convert::MailInternet-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Convert/"METHODS">
-
-=back
-
-=head2 Converting
-
-
-$obj-E<gt>B<export>(MESSAGE, OPTIONS)
-
-=over 4
-
-Returns a new message object based on the information from
-a L<Mail::Message|Mail::Message> object. The MESSAGE specified is an
-instance of a Mail::Message.
-
-I<Example:>
-
- my $convert = Mail::Message::Convert::MailInternet->new;
- my Mail::Message $msg = Mail::Message->new;
- my Mail::Internet $copy = $convert->export($msg);
-
-=back
-
-$obj-E<gt>B<from>(OBJECT, OPTIONS)
-
-=over 4
-
-Returns a new Mail::Message object based on the information from
-an message-type which is foreign to the Mail::Box set of modules.
-
-I<Example:>
-
- my $convert = Mail::Message::Convert::MailInternet->new;
- my Mail::Internet $msg = Mail::Internet->new;
- my Mail::Message $copy = $convert->from($msg);
-
-=back
-
-$obj-E<gt>B<selectedFields>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Convert/"Converting">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Convert::MailInternet-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Convert::MailInternet-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Convert::MailInternet-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MailInternet.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MailInternet.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MimeEntity.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,44 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::Convert::MimeEntity;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Convert';
-
-use MIME::Entity;
-use MIME::Parser;
-use Mail::Message;
-
-
-sub export($$;$)
-{ my ($self, $message, $parser) = @_;
- return () unless defined $message;
-
- $self->log(ERROR =>
- "Export message must be a Mail::Message, but is a ".ref($message)."."),
- return
- unless $message->isa('Mail::Message');
-
- $parser ||= MIME::Parser->new;
- $parser->parse($message->file);
-}
-
-#------------------------------------------
-
-
-sub from($)
-{ my ($self, $mime_ent) = @_;
- return () unless defined $mime_ent;
-
- $self->log(ERROR =>
- 'Converting from MIME::Entity but got a '.ref($mime_ent).'.'), return
- unless $mime_ent->isa('MIME::Entity');
-
- Mail::Message->read($mime_ent->as_string);
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MimeEntity.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MimeEntity.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,263 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Convert::MimeEntity - translate Mail::Message to MIME::Entity vv
-
-
-=head1 INHERITANCE
-
- Mail::Message::Convert::MimeEntity
- is a Mail::Message::Convert
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Message::Convert::MimeEntity;
- my $convert = Mail::Message::Convert::MimeEntity->new;
-
- my Mail::Message $msg = Mail::Message->new;
- my MIME::Entity $entity = $convert->export($msg);
-
- my MIME::Entity $entity = MIME::Entity->new;
- my Mail::Message $msg = $convert->from($entity);
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open(folder => 'Outbox');
- $folder->addMessage($entity);
-
-
-=head1 DESCRIPTION
-
-The MIME::Entity extends Mail::Internet message with multiparts
-and more methods. The L<Mail::Message|Mail::Message> objects are more flexible
-in how the message parts are stored, and uses separate header and body
-objects.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Convert::MimeEntity-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Convert/"METHODS">
-
-=back
-
-=head2 Converting
-
-
-$obj-E<gt>B<export>(MESSAGE, [PARSER])
-
-=over 4
-
-Returns a new L<MIME::Entity> message object based on the
-information from the MESSAGE, which is a L<Mail::Message|Mail::Message> object.
-
-You may want to supply your own PARSER, which is a MIME::Parser
-object, to change the parser flags. Without a PARSER object, one
-is created for you, with all the default settings.
-
-If C<undef> is passed, in place of a MESSAGE, then an empty list is
-returned. When the parsing failes, then L<MIME::Parser> throws an
-exception.
-
-I<Example:>
-
- my $convert = Mail::Message::Convert::MimeEntity->new;
- my Mail::Message $msg = Mail::Message->new;
- my manual MIME::Entity $copy = $convert->export($msg);
-
-=back
-
-$obj-E<gt>B<from>(MIME-OBJECT)
-
-=over 4
-
-Returns a new L<Mail::Message|Mail::Message> object based on the information from
-the specified L<MIME::Entity>. If the conversion fails, the C<undef>
-is returned. If C<undef> is passed in place of an OBJECT, then an
-empty list is returned.
-
-I<Example:>
-
- my $convert = Mail::Message::Convert::MimeEntity->new;
- my MIME::Entity $msg = MIME::Entity->new;
- my Mail::Message $copy = $convert->from($msg);
-
-=back
-
-$obj-E<gt>B<selectedFields>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Convert/"Converting">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Convert::MimeEntity-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Convert::MimeEntity-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Convert::MimeEntity-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Converting from MIME::Entity but got a $type, return
-
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/MimeEntity.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/MimeEntity.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/TextAutoformat.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,36 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Convert::TextAutoformat;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Convert';
-
-use Mail::Message::Body::String;
-use Text::Autoformat;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MMCA_options} = $args->{autoformat} || { all => 1 };
- $self;
-}
-
-#------------------------------------------
-
-
-sub autoformatBody($)
-{ my ($self, $body) = @_;
-
- ref($body)->new
- ( based_on => $body
- , data => autoformat($body->string, $self->{MMCA_options})
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/TextAutoformat.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/TextAutoformat.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,238 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Convert::TextAutoformat - Reformat plain text messages
-
-
-=head1 INHERITANCE
-
- Mail::Message::Convert::TextAutoformat
- is a Mail::Message::Convert
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Message::Convert::TextAutoformat;
- my $af = Mail::Message::Convert::TextAutoformat->new;
-
- my $beautified_body = $af->autoformatBody($body);
-
-
-=head1 DESCRIPTION
-
-Play trics with plain text, for instance bodies with type C<text/plain>
-using Damian Conway's Text::Autoformat.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Convert::TextAutoformat-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- fields L<Mail::Message::Convert> <see description>
- log L<Mail::Reporter> C<'WARNINGS'>
- options C<{ (all, 1) }>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. fields NAMES|ARRAY-OF-NAMES|REGEXS
-
-. log LEVEL
-
-. options HASH-REF
-
-=over 4
-
-Options to pass to Text::Autoformat, when its C<autoformat> method
-is called.
-
-=back
-
-. trace LEVEL
-
-=back
-
-=head2 Converting
-
-
-$obj-E<gt>B<autoformatBody>(BODY)
-
-=over 4
-
-Formats a single message body (a L<Mail::Message::Body|Mail::Message::Body> object)
-into a new body object using Text::Autoformat. If the
-Text::Autoformat is not installed, C<undef> is returned.
-
-=back
-
-$obj-E<gt>B<selectedFields>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Convert/"Converting">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Convert::TextAutoformat-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Convert::TextAutoformat-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Convert::TextAutoformat-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert/TextAutoformat.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert/TextAutoformat.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,32 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::Convert;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- $self->{MMC_fields} = $args->{fields} ||
- qr#^(Resent\-)?(To|From|Cc|Bcc|Subject|Date)\b#i;
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub selectedFields($)
-{ my ($self, $head) = @_;
- $head->grepNames($self->{MMC_fields});
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Convert.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,277 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Convert - conversions between message types
-
-
-=head1 INHERITANCE
-
- Mail::Message::Convert
- is a Mail::Reporter
-
- Mail::Message::Convert is extended by
- Mail::Message::Convert::Html
- Mail::Message::Convert::HtmlFormatPS
- Mail::Message::Convert::HtmlFormatText
- Mail::Message::Convert::MailInternet
- Mail::Message::Convert::MimeEntity
- Mail::Message::Convert::TextAutoformat
-
-
-=head1 SYNOPSIS
-
-Available methods are very converter-specific.
-
-
-=head1 DESCRIPTION
-
-This class is the base for various message (and message parts) converters.
-When the conversion does not change the contents of the body, most of
-the converters will return the source object. In any case, an
-L<Mail::Message::Body|Mail::Message::Body> is returned with the conversion applied but as
-much of the other meta data stored in the source body unchanged.
-
-In most cases, converters are created by Mail::Message when they are
-needed; have a look at the C<encode> and C<decoded> methods on message
-objects.
-
-The following converters are currently available:
-
-=over 4
-
-=item * L<Mail::Message::Convert::Html|Mail::Message::Convert::Html>
-
-Plays tricks with HTML/XMHTML without help of external modules.
-
-=item * L<Mail::Message::Convert::HtmlFormatText|Mail::Message::Convert::HtmlFormatText>
-
-Converts HTML body objects to plain text objects using the
-HTML::FormatText module.
-
-=item * L<Mail::Message::Convert::HtmlFormatPS|Mail::Message::Convert::HtmlFormatPS>
-
-Converts HTML body objects to Postscript objects using the
-HTML::FormatPS module.
-
-=item * L<Mail::Message::Convert::MailInternet|Mail::Message::Convert::MailInternet>
-
-Converts the simple Mail::Internet messages into L<Mail::Message|Mail::Message>
-objects.
-
-=item * L<Mail::Message::Convert::MimeEntity|Mail::Message::Convert::MimeEntity>
-
-Converts the more complicated MIME::Entity messages into
-L<Mail::Message|Mail::Message> objects.
-
-=item * L<Mail::Message::Convert::TextAutoformat|Mail::Message::Convert::TextAutoformat>
-
-Converts a text message into text using Text::Autoformat.
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Convert-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- fields <see description>
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. fields NAMES|ARRAY-OF-NAMES|REGEXS
-
-=over 4
-
-Select the fields of a header which are to be handled. Other
-fields will not be used. The value of this option is passed to
-L<Mail::Message::Head::Complete::grepNames()|Mail::Message::Head::Complete/"Access to the header"> whenever converters feel
-a need for header line selection.
-By default, the C<To>, C<From>, C<Cc>, C<Bcc>, C<Date>, C<Subject>, and their
-C<Resent-> counterparts will be selected. Specify an empty list to get all
-fields.
-
-=back
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 Converting
-
-
-$obj-E<gt>B<selectedFields>(HEAD)
-
-=over 4
-
-Returns a list of fields to be included in the format. The list is
-an ordered selection of the fields in the actual header, and filtered
-through the information as specified with L<new(fields)|Mail::Message::Convert/"METHODS">.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Convert-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Convert-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Convert-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Convert.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Convert.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Dummy.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,45 +0,0 @@
-
-use strict;
-
-package Mail::Message::Dummy;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- @$args{ qw/modified trusted/ } = (0, 1);
- $self->SUPER::init($args);
-
- $self->log(ERROR => "Message-Id is required for a dummy.")
- unless exists $args->{messageId};
-
- $self;
-}
-
-#-------------------------------------------
-
-sub isDummy() { 1 }
-
-#-------------------------------------------
-
-
-sub head()
-{ shift->log(ERROR => "You cannot take the head of a dummy message");
- ();
-}
-
-#-------------------------------------------
-
-sub body()
-{ shift->log(ERROR => "You cannot take the body of a dummy message");
- ();
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Dummy.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Dummy.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,898 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Dummy - a placeholder for a missing messages
-
-
-=head1 INHERITANCE
-
- Mail::Message::Dummy
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
-
-
-=head1 DESCRIPTION
-
-Dummy messages are used by modules which maintain ordered lists
-of messages, usually based on message-id. A good example is
-L<Mail::Box::Thread::Manager|Mail::Box::Thread::Manager>, which detects related messages by
-scanning the known message headers for references to other messages.
-As long as the referenced messages are not found inside the mailbox,
-their place is occupied by a dummy.
-
-Be careful when using modules which may create dummies. Before trying to
-access the header or body use L<isDummy()|Mail::Message/"The message"> to check if the message is a
-dummy message.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Message::Dummy-E<gt>B<new>(MESSAGE-ID, OPTIONS)
-
-=over 4
-
-Create a new dummy message to occupy the space for
-a real message with the specified MESSAGE-ID.
-
- Option Defined in Default
- body L<Mail::Message> <not used>
- body_type L<Mail::Message> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> <not used>
- head L<Mail::Message> <not used>
- head_type L<Mail::Message> <not used>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> <required>
- modified L<Mail::Message> <always false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <always true>
-
-. body OBJECT
-
-. body_type CLASS
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-I<Example:>
-
- my $message = Mail::Message::Dummy->new($msgid);
- if($message->isDummy) {...}
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Message::Dummy-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Message::Dummy-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Message::Dummy-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Message::Dummy-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>(...)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Message::Dummy-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Dummy-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Dummy-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Dummy-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Message::Dummy-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> Message-Id is required for a dummy.
-
-A dummy message occupies the place for a real message. When a dummy is created,
-the id of the message which place it is holding must be known.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> You cannot take the head/body of a dummy message
-
-Dummy messages are place-holders in message threads: the thread detected
-the existence of the message, because it found the message-id in a
-Reply-To or References field, however it did not find the header and
-body of the message yet. Use L<isDummy()|Mail::Message/"The message"> to check whether the thread
-node returned a dummy or not.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Dummy.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Dummy.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/AddrGroup.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,72 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::AddrGroup;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'User::Identity::Collection::Emails';
-
-
-use overload '""' => 'string';
-
-#------------------------------------------
-
-
-sub string()
-{ my $self = shift;
- my $name = $self->name;
- my @addr = sort map {$_->string} $self->addresses;
-
- local $" = ', ';
-
- length $name ? "$name: @addr;"
- : @addr ? "@addr"
- : '';
-}
-
-#------------------------------------------
-
-
-sub coerce($@)
-{ my ($class, $addr, %args) = @_;
-
- return () unless defined $addr;
-
- if(ref $addr)
- { return $addr if $addr->isa($class);
-
- return bless $addr, $class
- if $addr->isa('User::Identity::Collection::Emails');
- }
-
- $class->log(ERROR => "Cannot coerce a ".(ref($addr)|'string').
- " into a $class");
- ();
-}
-
-
-#------------------------------------------
-
-
-sub addAddress(@)
-{ my $self = shift;
-
- my $addr
- = @_ > 1 ? Mail::Message::Field::Address->new(@_)
- : !$_[0] ? return ()
- : Mail::Message::Field::Address->coerce(shift);
-
- $self->addRole($addr);
- $addr;
-}
-
-#------------------------------------------
-
-
-# roles are stored in a hash, so produce
-sub addresses() { shift->roles }
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/AddrGroup.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/AddrGroup.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,344 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::AddrGroup - A group of Mail::Message::Field::Address objects
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::AddrGroup
- is a User::Identity::Collection::Emails
- is a User::Identity::Collection
- is a User::Identity::Item
-
-
-=head1 SYNOPSIS
-
- my $g = Mail::Message::Field::AddrGroup->new(name => 'name');
-
- my $a = Mail::Message::Field::Address->new(...);
- $g->addAddress($a);
-
- my $f = Mail::Message::Field::Addresses->new;
- $f->addGroup($g);
-
-
-=head1 DESCRIPTION
-
-An address group collects a set of e-mail addresses (in this case they
-are L<Mail::Message::Field::Address|Mail::Message::Field::Address> objects).
-
-
-=head1 OVERLOADED
-
-
-overload: B<@{}>
-
-=over 4
-
-See L<User::Identity::Collection/"OVERLOADED">
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-Returns the L<string()|Mail::Message::Field::AddrGroup/"METHODS"> value.
-
-=back
-
-
-=head1 METHODS
-
-
-$obj-E<gt>B<string>
-
-=over 4
-
-Returns the address group as string. When no name is specified, it will
-only be a comma separated list of addresses. With a name, the groups
-name will be prepended and a semi-colon appended. When no addresses
-where included and there is no name, then C<undef> is returned.
-
-=back
-
-=head2 Constructors
-
-
-$obj-E<gt>B<coerce>(OBJECT)
-
-=over 4
-
-Coerce an OBJECT into a L<Mail::Message::Field::AddrGroup|Mail::Message::Field::AddrGroup>. Currently,
-you can only coerce L<User::Identity::Collection::Emails|User::Identity::Collection::Emails> (which is
-the base class for this one) into this one.
-
-=back
-
-Mail::Message::Field::AddrGroup-E<gt>B<new>([NAME], OPTIONS)
-
-=over 4
-
-See L<User::Identity::Collection::Emails/"Constructors">
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<description>
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<itemType>
-
-=over 4
-
-See L<User::Identity::Collection/"Attributes">
-
-=back
-
-$obj-E<gt>B<name>([NEWNAME])
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<roles>
-
-=over 4
-
-See L<User::Identity::Collection/"Attributes">
-
-=back
-
-=head2 Collections
-
-
-$obj-E<gt>B<add>(COLLECTION, ROLE)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<addCollection>(OBJECT | ([TYPE], OPTIONS))
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<collection>(NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<parent>([PARENT])
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<removeCollection>(OBJECT|NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<type>
-
-Mail::Message::Field::AddrGroup-E<gt>B<type>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<user>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-=head2 Maintaining roles
-
-
-$obj-E<gt>B<addRole>(ROLE| ( [NAME],OPTIONS ) | ARRAY-OF-OPTIONS)
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-$obj-E<gt>B<removeRole>(ROLE|NAME)
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-$obj-E<gt>B<renameRole>(ROLE|OLDNAME, NEWNAME)
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-$obj-E<gt>B<sorted>
-
-=over 4
-
-See L<User::Identity::Collection/"Maintaining roles">
-
-=back
-
-=head2 Searching
-
-
-$obj-E<gt>B<find>(NAME|CODE|undef)
-
-=over 4
-
-See L<User::Identity::Collection/"Searching">
-
-=back
-
-=head2 Addresses
-
-
-$obj-E<gt>B<addAddress>(STRING|ADDRESS|OPTIONS)
-
-=over 4
-
-Add one e-mail address to the list which is maintained in the group. This
-is a wrapper around L<addRole()|User::Identity::Collection/"Maintaining roles"> adding flexibility on how addresses
-are specified. An ADDRESS can be anything which is acceptable for
-L<Mail::Message::Field::Address::coerce()|Mail::Message::Field::Address/"Constructors"> or a list of options which
-will create such an object.
-
-I<Example:> of adding an address to an address group
-
-
- my @data = (full_name => "Myself", address => 'me at tux.org');
- $group->addAddress(@data);
-
- my $addr = Mail::Message::Field::Address->new(@data);
- $group->addAddress(@data);
-
- my $ma = Mail::Address->new(...);
- $group->addAddress($ma);
-
-=back
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-Returns all addresses defined in this group. The addresses will be
-ordered alphabetically to make automated testing possible: roles are
-stored in a hash, so have an unpredictable order by default.
-
-I<Example:> getting all addresses from a group
-
-
- my @addrs = $group->addresses;
- my @addrs = map { $_->address } $self->roles; #same
-
-=back
-
-=head2 Error handling
-
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> $object is not a collection.
-
-The first argument is an object, but not of a class which extends
-L<User::Identity::Collection|User::Identity::Collection>.
-
-I<Error:> Cannot coerce a $type into a Mail::Message::Field::AddrGroup
-
-
-I<Error:> Cannot create a $type to add this to my collection.
-
-Some options are specified to create a $type object, which is native to
-this collection. However, for some reason this failed.
-
-I<Error:> Cannot load collection module for $type ($class).
-
-Either the specified $type does not exist, or that module named $class returns
-compilation errors. If the type as specified in the warning is not
-the name of a package, you specified a nickname which was not defined.
-Maybe you forgot the 'require' the package which defines the nickname.
-
-I<Error:> Cannot rename $name into $newname: already exists
-
-
-I<Error:> Cannot rename $name into $newname: doesn't exist
-
-
-I<Error:> Creation of a collection via $class failed.
-
-The $class did compile, but it was not possible to create an object
-of that class using the options you specified.
-
-I<Error:> Don't know what type of collection you want to add.
-
-If you add a collection, it must either by a collection object or a
-list of options which can be used to create a collection object. In
-the latter case, the type of collection must be specified.
-
-I<Warning:> No collection $name
-
-The collection with $name does not exist and can not be created.
-
-I<Error:> Wrong type of role for $collection: requires a $expect but got a $type
-
-Each $collection groups sets of roles of one specific type ($expect). You
-cannot add objects of a different $type.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/AddrGroup.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/AddrGroup.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Address.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,68 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Address;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Identity';
-
-use Mail::Message::Field::Addresses;
-use Mail::Message::Field::Full;
-my $format = 'Mail::Message::Field::Full';
-
-
-use overload '""' => 'string'
- , bool => sub {1}
- ;
-
-#------------------------------------------
-
-
-sub coerce($@)
-{ my ($class, $addr, %args) = @_;
- return () unless defined $addr;
-
- return $class->parse($addr) unless ref $addr;
-
- return $addr if $addr->isa($class);
-
- my $from = $class->from($addr);
-
- Mail::Reporter->log(ERROR => "Cannot coerce a ".ref($addr)." into a $class"),
- return () unless defined $from;
-
- bless $from, $class;
-}
-
-#------------------------------------------
-
-
-sub parse($)
-{ my $self = shift;
- my $parsed = Mail::Message::Field::Addresses->new('To' => shift);
- defined $parsed ? ($parsed->addresses)[0] : ();
-}
-
-#------------------------------------------
-
-
-sub string()
-{ my $self = shift;
- my @opts = (charset => $self->charset); # language => $self->language
-
- my @parts;
- my $name = $self->phrase;
- push @parts, $format->createPhrase($name, @opts) if defined $name;
-
- my $address = $self->address;
- push @parts, @parts ? '<'.$address.'>' : $address;
-
- my $comment = $self->comment;
- push @parts, $format->createComment($comment, @opts) if defined $comment;
-
- join ' ', @parts;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Address.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Address.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,343 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Address - One e-mail address
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Address
- is a Mail::Identity
- is a User::Identity::Item
-
-
-=head1 SYNOPSIS
-
- my $addr = Mail::Message::Field::Address->new(...);
-
- my $ui = User::Identity->new(...);
- my $addr = Mail::Message::Field::Address->coerce($ui);
-
- my $mi = Mail::Identity->new(...);
- my $addr = Mail::Message::Field::Address->coerce($mi);
-
- print $addr->address;
- print $addr->fullName; # possibly unicode!
- print $addr->domain;
-
-
-=head1 DESCRIPTION
-
-Many header fields can contain e-mail addresses. Each e-mail address
-can be represented by an object of this class. These objects will
-handle interpretation and character set encoding and decoding for you.
-
-
-=head1 OVERLOADED
-
-
-overload: B<boolean>
-
-=over 4
-
-The object used as boolean will always return C<true>
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-When the object is used in string context, it will return the encoded
-representation of the e-mail address, just like L<string()|Mail::Message::Field::Address/"Access to the content"> does.
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<coerce>(STRING|OBJECT, OPTIONS)
-
-=over 4
-
-Try to coerce the OBJECT into a C<Mail::Message::Field::Address>.
-In case of a STRING, it is interpreted as an email address.
-
-The OPTIONS are passed to the object creation, and overrule the values
-found in the OBJECT. The result may be C<undef> or a newly created
-object. If the OBJECT is already of the correct type, it is returned
-unmodified.
-
-The OBJECT may currently be a Mail::Address, a L<Mail::Identity|Mail::Identity>, or
-a L<User::Identity|User::Identity>. In case of the latter, one of the user's addresses
-is chosen at random.
-
-=back
-
-$obj-E<gt>B<from>(OBJECT)
-
-=over 4
-
-See L<Mail::Identity/"Constructors">
-
-=back
-
-Mail::Message::Field::Address-E<gt>B<new>([NAME], OPTIONS)
-
-=over 4
-
-See L<Mail::Identity/"METHODS">
-
-=back
-
-$obj-E<gt>B<parse>(STRING)
-
-=over 4
-
-Parse the string for an address. You never know whether one or more
-addresses are specified on a line (often applications are wrong), therefore,
-the STRING is first parsed for as many addresses as possible and then the
-one is taken at random.
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<address>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<description>
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<domain>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<language>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<location>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<name>([NEWNAME])
-
-=over 4
-
-See L<User::Identity::Item/"Attributes">
-
-=back
-
-$obj-E<gt>B<organization>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<phrase>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-$obj-E<gt>B<username>
-
-=over 4
-
-See L<Mail::Identity/"Attributes">
-
-=back
-
-=head2 Collections
-
-
-$obj-E<gt>B<add>(COLLECTION, ROLE)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<addCollection>(OBJECT | ([TYPE], OPTIONS))
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<collection>(NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<find>(COLLECTION, ROLE)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<parent>([PARENT])
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<removeCollection>(OBJECT|NAME)
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<type>
-
-Mail::Message::Field::Address-E<gt>B<type>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-$obj-E<gt>B<user>
-
-=over 4
-
-See L<User::Identity::Item/"Collections">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<string>
-
-=over 4
-
-Returns an RFC compliant e-mail address, which will have character
-set encoding if needed. The objects are also overloaded to call
-this method in string context.
-
-I<Example:>
-
- print $address->string;
- print $address; # via overloading
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> $object is not a collection.
-
-The first argument is an object, but not of a class which extends
-L<User::Identity::Collection|User::Identity::Collection>.
-
-I<Error:> Cannot coerce a $type into a Mail::Message::Field::Address
-
-When addresses are specified to be included in header fields, they may
-be coerced into L<Mail::Message::Field::Address|Mail::Message::Field::Address> objects first. What
-you specify is not accepted as address specification. This may be an
-internal error.
-
-I<Error:> Cannot load collection module for $type ($class).
-
-Either the specified $type does not exist, or that module named $class returns
-compilation errors. If the type as specified in the warning is not
-the name of a package, you specified a nickname which was not defined.
-Maybe you forgot the 'require' the package which defines the nickname.
-
-I<Error:> Creation of a collection via $class failed.
-
-The $class did compile, but it was not possible to create an object
-of that class using the options you specified.
-
-I<Error:> Don't know what type of collection you want to add.
-
-If you add a collection, it must either by a collection object or a
-list of options which can be used to create a collection object. In
-the latter case, the type of collection must be specified.
-
-I<Warning:> No collection $name
-
-The collection with $name does not exist and can not be created.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Address.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Address.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Addresses.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,234 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Addresses;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Field::Structured';
-
-use Mail::Message::Field::AddrGroup;
-use Mail::Message::Field::Address;
-use List::Util 'first';
-
-
-#------------------------------------------
-# what is permitted for each field.
-
-my $address_list = {groups => 1, multi => 1};
-my $mailbox_list = {multi => 1};
-my $mailbox = {};
-
-my %accepted = # defaults to $address_list
- ( from => $mailbox_list
- , sender => $mailbox
- );
-
-
-#------------------------------------------
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->{MMFF_groups} = [];
-
- ( my $def = lc $args->{name} ) =~ s/^resent\-//;
- $self->{MMFF_defaults} = $accepted{$def} || $address_list;
-
- my ($body, @body);
- if($body = $args->{body})
- { @body = ref $body eq 'ARRAY' ? @$body : ($body);
- return () unless @body;
- }
-
- if(@body > 1 || ref $body[0])
- { $self->addAddress($_) foreach @body;
- delete $args->{body};
- }
-
- $self->SUPER::init($args) or return;
- $self;
-}
-
-#------------------------------------------
-
-
-sub addAddress(@)
-{ my $self = shift;
- my $email = @_ && ref $_[0] ? shift : undef;
- my %args = @_;
- my $group = delete $args{group} || '';
-
- $email = Mail::Message::Field::Address->new(%args)
- unless defined $email;
-
- my $set = $self->group($group) || $self->addGroup(name => $group);
- $set->addAddress($email);
-}
-
-#------------------------------------------
-
-
-sub addGroup(@)
-{ my $self = shift;
- my $group = @_ == 1 ? shift
- : Mail::Message::Field::AddrGroup->new(@_);
-
- push @{$self->{MMFF_groups}}, $group;
- $group;
-}
-
-#------------------------------------------
-
-
-sub group($)
-{ my ($self, $name) = @_;
- $name = '' unless defined $name;
- first { lc($_->name) eq lc($name) } $self->groups;
-}
-
-#------------------------------------------
-
-
-sub groups() { @{shift->{MMFF_groups}} }
-
-#------------------------------------------
-
-
-sub groupNames() { map {$_->name} shift->groups }
-
-#------------------------------------------
-
-
-sub addresses() { map {$_->addresses} shift->groups }
-
-#------------------------------------------
-
-
-sub addAttribute($;@)
-{ my $self = shift;
- $self->log(ERROR => 'No attributes for address fields.');
- $self;
-}
-
-#------------------------------------------
-
-
-sub parse($)
-{ my ($self, $string) = @_;
- my ($group, $email) = ('', undef);
-
- while(1)
- { (my $comment, $string) = $self->consumeComment($string);
-
- if($string =~ s/^\s*\;//s ) { $group = ''; next } # end group
- if($string =~ s/^\s*\,//s ) { next } # end address
-
- (my $email, $string) = $self->consumeAddress($string);
- if(defined $email)
- { # Pattern starts with e-mail address
- ($comment, $string) = $self->consumeComment($string);
- $email->comment($comment) if defined $comment;
- }
- else
- { # Pattern not plain address
- my $real_phrase = $string =~ m/^\s*\"/;
- (my $phrase, $string) = $self->consumePhrase($string);
-
- if(defined $phrase)
- { ($comment, $string) = $self->consumeComment($string);
-
- if($string =~ s/^\s*\://s )
- { $group = $phrase;
- # even empty groups must appear
- $self->addGroup(name=>$group) unless $self->group($group);
- next;
- }
- }
-
- my $angle;
- if($string =~ s/^\s*\<([^>]*)\>//s) { $angle = $1 }
- elsif($real_phrase)
- { $self->log(ERROR => "Ignore unrelated phrase $string");
- next;
- }
- elsif(defined $phrase)
- { ($angle = $phrase) =~ s/\s+/./g;
- undef $phrase;
- }
-
- ($comment, $string) = $self->consumeComment($string);
-
- # remove obsoleted route info.
- return 1 unless defined $angle;
- $angle =~ s/^\@.*?\://;
-
- ($email, $angle) = $self->consumeAddress($angle
- , phrase => $phrase, comment => $comment);
- }
-
- $self->addAddress($email, group => $group) if defined $email;
- return 1 if $string =~ m/^\s*$/s;
- }
-
- $self->log(WARNING => 'Illegal part in address field '.$self->Name.
- ": $string\n");
-
- 0;
-}
-
-#------------------------------------------
-
-sub produceBody()
-{ my @groups = sort {$a->name cmp $b->name} shift->groups;
-
- return undef unless @groups;
- return $groups[0]->string if @groups==1;
-
- my $plain
- = $groups[0]->name eq '' && $groups[0]->addresses
- ? (shift @groups)->string.','
- : '';
-
- join ' ', $plain, map({$_->string} @groups);
-}
-
-#------------------------------------------
-
-
-sub consumeAddress($@)
-{ my ($self, $string, @options) = @_;
-
- my ($local, $shorter, $loccomment) = $self->consumeDotAtom($string);
- $local =~ s/\s//g if defined $local;
-
- return (undef, $string)
- unless defined $local && $shorter =~ s/^\s*\@//;
-
- (my $domain, $shorter, my $domcomment) = $self->consumeDomain($shorter);
- return (undef, $string) unless defined $domain;
-
- # loccomment and domcomment ignored
- my $email = Mail::Message::Field::Address->new
- ( username => $local, domain => $domain, @options);
-
- ($email, $shorter);
-}
-
-#------------------------------------------
-
-
-sub consumeDomain($)
-{ my ($self, $string) = @_;
-
- return ($self->stripCFWS($1), $string)
- if $string =~ s/\s*(\[(?:[^[]\\]*|\\.)*\])//;
-
- my ($atom, $rest, $comment) = $self->consumeDotAtom($string);
- $atom =~ s/\s//g if defined $atom;
- ($atom, $rest, $comment);
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Addresses.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Addresses.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,809 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Addresses - Fields with e-mail addresses
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Addresses
- is a Mail::Message::Field::Structured
- is a Mail::Message::Field::Full
- is a Mail::Message::Field
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $f = Mail::Message::Field->new(Cc =>
- 'Mail::Box <mailbox at overmeer.net>');
-
- my $cc = Mail::Message::Field->new('Cc');
- $cc->addAddress('Mail::Box <mailbox at overmeer.net>');
- $cc->addAddress
- ( phrase => 'Mail::Box'
- , email => 'mailbox at overmeer.net'
- , comment => 'Our mailing list' # deprecated by RFC
- );
-
- mu $ma = Mail::Message::Field::Address->new(...);
- $cc->addAddress($ma);
-
- my $mi = Mail::Identity->new(...);
- $cc->addAddress($mi);
-
- my $g = Mail::Message::Field::AddrGroup->new(...);
- $cc->addGroup($g);
-
-
-=head1 DESCRIPTION
-
-All header fields which contain e-mail addresses only. Not all address
-fields have the same possibilities, but they are all parsed the same:
-you never know how broken the applications are which produce those
-messages.
-
-When you try to create constructs which are not allowed for a certain
-kind of field, you will be warned.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Field/"Constructors">
-
-=back
-
-Mail::Message::Field::Addresses-E<gt>B<from>(FIELD, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Constructors">
-
-=back
-
-Mail::Message::Field::Addresses-E<gt>B<new>
-
-=over 4
-
- Option Defined in Default
- attributes L<Mail::Message::Field::Structured> <ignored>
- charset L<Mail::Message::Field::Full> undef
- datum L<Mail::Message::Field::Structured> C<undef>
- encoding L<Mail::Message::Field::Full> C<'q'>
- force L<Mail::Message::Field::Full> false
- language L<Mail::Message::Field::Full> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. attributes ATTRS
-
-. charset STRING
-
-. datum STRING
-
-. encoding 'q'|'Q'|'b'|'B'
-
-. force BOOLEAN
-
-. language STRING
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field::Addresses-E<gt>B<isStructured>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<decodedBody>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the body">
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field::Addresses-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<addAddress>([ADDRESS], OPTIONS)
-
-=over 4
-
-Add an ADDRESS to the field. The addresses are organized in groups. If no
-group is specified, the default group is taken to store the address in. If
-no ADDRESS is specified, the option must be sufficient to create a
-L<Mail::Message::Field::Address|Mail::Message::Field::Address> from. See the OPTIONS of
-L<Mail::Message::Field::Address::new()|Mail::Identity/"METHODS">.
-
- Option Defined in Default
- group C<''>
-
-. group STRING
-
-=back
-
-$obj-E<gt>B<addAttribute>(...)
-
-=over 4
-
-Attributes are not supported for address fields.
-
-=back
-
-$obj-E<gt>B<addGroup>(GROUP|OPTIONS)
-
-=over 4
-
-Add a group of addresses to this field. A GROUP can be specified, which
-is a L<Mail::Message::Field::AddrGroup|Mail::Message::Field::AddrGroup> object, or one is created for you
-using the OPTIONS. The group is returned.
-
- Option Defined in Default
- name C<''>
-
-. name STRING
-
-=back
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-Returns a list with all addresses defined in any group of addresses:
-all addresses which are specified on the line. The addresses are
-L<Mail::Message::Field::Address|Mail::Message::Field::Address> objects.
-
-I<Example:>
-
- my @addr = $field->addresses;
-
-=back
-
-$obj-E<gt>B<attribute>(OBJECT|(STRING, OPTIONS)|(NAME,VALUE,OPTIONS))
-
-=over 4
-
-See L<Mail::Message::Field::Structured/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-See L<Mail::Message::Field::Structured/"Access to the content">
-
-=back
-
-$obj-E<gt>B<beautify>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createComment>(STRING, OPTIONS)
-
-Mail::Message::Field::Addresses-E<gt>B<createComment>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-Mail::Message::Field::Addresses-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<group>(NAME)
-
-=over 4
-
-Returns the group of addresses with the specified NAME, or C<undef>
-if it does not exist. If NAME is C<undef>, then the default groep
-is returned.
-
-=back
-
-$obj-E<gt>B<groupNames>
-
-=over 4
-
-Returns a list with all group names which are defined.
-
-=back
-
-$obj-E<gt>B<groups>
-
-=over 4
-
-Returns all address groups which are defined in this field. Each
-element is a L<Mail::Message::Field::AddrGroup|Mail::Message::Field::AddrGroup> object.
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field::Addresses-E<gt>B<toDate>([TIME])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field::Addresses-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Other methods">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<decode>(STRING, OPTIONS)
-
-Mail::Message::Field::Addresses-E<gt>B<decode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<encode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field::Addresses-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-=head2 Parsing
-
-
-$obj-E<gt>B<consumeAddress>(STRING, OPTIONS)
-
-=over 4
-
-Try to destilate address information from the STRING. Returned are
-an address B<object> and the left-over string. If no address was found,
-the first returned value is C<undef>.
-
-=back
-
-$obj-E<gt>B<consumeComment>(STRING)
-
-Mail::Message::Field::Addresses-E<gt>B<consumeComment>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumeDomain>(STRING)
-
-=over 4
-
-Try to get a valid domain representation from STRING. Returned are the
-domain string as found (or C<undef>) and the rest of the string.
-
-=back
-
-$obj-E<gt>B<consumeDotAtom>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumePhrase>(STRING)
-
-Mail::Message::Field::Addresses-E<gt>B<consumePhrase>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<datum>([VALUE])
-
-=over 4
-
-See L<Mail::Message::Field::Structured/"Parsing">
-
-=back
-
-$obj-E<gt>B<parse>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<produceBody>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::Addresses-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::Addresses-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::Addresses-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in charset '$charset'
-
-The field is created with an utf8 string which only contains data from the
-specified character set. However, that character set can never be a valid
-name because it contains characters which are not permitted.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Warning:> Illegal character in language '$lang'
-
-The field is created with data which is specified to be in a certain language,
-however, the name of the language cannot be valid: it contains characters
-which are not permitted by the RFCs.
-
-I<Warning:> Illegal encoding '$encoding', used 'q'
-
-The RFCs only permit base64 (C<b > or C<B >) or quoted-printable
-(C<q> or C<Q>) encoding. Other than these four options are illegal.
-
-I<Error:> No attributes for address fields.
-
-Is is not possible to add attributes to address fields: it is not permitted
-by the RFCs.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Addresses.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Addresses.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Attribute.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,214 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Attribute;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-use 5.007003;
-use Encode ();
-
-use Carp;
-
-
-sub new($$@)
-{ my ($class, $attr) = (shift, shift);
- my $value = @_ % 2 == 1 ? shift : undef;
- $class->SUPER::new(attr => $attr, value => $value, @_);
-}
-
-sub init($$)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- my ($attr, $value, $cont) = @$args{ qw/attr value use_continuations/ };
-
- my $name = ($attr =~ m/^(.*?)(?:\*\d+)?\*?\=/ ? $1 : $attr);
- $self->log(WARNING => "Illegal character in parameter name '$name'.")
- if $name !~ m/^[!#-'*+\-.0-9A-Z^-~]+$/;
-
- $self->{MMFF_name} = $name;
- $self->{MMFF_usecont} = defined $cont ? $cont : 1;
- $self->{MMFF_charset} = $args->{charset} if defined $args->{charset};
- $self->{MMFF_language} = $args->{language} if defined $args->{language};
-
- $self->value($value) if defined $value;
- $self->addComponent($attr) unless $attr eq $name;
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub name() { shift->{MMFF_name} }
-
-#------------------------------------------
-
-
-sub value(;$)
-{ my $self = shift;
- if(@_)
- { delete $self->{MMFF_cont};
- return $self->{MMFF_value} = shift;
- }
-
- exists $self->{MMFF_value} ? $self->{MMFF_value} : $self->decode;
-}
-
-#------------------------------------------
-
-
-sub addComponent($)
-{ my ($self, $component) = @_;
- delete $self->{MMFF_value};
-
- my ($name, $value) = split /\=/, $component, 2;
- if( substr($name, -1) eq '*' && $value =~ m/^([^']*)\'([^']*)\'/ )
- { $self->{MMFF_charset} = length $1 ? $1 : undef;
- $self->{MMFF_language} = length $2 ? $2 : undef;
- }
-
- if( $name =~ m/\*([0-9]+)\*?$/ )
- { $self->{MMFF_cont}[$1] = $component }
- else { $self->{MMFF_cont} = [ $component ] }
-
- $component;
-}
-
-#------------------------------------------
-
-
-sub charset() { shift->{MMFF_charset} }
-
-#------------------------------------------
-
-
-sub language() { shift->{MMFF_language} }
-
-#------------------------------------------
-
-
-sub string()
-{ my $self = shift;
- my $cont = $self->{MMFF_cont} || $self->encode;
- return @$cont if wantarray;
- return [] unless @$cont;
-
- local $" = "; ";
- "; @$cont";
-}
-
-#------------------------------------------
-
-
-sub encode()
-{ my $self = shift;
- my $value = $self->{MMFF_value};
-
- my @lines;
- my ($pre, $encoded);
-
- my $charset = $self->{MMFF_charset} || '';
- my $lang = $self->{MMFF_language} || '';
- my $name = $self->{MMFF_name};
- my $cont = $self->{MMFF_usecont};
-
- if($charset || $lang)
- { $pre = "$name*0*=$charset'$lang'";
- $value = Encode::encode($charset, $value, 0);
- $encoded = 1;
- }
- elsif(grep m/[^\x20-\x7E]/, $value)
- { $pre = "$name*0*=''";
- $encoded = 1;
- }
- else
- { $pre = "$name*0=";
- $value =~ s/"/\\"/g;
- $encoded = 0;
- }
-
- if($encoded)
- { # Use encoding
- my @c = split //, $value;
- while(@c)
- { my $c = shift @c;
- $c = '%'. sprintf "%02X", ord $c
- unless $c =~ m/[a-zA-Z0-9]/;
-
- if($cont && length($pre) + length($c)> 76)
- { push @lines, $pre;
- $pre = $name . '*' . @lines . '*=' . $c;
- }
- else { $pre .= $c }
- }
- push @lines, $pre;
- }
- elsif($cont)
- { # Simple string, but with continuations
- while(1)
- { push @lines, $pre . '"' . substr($value, 0, 75-length($pre), '') . '"';
- last unless length $value;
- $pre = $name . '*' . @lines . '=';
- }
-
- }
- else
- { # Single string only
- push @lines, $pre . $value;
- }
-
- $lines[0] =~ s/\*0// if @lines==1;
- $self->{MMFF_cont} = \@lines;
-}
-
-#------------------------------------------
-
-
-sub decode()
-{ my $self = shift;
- my $value = '';
-
- foreach my $cont ( @{$self->{MMFF_cont}} )
- { unless(defined $cont)
- { $value .= "[continuation missing]";
- next;
- }
-
- (my $name, local $_) = split /\=/, $cont, 2;
-
- if(substr($name, -1) eq '*')
- { s/^[^']*\'[^']*\'//;
- s/\%([a-fA-F0-9]{2})/chr hex $1/ge;
- }
- elsif( s/^\"(.*)\"$/$1/ ) { s/\\\"/"/g }
- elsif( s/^\'(.*)\'$/$1/ ) { s/\\\'/'/g }
-
- $value .= $_;
- }
-
- my $charset = $self->{MMFF_charset};
- $value = Encode::decode($charset, $value, 0) if $charset;
-
- $self->{MMFF_value} = $value;
-}
-
-#------------------------------------------
-
-
-sub mergeComponent($)
-{ my ($self, $comp) = @_;
- my $cont = $self->{MMFF_cont}
- or croak "ERROR: Too late to merge: value already changed.";
-
- defined $_ && $self->addComponent($_)
- foreach @{$comp->{MMFF_cont}};
-
- $self;
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Attribute.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Attribute.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,384 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Attribute - one attribute of a full field
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Attribute
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $field = $msg->head->get('Content-Disposition') or return;
- my $full = $field->study; # full understanding in unicode
- my $filename = $full->attribute('filename') or return;
-
- print ref $filename; # this class name
- print $filename; # the attributes content in utf-8
- print $filename->value; # same
- print $filename->string; # print string as was found in the file
- $filename->print(\*OUT); # print as was found in the file
-
-
-=head1 DESCRIPTION
-
-Attributes within MIME fields can be quite complex, and therefore be slow
-and consumes a lot of memory. The L<Mail::Message::Field::Fast|Mail::Message::Field::Fast> and
-L<Mail::Message::Field::Flex|Mail::Message::Field::Flex> simplify them the attributes a lot, which
-may result in erroneous behavior in rare cases. With the increase of
-non-western languages on Internet, the need for the complex headers
-becomes more and more in demand.
-
-A C<Mail::Message::Field::Attribute> can be found in any structured
-L<Mail::Message::Field::Full|Mail::Message::Field::Full> header field.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::Field::Attribute-E<gt>B<new>((NAME, [VALUE] | STRING), OPTIONS)
-
-=over 4
-
-Create a new attribute NAME with the optional VALUE. If no VALUE is specified,
-the first argument of this method is inspected for an equals sign C<'='>.
-If that character is present, the argument is taken as STRING, containing
-a preformatted attribute which is processed. Otherwise, the argument is
-taken as name without VALUE: set the value later with value().
-
-Whether encoding takes place depends on the OPTIONS and the existence
-of non-ascii characters in the VALUE. The NAME can only contain ascii
-characters, hence is never encoded.
-
-To speed things up, attributes are not derived from the L<Mail::Reporter|Mail::Reporter>
-base-class.
-
- Option Defined in Default
- charset C<'us-ascii'>
- language undef
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
- use_continuations <true>
-
-. charset STRING
-
-=over 4
-
-The VALUE is translated from utf-8 (Perl internal) to this character set,
-and the resulting string is encoded if required. C<us-ascii> is the normal
-encoding for e-mail. Valid character sets can be found with
-Encode::encodings(':all').
-
-=back
-
-. language STRING
-
-=over 4
-
-RFC2231 adds the possiblity to specify a language with the field. When no
-language is specified, none is included in the encoding. Valid language
-names are defined by RFC2130. This module has only limited support for
-this feature.
-
-=back
-
-. log LEVEL
-
-. trace LEVEL
-
-. use_continuations BOOLEAN
-
-=over 4
-
-Continuations are used to break-up long parameters into pieces which
-are no longer than 76 characters. Encodings are specified in RFC2231,
-but not supported by some Mail User Agents.
-
-=back
-
-I<Example:>
-
- my $fn = Mail::Message::Field::Attribute
- ->new(filename => 'xyz');
-
- my $fattr = 'Mail::Message::Field::Attribute'; # abbrev
- my $fn = $fattr->new
- ( filename => "Re\xC7u"
- , charset => 'iso-8859-15'
- , language => 'nl-BE'
- );
- print $fn;
- # --> filename*=iso-8859-15'nl-BE'Re%C7u
-
-=back
-
-=head2 The attribute
-
-
-$obj-E<gt>B<addComponent>(STRING)
-
-=over 4
-
-A component is a parameter as defined by RFC2045, optionally using
-encoding or continuations as defined by RFC2231. Components of an
-attribute are found when a field is being parsed. The RFCs are
-very strict on valid characters, but we cannot be: you have to accept
-what is coming in if you can.
-
-I<Example:>
-
- my $param = Mail::Message::Field::Attribute->new;
- $param->addComponent("filename*=iso10646'nl-BE'%Re\47u");
-
-=back
-
-$obj-E<gt>B<charset>
-
-=over 4
-
-Returns the character set which is used for this parameter. If any component
-is added which contains character set information, this is directly
-available. Be warned that a character-set is case insensitive.
-
-=back
-
-$obj-E<gt>B<language>
-
-=over 4
-
-Returns the language which is defined in the argument. If no language is
-defined C<undef> is returned, which should be interpreted as "ANY"
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-Returns the name of this attribute.
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-Returns the parameter as reference to an array of lines. When only one line
-is returned, it may be short enough to fit on the same line with other components
-of the header field.
-
-=back
-
-$obj-E<gt>B<value>([STRING])
-
-=over 4
-
-Returns the value of this parameter, optionally after setting it first.
-
-=back
-
-=head2 Attribute encoding
-
-
-$obj-E<gt>B<decode>
-
-=over 4
-
-Translate all known continuations into a value. The produced value is
-returned and may be utf-8 encoded or a plain string.
-
-=back
-
-$obj-E<gt>B<encode>
-
-=over 4
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<mergeComponent>(ATTRIBUTE)
-
-=over 4
-
-Merge the components from the specified attribute in this attribute. This is
-needed when components of the same attribute are created separately. Merging
-is required by the field parsing.
-
-=back
-
-=head2 Error handling
-
-This class does not extend L<Mail::Reporter|Mail::Reporter> for obvious performance
-reasons: there is no logging or tracing available.
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::Attribute-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::Attribute-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::Attribute-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Illegal character in parameter name '$name'
-
-The specified parameter name contains characters which are not permitted by
-the RFCs. You can better change the name into something which is accepted,
-or risk applications to corrupt or ignore the message.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Too late to merge: value already changed.
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Attribute.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Attribute.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Fast.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,101 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Fast;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Field';
-
-
-#------------------------------------------
-#
-# The DATA is stored as: [ NAME, FOLDED-BODY ]
-# The body is kept in a folded fashion, where each line starts with
-# a single blank.
-
-
-sub new($;$@)
-{ my $class = shift;
-
- my ($name, $body) = $class->consume(@_==1 ? (shift) : (shift, shift));
- return () unless defined $body;
-
- my $self = bless [$name, $body], $class;
-
- # Attributes
- $self->comment(shift) if @_==1; # one attribute line
- $self->attribute(shift, shift) while @_ > 1; # attribute pairs
-
- $self;
-}
-
-#------------------------------------------
-
-sub clone()
-{ my $self = shift;
- bless [ @$self ], ref $self;
-}
-
-#------------------------------------------
-
-sub length()
-{ my $self = shift;
- length($self->[0]) + 1 + length($self->[1]);
-}
-
-#------------------------------------------
-
-sub name() { lc shift->[0] }
-
-#------------------------------------------
-
-sub Name() { shift->[0] }
-
-#------------------------------------------
-
-sub folded()
-{ my $self = shift;
- return $self->[0].':'.$self->[1]
- unless wantarray;
-
- my @lines = $self->foldedBody;
- my $first = $self->[0]. ':'. shift @lines;
- ($first, @lines);
-}
-
-#------------------------------------------
-
-sub unfoldedBody($;@)
-{ my $self = shift;
-
- $self->[1] = $self->fold($self->[0], @_)
- if @_;
-
- $self->unfold($self->[1]);
-}
-
-#------------------------------------------
-
-sub foldedBody($)
-{ my ($self, $body) = @_;
- if(@_==2) { $self->[1] = $body }
- else { $body = $self->[1] }
-
- wantarray ? (split m/^/, $body) : $body;
-}
-
-#------------------------------------------
-
-# For performance reasons only
-
-sub print(;$)
-{ my $self = shift;
- my $fh = shift || select;
- if(ref $fh eq 'GLOB') { print $fh $self->[0].':'.$self->[1] }
- else { $fh->print($self->[0].':'.$self->[1]) }
- $self;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Fast.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Fast.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,598 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Fast - one line of a message header
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Fast
- is a Mail::Message::Field
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- See Mail::Message::Field
-
-
-=head1 DESCRIPTION
-
-This is the faster, but less flexible implementation of a header field.
-The data is stored in an array, and some hacks are made to speeds
-things up. Be gentle with me, and consider that each message contains
-many of these lines, so speed is very important here.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Field/"Constructors">
-
-=back
-
-Mail::Message::Field::Fast-E<gt>B<new>(DATA)
-
-=over 4
-
-The constructor of this object does not follow the usual practise within
-the Mail::Box suite: it does not use the constructor
-L<Mail::Reporter::new()|Mail::Reporter/"Constructors">.
-Therefor it has no logging or tracing facilities.
-
-The method can be used in one of the following ways:
-
-=over 4
-
-=item * B<new> LINE
-
-Pass a LINE as it could be found in a file: a (possibly folded) line
-which is terminated by a new-line.
-
-=item * B<new> NAME, (BODY|OBJECTS), [ATTRIBUTES]
-
-A set of values which shape the line.
-
-=back
-
-Create a new header field object. Specify the whole LINE at once, and
-it will be split-up for you. I case you already have the parts of the
-header line, you may specify them separately as NAME and BODY.
-
-In case you specify a single OBJECT, or a reference to an array of
-OBJECTS, these objects are processed to become suitable to fill a
-field, usually by simple strification. When you specify one or more
-Mail::Address objects, these are transformed into a string using
-their C<format> method. You may also add one L<Mail::Message::Field|Mail::Message::Field>,
-whose body is taken. In case of an array, the elements are joined into
-one string with a comma.
-
-ATTRIBUTES can be exactly one string which may contain multiple attributes
-at once, quoted and formatted as required in RFC2822. As alternative,
-list of key-value pairs can be used. In this case, the values will get
-quoted if needed and everything formatted as the protocol demands.
-
- Option Defined in Default
- log L<Mail::Reporter> <disabled>
- trace L<Mail::Reporter> <disabled>
-
-. log LEVEL
-
-. trace LEVEL
-
-I<Example:>
-
- my $mime = Mail::Message::Field->new(
- 'Content-Type: text/plain; charset=US-ASCII');
-
- my $mime = Mail::Message::Field->new(
- 'Content-Type' => 'text/plain; charset=US-ASCII');
-
- my $mime = Mail::Message::Field->new(
- 'Content-Type' => 'text/plain', 'charset=US-ASCII');
-
- my $mime = Mail::Message::Field->new(
- 'Content-Type' => 'text/plain', charset => 'Latin1');
-
- my $mime = Mail::Message::Field->new(
- To => Mail::Address->new('My', 'me at example.com');
-
- my $mime = Mail::Message::Field->new(
- Cc => [ Mail::Address->new('You', 'you at example.com')
- , Mail::Address->new('His', 'he at example.com')
- ]);
-
-But in practice, you can simply call
-
- my $head = Mail::Message::Head->new;
- $head->add( 'Content-Type' => 'text/plain'
- , charset => 'utf8');
-
-which implicitly calls this constructor (when needed). You can specify
-the same things for L<Mail::Message::Head::Complete::add()|Mail::Message::Head::Complete/"Access to the header"> as this
-C<new> accepts.
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field::Fast-E<gt>B<isStructured>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field::Fast-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attribute>(NAME [, VALUE])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field::Fast-E<gt>B<toDate>([TIME])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field::Fast-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Other methods">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field::Fast-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::Fast-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::Fast-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::Fast-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Fast.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Fast.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Flex.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,101 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Flex;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Field';
-
-use Carp;
-
-
-sub new($;$$@)
-{ my $class = shift;
- my $args = @_ <= 2 || ! ref $_[-1] ? {}
- : ref $_[-1] eq 'ARRAY' ? { @{pop @_} }
- : pop @_;
-
- my ($name, $body) = $class->consume(@_==1 ? (shift) : (shift, shift));
- return () unless defined $body;
-
- # Attributes preferably stored in array to protect order.
- my $attr = $args->{attributes};
- $attr = [ %$attr ] if defined $attr && ref $attr eq 'HASH';
- push @$attr, @_;
-
- $class->SUPER::new(%$args, name => $name, body => $body,
- attributes => $attr);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- @$self{ qw/MMFF_name MMFF_body/ } = @$args{ qw/name body/ };
-
- $self->comment($args->{comment})
- if exists $args->{comment};
-
- my $attr = $args->{attributes};
- $self->attribute(shift @$attr, shift @$attr)
- while @$attr;
-
- $self;
-}
-
-#------------------------------------------
-
-sub clone()
-{ my $self = shift;
- (ref $self)->new($self->Name, $self->body);
-}
-
-#------------------------------------------
-
-sub length()
-{ my $self = shift;
- length($self->{MMFF_name}) + 1 + length($self->{MMFF_body});
-}
-
-#------------------------------------------
-
-sub name() { lc shift->{MMFF_name}}
-
-#------------------------------------------
-
-sub Name() { shift->{MMFF_name}}
-
-#------------------------------------------
-
-sub folded(;$)
-{ my $self = shift;
- return $self->{MMFF_name}.':'.$self->{MMFF_body}
- unless wantarray;
-
- my @lines = $self->foldedBody;
- my $first = $self->{MMFF_name}. ':'. shift @lines;
- ($first, @lines);
-}
-
-#------------------------------------------
-
-sub unfoldedBody($;@)
-{ my $self = shift;
- $self->{MMFF_body} = $self->fold($self->{MMFF_name}, @_)
- if @_;
-
- $self->unfold($self->{MMFF_body});
-}
-
-#------------------------------------------
-
-sub foldedBody($)
-{ my ($self, $body) = @_;
- if(@_==2) { $self->{MMFF_body} = $body }
- else { $body = $self->{MMFF_body} }
-
- wantarray ? (split /^/, $body) : $body;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Flex.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Flex.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,572 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Flex - one line of a message header
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Flex
- is a Mail::Message::Field
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
-
-
-=head1 DESCRIPTION
-
-This is the flexible implementation of a field: it can easily be
-extended because it stores its data in a hash and the constructor
-(C<new>) and initializer (C<init>) are split. However, you pay the
-price in performance. L<Mail::Message::Field::Fast|Mail::Message::Field::Fast> is faster (as the
-name predicts).
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Field/"Constructors">
-
-=back
-
-Mail::Message::Field::Flex-E<gt>B<new>(DATA)
-
-=over 4
-
-If you stick to this flexible class of header fields, you have a bit
-more facilities than with L<Mail::Message::Field::Fast|Mail::Message::Field::Fast>. Amongst it, you
-can specify options with the creation. Possible arguments:
-
-=over 4
-
-=item * B<new> LINE
-
-ass a LINE as it could be found in a file: a (possibly folded) line
-which is terminated by a new-line.
-
-=item * B<new> NAME, (BODY|OBJECTS), [ATTRIBUTES], OPTIONS
-
-A set of values which shape the line.
-
-=back
-
-To be able to distinguish the different parameters, you will have
-to specify the OPTIONS as ARRAY of option pairs, or HASH of options.
-The ATTRIBUTES are a flat list of key-value pairs. The body is
-specified as one BODY string, one OBJECT, or a reference to an array
-of OBJECTS. See L<Mail::Message::Field|Mail::Message::Field>:
-
- Option Defined in Default
- attributes C<[]>
- comment undef
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. attributes ATTRS
-
-=over 4
-
-Reference to array with list of key-value pairs representing attributes,
-or reference to a hash containing these pairs. This is an alternative
-notation for specifying ATTRIBUTES directly as method arguments.
-
-=back
-
-. comment STRING
-
-=over 4
-
-A pre-formatted list of attributes.
-
-=back
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field::Flex-E<gt>B<isStructured>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field::Flex-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attribute>(NAME [, VALUE])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field::Flex-E<gt>B<toDate>([TIME])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field::Flex-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Other methods">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field::Flex-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::Flex-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::Flex-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::Flex-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Flex.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Flex.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Full.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,388 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Full;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Field';
-
-use utf8;
-use Encode ();
-use MIME::QuotedPrint ();
-use Storable 'dclone';
-
-use Mail::Message::Field::Structured;
-use Mail::Message::Field::Unstructured;
-use Mail::Message::Field::Addresses;
-use Mail::Message::Field::URIs;
-
-my $atext = q[a-zA-Z0-9!#\$%&'*+\-\/=?^_`{|}~]; # from RFC
-
-
-use overload '""' => sub { shift->decodedBody };
-
-#------------------------------------------
-
-
-my %implementation;
-
-BEGIN {
- $implementation{$_} = 'Addresses' foreach
- qw/from to sender cc bcc reply-to envelope-to
- resent-from resent-to resent-cc resent-bcc resent-reply-to
- resent-sender
- x-beenthere errors-to mail-follow-up x-loop delivered-to
- original-sender x-original-sender/;
- $implementation{$_} = 'URIs' foreach
- qw/list-help list-post list-subscribe list-unsubscribe list-archive
- list-owner/;
- $implementation{$_} = 'Structured' foreach
- qw/content-disposition content-type/;
-# $implementation{$_} = 'Date' foreach
-# qw/date resent-date/;
-}
-
-sub new($;$$@)
-{ my $class = shift;
- my $name = shift;
- my $body = @_ % 2 ? shift : undef;
- my %args = @_;
-
- $body = delete $args{body} if defined $args{body};
- unless(defined $body)
- { (my $n, $body) = split /\s*\:\s*/s, $name, 2;
- $name = $n if defined $body;
- }
-
- return $class->SUPER::new(%args, name => $name, body => $body)
- if $class ne __PACKAGE__;
-
- # Look for best class to suit this field
- my $myclass = 'Mail::Message::Field::'
- . ($implementation{lc $name} || 'Unstructured');
-
- $myclass->SUPER::new(%args, name => $name, body => $body);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
- $self->{MMFF_name} = $args->{name};
-
- my $body = $args->{body};
-
- if(!defined $body || !length $body || ref $body) { ; } # no body yet
- elsif(index($body, "\n") >= 0)
- { $self->foldedBody($body) } # body is already folded
- else { $self->unfoldedBody($body) } # body must be folded
-
- $self;
-}
-
-#------------------------------------------
-
-sub clone() { dclone(shift) }
-
-#------------------------------------------
-
-sub name() { lc shift->{MMFF_name}}
-
-#------------------------------------------
-
-sub Name() { shift->{MMFF_name}}
-
-#------------------------------------------
-
-sub folded()
-{ my $self = shift;
- return $self->{MMFF_name}.':'.$self->foldedBody
- unless wantarray;
-
- my @lines = $self->foldedBody;
- my $first = $self->{MMFF_name}. ':'. shift @lines;
- ($first, @lines);
-}
-
-#------------------------------------------
-
-sub unfoldedBody($;$)
-{ my ($self, $body) = (shift, shift);
-
- if(defined $body)
- { $self->foldedBody(scalar $self->fold($self->{MMFF_name}, $body));
- return $body;
- }
-
- $body = $self->foldedBody;
- $body =~ s/^ //;
- $body =~ s/\n//g;
- $body;
-}
-
-#------------------------------------------
-
-sub foldedBody($)
-{ my ($self, $body) = @_;
-
- if(@_==2)
- { $self->parse($body);
- $body =~ s/^\s*/ /;
- $self->{MMFF_body} = $body;
- }
- elsif(defined($body = $self->{MMFF_body})) { ; }
- else
- { # Create a new folded body from the parts.
- $self->{MMFF_body} = $body
- = $self->fold($self->{MMFF_name}, $self->produceBody);
- }
-
- wantarray ? (split /^/, $body) : $body;
-}
-
-#------------------------------------------
-
-
-sub from($@)
-{ my ($class, $field) = (shift, shift);
- defined $field ? $class->new($field->Name, $field->foldedBody, @_) : ();
-}
-
-#------------------------------------------
-
-
-sub decodedBody()
-{ my $self = shift;
- $self->decode($self->unfoldedBody, @_);
-}
-
-#------------------------------------------
-
-
-sub createComment($@)
-{ my ($thing, $comment) = (shift, shift);
-
- $comment = $thing->encode($comment, @_)
- if @_; # encoding required...
-
- # Correct dangling parenthesis
- local $_ = $comment; # work with a copy
- s#\\[()]#xx#g; # remove escaped parens
- s#[^()]#x#g; # remove other chars
- while( s#\(([^()]*)\)#x$1x# ) {;} # remove pairs of parens
-
- substr($comment, CORE::length($_), 0, '\\')
- while s#[()][^()]*$##; # add escape before remaining parens
-
- $comment =~ s#\\+$##; # backslash at end confuses
- "($comment)";
-}
-
-#------------------------------------------
-
-
-sub createPhrase($)
-{ my $self = shift;
- local $_ = shift;
- $_ = $self->encode($_, @_)
- if @_; # encoding required...
-
- if( m/[^$atext]/ )
- { s#\\#\\\\#g;
- s#"#\\"#g;
- $_ = qq["$_"];
- }
-
- $_;
-}
-
-#------------------------------------------
-
-
-sub beautify() { shift }
-
-#------------------------------------------
-
-
-sub encode($@)
-{ my ($self, $utf8, %args) = @_;
-
- my ($charset, $lang, $encoding);
-
- if($charset = $args{charset})
- { $self->log(WARNING => "Illegal character in charset '$charset'")
- if $charset =~ m/[\x00-\ ()<>@,;:"\/[\]?.=\\]/;
- }
- else { $charset = 'us-ascii' }
-
- if($lang = $args{language})
- { $self->log(WARNING => "Illegal character in language '$lang'")
- if $lang =~ m/[\x00-\ ()<>@,;:"\/[\]?.=\\]/;
- }
-
- if($encoding = $args{encoding})
- { unless($encoding =~ m/^[bBqQ]$/ )
- { $self->log(WARNING => "Illegal encoding '$encoding', used 'q'");
- $encoding = 'q';
- }
- }
- else { $encoding = 'q' }
-
- my $encoded = Encode::encode($charset, $utf8, 0);
-
- no utf8;
-
- my $pre = '=?'. $charset. ($lang ? '*'.$lang : '') .'?'.$encoding.'?';
- my $ready = '';
-
- if(lc $encoding eq 'q')
- { # Quoted printable encoding
- my $qp = $encoded;
- $qp =~ s#([\x00-\x1F=\x7F-\xFF])#sprintf "=%02X", ord $1#ge;
-
- return $qp # string only contains us-ascii?
- if !$args{force} && $qp eq $utf8;
-
- $qp =~ s#([_\?])#sprintf "=%02X", ord $1#ge;
- $qp =~ s/ /_/g;
-
- my $take = 72 - CORE::length($pre);
- while(CORE::length($qp) > $take)
- { $qp =~ s#^(.{$take}.?.?[^=][^=])## or warn $qp;
- $ready .= "$pre$1?= ";
- }
- $ready .= "$pre$qp?=" if CORE::length $qp;
- }
-
- else
- { # base64 encoding
- require MIME::Base64;
- my $maxchars = int((74-CORE::length($pre))/4) *4;
- my $bq = MIME::Base64::encode_base64($encoded);
- $bq =~ s/\s*//gs;
- while(CORE::length($bq) > $maxchars)
- { $ready .= $pre . substr($bq, 0, $maxchars, '') . '?= ';
- }
- $ready .= "$pre$bq?=";
- }
-
- $ready;
-}
-
-#------------------------------------------
-
-
-sub _decoder($$$)
-{ my ($charset, $encoding, $encoded) = @_;
- $charset =~ s/\*[^*]+$//; # string language, not used
- $charset ||= 'us-ascii';
-
- my $decoded;
- if(lc($encoding) eq 'q')
- { # Quoted-printable encoded
- $encoded =~ s/_/ /g;
- $decoded = MIME::QuotedPrint::decode_qp($encoded);
- }
- elsif(lc($encoding) eq 'b')
- { # Base64 encoded
- require MIME::Base64;
- $decoded = MIME::Base64::decode_base64($encoded);
- }
- else
- { # unknown encodings ignored
- return $encoded;
- }
-
- Encode::decode($charset, $decoded, 0);
-}
-
-sub decode($@)
-{ my ($self, $encoded, %args) = @_;
- if(defined $args{is_text} ? $args{is_text} : 1)
- { # in text, blanks between encoding must be removed, but otherwise kept :(
- # dirty trick to get this done: add an explicit blank.
- $encoded =~ s/\?\=\s(?!\s*\=\?|$)/_?= /gs;
- }
- $encoded =~ s/\=\?([^?\s]*)\?([^?\s]*)\?([^?\s]*)\?\=\s*/_decoder($1,$2,$3)/gse;
-
- $encoded;
-}
-
-#------------------------------------------
-
-
-sub parse($) { shift }
-
-#------------------------------------------
-
-
-sub consumePhrase($)
-{ my ($thing, $string) = @_;
-
- if($string =~ s/^\s*\"((?:[^"\\]*|\\.)*)\"// )
- { (my $phrase = $1) =~ s/\\\"/"/g;
- return ($phrase, $string);
- }
-
- if($string =~ s/^\s*([$atext\ \t.]+)//o )
- { (my $phrase = $1) =~ s/\s+$//;
- return CORE::length($phrase) ? ($phrase, $string) : (undef, $_[1]);
- }
-
- (undef, $string);
-}
-
-#------------------------------------------
-
-
-sub consumeComment($)
-{ my ($thing, $string) = @_;
-
- return (undef, $string)
- unless $string =~ s/^\s*\(((?:[^)\\]+|\\.)*)\)//;
-
- my $comment = $1;
- while(1)
- { (my $count = $comment) =~ s/\\./xx/g;
-
- last if $count =~ tr/(// == $count =~ tr/)//;
-
- return (undef, $_[1])
- unless $string =~ s/^((?:[^)\\]+|\\.)*)\)//;
-
- $comment .= ')'.$1;
- }
-
- $comment =~ s/\\([()])/$1/g;
- ($comment, $string);
-}
-
-#------------------------------------------
-
-
-sub consumeDotAtom($)
-{ my ($self, $string) = @_;
- my ($atom, $comment);
-
- while(1)
- { (my $c, $string) = $self->consumeComment($string);
- if(defined $c) { $comment .= $c; next }
-
- last unless $string =~ s/^\s*([$atext]+(?:\.[$atext]+)*)//o;
-
- $atom .= $1;
- }
-
- ($atom, $string, $comment);
-}
-
-#------------------------------------------
-
-
-sub produceBody() { die }
-
-#------------------------------------------
-
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Full.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Full.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,908 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Full - construct one smart line in a message header
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Full
- is a Mail::Message::Field
- is a Mail::Reporter
-
- Mail::Message::Field::Full is extended by
- Mail::Message::Field::Structured
- Mail::Message::Field::Unstructured
-
-
-=head1 SYNOPSIS
-
- !! UNDER CONSTRUCTION
- !! The details of this module are NOT FINISHED yet
- !! Most parts are already usable, however. With care!
-
- # Getting to understand the complexity of a header field ...
-
- my $fast = $msg->head->get('subject');
- my $full = Mail::Message::Field::Full->from($fast);
-
- my $full = $msg->head->get('subject')->study; # same
- my $full = $msg->head->study('subject'); # same
- my $full = $msg->get('subject'); # same
-
- # ... or build a complex header field yourself
-
- my $f = Mail::Message::Field::Full->new('To');
- my $f = Mail::Message::Field::Full->new('Subject: hi!');
- my $f = Mail::Message::Field::Full->new(Subject => 'hi!');
-
-
-=head1 DESCRIPTION
-
-This is the I<full> implementation of a header field: it has I<full>
-understanding of all predefined header fields. These objects will be
-quite slow, because header fields can be very complex. Of course, this
-class delivers the optimal result, but for a quite large penalty in
-performance and memory consumption. Are you willing to accept?
-
-This class supports the common header description from RFC2822 (formerly
-RFC822), the extensions with respect to character set encodings as specified
-in RFC2047, and the extensions on language specification and long parameter
-wrapping from RFC2231. If you do not need the latter two, then the
-L<Mail::Message::Field::Fast|Mail::Message::Field::Fast> and L<Mail::Message::Field::Flex|Mail::Message::Field::Flex>
-are enough for your application.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-In string context, the decoded body is returned, as if L<decodedBody()|Mail::Message::Field::Full/"Access to the body">
-would have been called.
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Field/"Constructors">
-
-=back
-
-Mail::Message::Field::Full-E<gt>B<from>(FIELD, OPTIONS)
-
-=over 4
-
-Convert any FIELD (a L<Mail::Message::Field|Mail::Message::Field> object) into a new
-L<Mail::Message::Field::Full|Mail::Message::Field::Full> object. This conversion is done the hard
-way: the string which is produced by the original object is parsed
-again. Usually, the string which is parsed is exactly the line (or lines)
-as found in the original input source, which is a good thing because Full
-fields are much more carefull with the actual content.
-
-OPTIONS are passed to the constructor (see L<new()|Mail::Message::Field::Full/"METHODS">). In any case, some
-extensions of this Full field class is returned. It depends on which
-field is created what kind of class we get.
-
-I<Example:>
-
- my $fast = $msg->head->get('subject');
- my $full = Mail::Message::Field::Full->from($fast);
-
- my $full = $msg->head->get('subject')->study; # same
- my $full = $msg->head->study('subject'); # same
- my $full = $msg->get('subject'); # same
-
-=back
-
-Mail::Message::Field::Full-E<gt>B<new>(DATA)
-
-=over 4
-
-Creating a new field object the correct way is a lot of work, because
-there is so much freedom in the RFCs, but at the same time so many
-restrictions. Most fields are implemented, but if you have your own
-field (and do no want to contribute it to MailBox), then simply call
-new on your own package.
-
-You have the choice to instantiate the object as string or in prepared
-parts:
-
-=over 4
-
-=item * B<new> LINE, OPTIONS
-
-Pass a LINE as it could be found in a file: a (possibly folded) line
-which is terminated by a new-line.
-
-=item * B<new> NAME, [BODY], OPTIONS
-
-A set of values which shape the line.
-
-=back
-
-The NAME is a wellformed header name (you may use wellformedName()) to
-be sure about the casing. The BODY is a string, one object, or an
-ref-array of objects. In case of objects, they must fit to the
-constructor of the field: the types which are accepted may differ.
-The optional ATTRIBUTE list contains L<Mail::Message::Field::Attribute|Mail::Message::Field::Attribute>
-objects. Finally, there are some OPTIONS.
-
- Option Defined in Default
- charset undef
- encoding C<'q'>
- force false
- language undef
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. charset STRING
-
-=over 4
-
-The body is specified in utf8, and must become 7-bits ascii to be
-transmited. Specify a charset to which the multi-byte utf8 is converted
-before it gets encoded. See L<encode()|Mail::Message::Field::Full/"Internals">, which does the job.
-
-=back
-
-. encoding 'q'|'Q'|'b'|'B'
-
-=over 4
-
-Non-ascii characters are encoded using Quoted-Printable ('q' or 'Q') or
-Base64 ('b' or 'B') encoding.
-
-=back
-
-. force BOOLEAN
-
-=over 4
-
-Enforce encoding in the specified charset, even when it is not needed
-because the body does not contain any non-ascii characters.
-
-=back
-
-. language STRING
-
-=over 4
-
-The language used can be specified, however is rarely used my mail clients.
-
-=back
-
-. log LEVEL
-
-. trace LEVEL
-
-I<Example:>
-
- my $s = Mail::Message::Field::Full->new('Subject: Hello World');
- my $s = Mail::Message::Field::Full->new('Subject', 'Hello World');
-
- my @attrs = (Mail::Message::Field::Attribute->new(...), ...);
- my @options = (extra => 'the color blue');
- my $t = Mail::Message::Field::Full->new(To => \@addrs, @attrs, @options);
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field::Full-E<gt>B<isStructured>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<decodedBody>(OPTIONS)
-
-=over 4
-
-Returns the unfolded body of the field, where encodings are resolved. The
-returned line will still contain comments and such. The OPTIONS are passed
-to the decoder, see L<decode()|Mail::Message::Field::Full/"Internals">.
-
-BE WARNED: if the field is a structured field, the content may change syntax,
-because of encapsulated special characters. By default, the body is decoded
-as text, which results in a small difference within comments as well
-(read the RFC).
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field::Full-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attribute>(NAME [, VALUE])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<beautify>
-
-=over 4
-
-For structured header fields, this removes the original encoding of the
-field's body (the format as it was offered to L<parse()|Mail::Message::Field::Full/"Parsing">), therefore the
-next request for the field will have to re-produce the read data clean
-and nice. For unstructured bodies, this method doesn't do a thing.
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createComment>(STRING, OPTIONS)
-
-Mail::Message::Field::Full-E<gt>B<createComment>(STRING, OPTIONS)
-
-=over 4
-
-Create a comment to become part in a field. Comments are automatically
-included within parenthesis. Matching pairs of parenthesis are
-permitted within the STRING. When a non-matching parenthesis are used,
-it is only permitted with an escape (a backslash) in front of them.
-These backslashes will be added automatically if needed (don't worry!).
-Backslashes will stay, except at the end, where it will be doubled.
-
-The OPTIONS are C<charset>, C<language>, and C<encoding> as always.
-The created comment is returned.
-
-=back
-
-$obj-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-Mail::Message::Field::Full-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-=over 4
-
-A phrase is a text which plays a well defined role. This is the main
-difference with comments, which have do specified meaning. Some special
-characters in the phrase will cause it to be surrounded with double
-quotes: do not specify them yourself.
-
-The OPTIONS are C<charset>, C<language>, and C<encoding> as always.
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field::Full-E<gt>B<toDate>([TIME])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field::Full-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Other methods">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<decode>(STRING, OPTIONS)
-
-Mail::Message::Field::Full-E<gt>B<decode>(STRING, OPTIONS)
-
-=over 4
-
-Decode field encoded STRING to an utf8 string. The input STRING is part of
-a header field, and as such, may contain encoded words in C<=?...?.?...?=>
-format defined by RFC2047. The STRING may contain multiple encoded parts,
-maybe using different character sets.
-
-Be warned: you MUST first interpret the field into parts, like phrases and
-comments, and then decode each part separately, otherwise the decoded text
-may interfere with your markup characters.
-
-Be warned: language information, which is defined in RFC2231, is ignored.
-
- Option Defined in Default
- is_text C<1>
-
-. is_text BOOLEAN
-
-=over 4
-
-Encoding on text is slightly more complicated than encoding structured data,
-because it contains blanks. Visible blanks have to be ignored between two
-encoded words in the text, but not when an encoded word follows or preceeds
-an unencoded word. Phrases and comments are texts.
-
-=back
-
-I<Example:>
-
- print Mail::Message::Field::Full->decode('=?iso-8859-1?Q?J=F8rgen?=');
- # prints JE<0slash>rgen
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<encode>(STRING, OPTIONS)
-
-=over 4
-
-Encode the (possibly utf8 encoded) STRING to a string which is acceptable
-to the RFC2047 definition of a header: only containing us-ascii characters.
-
- Option Defined in Default
- charset C<'us-ascii'>
- encoding C<'q'>
- force <flase>
- language undef
-
-. charset STRING
-
-=over 4
-
-STRING is an utf8 string which has to be translated into any byte-wise
-character set for transport, because MIME-headers can only contain ascii
-characters.
-
-=back
-
-. encoding 'q'|'Q'|'b'|'B'
-
-=over 4
-
-The character encoding to be used. With C<q> or C<Q>, quoted-printable
-encoding will be used. With C<b > or C<B >, base64 encoding will be taken.
-
-=back
-
-. force BOOLEAN
-
-=over 4
-
-Encode the string, even when it only contains us-ascii characters. By
-default, this is off because it decreases readibility of the produced
-header fields.
-
-=back
-
-. language STRING
-
-=over 4
-
-RFC2231 defines how to specify language encodings in encoded words. The
-STRING is a strandard iso language name.
-
-=back
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field::Full-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-=head2 Parsing
-
-
-$obj-E<gt>B<consumeComment>(STRING)
-
-Mail::Message::Field::Full-E<gt>B<consumeComment>(STRING)
-
-=over 4
-
-Try to read a comment from the STRING. When successful, the comment
-without encapsulation parenthesis is returned, together with the rest
-of the string.
-
-=back
-
-$obj-E<gt>B<consumeDotAtom>(STRING)
-
-=over 4
-
-Returns three elemens: the atom-text, the rest string, and the
-concatenated comments. Both atom and comments can be undef.
-
-=back
-
-$obj-E<gt>B<consumePhrase>(STRING)
-
-Mail::Message::Field::Full-E<gt>B<consumePhrase>(STRING)
-
-=over 4
-
-Take the STRING, and try to strip-off a valid phrase. In the obsolete
-phrase syntax, any sequence of words is accepted as phrase (as long as
-certain special characters are not used). RFC2882 is stricter: only
-one word or a quoted string is allowed. As always, the obsolete
-syntax is accepted, and the new syntax is produced.
-
-This method returns two elements: the phrase (or undef) followed
-by the resulting string. The phrase will be removed from the optional
-quotes. Be warned that C<""> will return an empty, valid phrase.
-
-I<Example:>
-
- my ($phrase, $rest) = $field->consumePhrase( q["hi!" <sales at example.com>] );
-
-=back
-
-$obj-E<gt>B<parse>(STRING)
-
-=over 4
-
-Get the detailed information from the STRING, and store the data found
-in the field object. The accepted input is very field type dependent.
-Unstructured fields do no parsing whatsoever.
-
-=back
-
-$obj-E<gt>B<produceBody>
-
-=over 4
-
-Produce the text for the field, based on the information stored within the
-field object.
-
-Usually, you wish the exact same line as was found in the input source
-of a message. But when you have created a field yourself, it should get
-formatted. You may call L<beautify()|Mail::Message::Field::Full/"Access to the content"> on a preformatted field to enforce
-a call to this method when the field is needed later.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::Full-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::Full-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::Full-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in charset '$charset'
-
-The field is created with an utf8 string which only contains data from the
-specified character set. However, that character set can never be a valid
-name because it contains characters which are not permitted.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Warning:> Illegal character in language '$lang'
-
-The field is created with data which is specified to be in a certain language,
-however, the name of the language cannot be valid: it contains characters
-which are not permitted by the RFCs.
-
-I<Warning:> Illegal encoding '$encoding', used 'q'
-
-The RFCs only permit base64 (C<b > or C<B >) or quoted-printable
-(C<q> or C<Q>) encoding. Other than these four options are illegal.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Full.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Full.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Structured.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,125 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Structured;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Field::Full';
-
-use Mail::Message::Field::Attribute;
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->{MMFS_attrs} = {};
-
- $self->SUPER::init($args);
-
- $self->datum($args->{datum})
- if defined $args->{datum};
-
- my $attr = $args->{attributes} || [];
- $attr = [ %$attr ] if ref $attr eq 'HASH';
-
- while(@$attr)
- { my $name = shift @$attr;
- if(ref $name) { $self->attribute($name) }
- else { $self->attribute($name, shift @$attr) }
- }
-
- $self;
-}
-
-#------------------------------------------
-
-sub clone() { dclone(shift) }
-
-#------------------------------------------
-
-
-sub attribute($;$)
-{ my ($self, $attr) = (shift, shift);
- my $name;
- if(ref $attr) { $name = $attr->name }
- elsif( !@_ ) { return $self->{MMFS_attrs}{lc $attr} }
- else
- { $name = $attr;
- $attr = Mail::Message::Field::Attribute->new($name, @_);
- }
-
- delete $self->{MMFF_body};
- if(my $old = $self->{MMFS_attrs}{$name})
- { $old->mergeComponent($attr);
- return $old;
- }
- else
- { $self->{MMFS_attrs}{$name} = $attr;
- return $attr;
- }
-}
-
-#------------------------------------------
-
-
-sub attributes() { values %{shift->{MMFS_attrs}} }
-
-#------------------------------------------
-
-sub beautify() { delete shift->{MMFF_body} }
-
-#------------------------------------------
-
-
-sub parse($)
-{ my ($self, $string) = @_;
- my $datum = '';
- while(length $string && substr($string, 0, 1) ne ';')
- { (undef, $string) = $self->consumeComment($string);
- $datum .= $1 if $string =~ s/^([^;(]+)//;
- }
- $self->datum($datum);
-
- my $found = '';
- while($string =~ m/\S/)
- { if($string =~ s/^\s*\;\s*// && length $found)
- { my $attr = Mail::Message::Field::Attribute->new($found);
- $self->attribute($attr);
- $found = '';
- }
-
- (undef, $string) = $self->consumeComment($string);
- $string =~ s/^\n//;
- (my $text, $string) = $self->consumePhrase($string);
- $found .= $text if defined $text;
- }
-
- if(length $found)
- { my $attr = Mail::Message::Field::Attribute->new($found);
- $self->attribute($attr);
- }
-
- 1;
-}
-
-#------------------------------------------
-
-sub produceBody()
-{ my $self = shift;
- my $attrs = $self->{MMFS_attrs};
- my $datum = $self->datum;
-
- join '; '
- , (defined $datum ? $datum : '')
- , map {$_->string} @{$attrs}{sort keys %$attrs};
-}
-
-#------------------------------------------
-
-
-sub datum(;$)
-{ my $self = shift;
- @_ ? ($self->{MMFS_datum} = shift) : $self->{MMFS_datum};
-}
-*body = \&datum;
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Structured.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Structured.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,775 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Structured - one line of a structured message header
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Structured
- is a Mail::Message::Field::Full
- is a Mail::Message::Field
- is a Mail::Reporter
-
- Mail::Message::Field::Structured is extended by
- Mail::Message::Field::Addresses
- Mail::Message::Field::URIs
-
-
-=head1 SYNOPSIS
-
- my $f = Mail::Message::Field::Full
- ->new('Content-Type' => 'text/html');
-
- my @encode = (charset => 'jp', use_continuations => 1);
- $f->attribute('filename=passwd');
- $f->attribute(filename => 'passwd', @encode);
-
- my $attr = Mail::Message::Field::Attribute->new(...);
- $f->attribute($attr);
-
-
-=head1 DESCRIPTION
-
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Field/"Constructors">
-
-=back
-
-Mail::Message::Field::Structured-E<gt>B<from>(FIELD, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Constructors">
-
-=back
-
-Mail::Message::Field::Structured-E<gt>B<new>(DATA)
-
-=over 4
-
-=over 4
-
-=item * B<new> LINE
-
-Pass a LINE as it could be found in a file: a (possibly folded) line
-which is terminated by a new-line.
-
-=item * B<new> NAME, BODY, OPTIONS
-
-A set of values which shape the line.
-
-=back
-
-The NAME is a wellformed header name (you may use wellformedName()) to
-be sure about the casing. The BODY is a string, one object, or an
-ref-array of objects. In case of objects, they must fit to the
-constructor of the field: the types which are accepted may differ.
-The optional ATTRIBUTE list contains L<Mail::Message::Field::Attribute|Mail::Message::Field::Attribute>
-objects. Finally, there are some OPTIONS.
-
- Option Defined in Default
- attributes C<[]>
- charset L<Mail::Message::Field::Full> undef
- datum C<undef>
- encoding L<Mail::Message::Field::Full> C<'q'>
- force L<Mail::Message::Field::Full> false
- language L<Mail::Message::Field::Full> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. attributes ATTRS
-
-=over 4
-
-There are various ways to specify these attributes: pass a reference
-to an array which list of key-value pairs representing attributes,
-or reference to a hash containing these pairs, or an array with
-L<Mail::Message::Field::Attribute|Mail::Message::Field::Attribute> objects.
-
-=back
-
-. charset STRING
-
-. datum STRING
-
-=over 4
-
-The method name I<body> is very confusing, even in the RFC. In MailBox,
-for historical reasons, L<body()|Mail::Message::Field/"Access to the body"> returns the past of the field contents
-before the first semi-colon. L<foldedBody()|Mail::Message::Field/"Access to the body"> and L<unfoldedBody()|Mail::Message::Field/"Access to the body">
-address the whole field.
-
-There is no common name for the piece of data before the parameters
-(attributes) in the field-content mentioned in the RFCs, so let's call
-it B<datum>.
-
-=back
-
-. encoding 'q'|'Q'|'b'|'B'
-
-. force BOOLEAN
-
-. language STRING
-
-. log LEVEL
-
-. trace LEVEL
-
-I<Example:> of a structured field
-
-
- my @attrs = (Mail::Message::Field::Attribute->new(...), ...);
- my @options = (extra => 'the color blue');
- my $t = Mail::Message::Field::Full->new(To => \@addrs, @attrs, @options);
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field::Structured-E<gt>B<isStructured>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<decodedBody>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the body">
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field::Structured-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attribute>(OBJECT|(STRING, OPTIONS)|(NAME,VALUE,OPTIONS))
-
-=over 4
-
-Add an attribute to the field. The attributes are added left-to-right into
-the string representation of the field, although the order of the attributes
-is un-important, according to the RFCs.
-
-You may pass a fully prepared L<Mail::Message::Field::Attribute|Mail::Message::Field::Attribute> OBJECT,
-if you like to do all preparations for correct representation of the
-data yourself. You may also pass one STRING, which is a fully prepared
-attribute. This STRING will not be changed, so be careful about quoting
-and encodings.
-
-As third possibility, you can specify an attribute NAME and its VALUE.
-An attribute object will be created for you implicitly in both
-cases where such object is not supplied, passing the OPTIONS. See
-L<Mail::Message::Field::Attribute::new()|Mail::Message::Field::Attribute/"Constructors"> about the available OPTIONS.
-
-The attribute object is returned, however, when continuations are used this
-may be an object you already know about. C<undef> is returned when
-construction fails (when the attribute is incorrect).
-
-I<Example:>
-
- $f->attribute(filename => 'passwd');
- $f->attribute(filename => 'passwd', use_continuations => 0);
-
- my $attr = Mail::Message::Field::Attribute->new(...);
- $f->attribute($attr);
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-Returns a list with all attributes, which are all
-L<Mail::Message::Field::Attribute|Mail::Message::Field::Attribute> objects. The attributes are not
-ordered in any way. The list may be empty. Double attributes or
-continuations are folded into one.
-
-=back
-
-$obj-E<gt>B<beautify>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createComment>(STRING, OPTIONS)
-
-Mail::Message::Field::Structured-E<gt>B<createComment>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-Mail::Message::Field::Structured-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field::Structured-E<gt>B<toDate>([TIME])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field::Structured-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Other methods">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<decode>(STRING, OPTIONS)
-
-Mail::Message::Field::Structured-E<gt>B<decode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<encode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field::Structured-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-=head2 Parsing
-
-
-$obj-E<gt>B<consumeComment>(STRING)
-
-Mail::Message::Field::Structured-E<gt>B<consumeComment>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumeDotAtom>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumePhrase>(STRING)
-
-Mail::Message::Field::Structured-E<gt>B<consumePhrase>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<datum>([VALUE])
-
-=over 4
-
-Equivalent to L<body()|Mail::Message::Field/"Access to the body">, but maybe less confusing.
-
-=back
-
-$obj-E<gt>B<parse>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<produceBody>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::Structured-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::Structured-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::Structured-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in charset '$charset'
-
-The field is created with an utf8 string which only contains data from the
-specified character set. However, that character set can never be a valid
-name because it contains characters which are not permitted.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Warning:> Illegal character in language '$lang'
-
-The field is created with data which is specified to be in a certain language,
-however, the name of the language cannot be valid: it contains characters
-which are not permitted by the RFCs.
-
-I<Warning:> Illegal encoding '$encoding', used 'q'
-
-The RFCs only permit base64 (C<b > or C<B >) or quoted-printable
-(C<q> or C<Q>) encoding. Other than these four options are illegal.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Structured.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Structured.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/URIs.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,79 +0,0 @@
-use warnings;
-
-package Mail::Message::Field::URIs;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Field::Structured';
-use Carp 'confess';
-
-use URI;
-
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- my ($body, @body);
- if($body = delete $args->{body})
- { @body = ref $body eq 'ARRAY' ? @$body : ($body);
- return () unless @body;
- }
-
- $self->{MMFU_uris} = [];
-
- if(@body > 1 || ref $body[0])
- { $self->addURI($_) foreach @body;
- }
- elsif(defined $body)
- { $body = "<$body>\n" unless index($body, '<') >= 0;
- $args->{body} = $body;
- }
-
- $self->SUPER::init($args);
-}
-
-#------------------------------------------
-
-sub parse($)
-{ my ($self, $string) = @_;
- my @raw = $string =~ m/\<([^>]+)\>/g; # simply ignore all but <>
- $self->addURI($_) foreach @raw;
- $self;
-}
-
-#------------------------------------------
-
-sub produceBody()
-{ my @uris = sort map { $_->as_string } shift->URIs;
- local $" = '>, <';
- @uris ? "<@uris>" : undef;
-}
-
-#------------------------------------------
-
-
-sub addURI(@)
-{ my $self = shift;
- my $uri = ref $_[0] ? shift : URI->new(@_);
- push @{$self->{MMFU_uris}}, $uri->canonical if defined $uri;
- $uri;
-}
-
-#------------------------------------------
-
-
-sub URIs() { @{shift->{MMFU_uris}} }
-
-#------------------------------------------
-
-
-sub addAttribute($;@)
-{ my $self = shift;
- $self->log(ERROR => 'No attributes for URI fields.');
- $self;
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/URIs.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/URIs.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,753 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::URIs - message header field with uris
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::URIs
- is a Mail::Message::Field::Structured
- is a Mail::Message::Field::Full
- is a Mail::Message::Field
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $f = Mail::Message::Field->new('List-Post' => 'http://x.org/');
-
- my $g = Mail::Message::Field->new('List-Post');
- $g->addURI('http://x.org');
-
- my $uri = URI->new(...);
- $g->addURI($uri);
-
- my @uris = $g->URIs;
-
-
-=head1 DESCRIPTION
-
-More recent RFCs prefer uri field notation over the various differentiated
-syntaxes. Especially the mailing-list RFCs use these fields all the
-time. This class can maintain these fields.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Field/"Constructors">
-
-=back
-
-Mail::Message::Field::URIs-E<gt>B<from>(FIELD, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Constructors">
-
-=back
-
-Mail::Message::Field::URIs-E<gt>B<new>(DATA)
-
-=over 4
-
- Option Defined in Default
- attributes L<Mail::Message::Field::Structured> <ignored>
- charset L<Mail::Message::Field::Full> undef
- datum L<Mail::Message::Field::Structured> C<undef>
- encoding L<Mail::Message::Field::Full> C<'q'>
- force L<Mail::Message::Field::Full> false
- language L<Mail::Message::Field::Full> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. attributes ATTRS
-
-. charset STRING
-
-. datum STRING
-
-. encoding 'q'|'Q'|'b'|'B'
-
-. force BOOLEAN
-
-. language STRING
-
-. log LEVEL
-
-. trace LEVEL
-
-I<Example:>
-
- my $mmfu = 'Mail::Message::Field::URIs;
- my $f = $mmfu->new('List-Post' => 'mailto:x at y.com');
- my $f = $mmfu->new('List-Post' => '<mailto:x at y.com>');
- my $f = $mmfu->new('List-Post: <mailto:x at y.com>');
- my $f = $mmfu->new('List-Post' => [ $uri, 'http://x.org' ]);
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field::URIs-E<gt>B<isStructured>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<decodedBody>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the body">
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field::URIs-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<URIs>
-
-=over 4
-
-Returns a list with all URIs defined by the field. Mind the lower-case
-'s' at the enc of the name.
-
-I<Example:>
-
- my @uris = $field->URIs;
-
-=back
-
-$obj-E<gt>B<addAttribute>(...)
-
-=over 4
-
-Attributes are not supported for URI fields.
-
-=back
-
-$obj-E<gt>B<addURI>(URI)
-
-=over 4
-
-Add an URI to the field. The URI can be specified as URI object
-or as string which will be turned into an URI object. The added
-URI is returned.
-
-I<Example:> adding an URI to an URI field
-
-
- my $f = Mail::Message::Field::URI->new('List-Post');
-
- my $uri = URI->new("http://x.org");
- $f->addURI($uri);
-
- $f->addURI("http://y.org"); # simpler
- $f->addURI("//y.org", "http");
-
-=back
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attribute>(OBJECT|(STRING, OPTIONS)|(NAME,VALUE,OPTIONS))
-
-=over 4
-
-See L<Mail::Message::Field::Structured/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-See L<Mail::Message::Field::Structured/"Access to the content">
-
-=back
-
-$obj-E<gt>B<beautify>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createComment>(STRING, OPTIONS)
-
-Mail::Message::Field::URIs-E<gt>B<createComment>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-Mail::Message::Field::URIs-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field::URIs-E<gt>B<toDate>([TIME])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field::URIs-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Other methods">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<decode>(STRING, OPTIONS)
-
-Mail::Message::Field::URIs-E<gt>B<decode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<encode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field::URIs-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-=head2 Parsing
-
-
-$obj-E<gt>B<consumeComment>(STRING)
-
-Mail::Message::Field::URIs-E<gt>B<consumeComment>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumeDotAtom>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumePhrase>(STRING)
-
-Mail::Message::Field::URIs-E<gt>B<consumePhrase>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<datum>([VALUE])
-
-=over 4
-
-See L<Mail::Message::Field::Structured/"Parsing">
-
-=back
-
-$obj-E<gt>B<parse>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<produceBody>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::URIs-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::URIs-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::URIs-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in charset '$charset'
-
-The field is created with an utf8 string which only contains data from the
-specified character set. However, that character set can never be a valid
-name because it contains characters which are not permitted.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Warning:> Illegal character in language '$lang'
-
-The field is created with data which is specified to be in a certain language,
-however, the name of the language cannot be valid: it contains characters
-which are not permitted by the RFCs.
-
-I<Warning:> Illegal encoding '$encoding', used 'q'
-
-The RFCs only permit base64 (C<b > or C<B >) or quoted-printable
-(C<q> or C<Q>) encoding. Other than these four options are illegal.
-
-I<Error:> No attributes for URI fields.
-
-Is is not possible to add attributes to URI fields: it is not permitted
-by the RFCs.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/URIs.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/URIs.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Unstructured.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,33 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field::Unstructured;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Field::Full';
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- if($args->{body} && ($args->{encoding} || $args->{charset}))
- { $args->{body} = $self->encode($args->{body}, %$args);
- }
-
- $self->SUPER::init($args) or return;
-
- $self->log(WARNING=>"Attributes are not supported for unstructured fields")
- if defined $args->{attributes};
-
- $self->log(WARNING => "No extras for unstructured fields")
- if defined $args->{extra};
-
- $self;
-}
-
-#------------------------------------------
-
-
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Unstructured.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Unstructured.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,697 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field::Unstructured - smart unstructured field
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field::Unstructured
- is a Mail::Message::Field::Full
- is a Mail::Message::Field
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $f = Mail::Message::Field::Unstructured->new(Comments => 'hi!');
-
-
-=head1 DESCRIPTION
-
-Unstructured fields do contain information which is not restricted in
-any way. RFC2822 defines some unstructured fields, but by default all
-unknown fields are unstructured as well. Things like attributes and
-comments have no meaning for unstructured fields, but encoding does.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-See L<Mail::Message::Field/"OVERLOADED">
-
-=back
-
-overload: B<stringification>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Field/"Constructors">
-
-=back
-
-Mail::Message::Field::Unstructured-E<gt>B<from>(FIELD, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Constructors">
-
-=back
-
-Mail::Message::Field::Unstructured-E<gt>B<new>(DATA)
-
-=over 4
-
-When the DATA is specified as single line, the content part is considered to
-be correcly (character) encoded and escaped. Typically, it is a line as
-read from file. The folding of the line is kept as is.
-
-In case more than one argument is provided, the second is considered the BODY.
-Attributes and other special things are not defined for unstructured fields,
-and therefore not valid options. The BODY can be a single string, a single
-OBJECT, or an array of OBJECTS. The objects are stringified (into a comma
-separated list). Each BODY element is interpreted with the specified encoding.
-
-When the BODY is empty, the construction of the object fails: C<undef> is
-returned.
-
- Option Defined in Default
- charset L<Mail::Message::Field::Full> undef
- encoding L<Mail::Message::Field::Full> C<'q'>
- force L<Mail::Message::Field::Full> false
- language L<Mail::Message::Field::Full> undef
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. charset STRING
-
-. encoding 'q'|'Q'|'b'|'B'
-
-. force BOOLEAN
-
-. language STRING
-
-. log LEVEL
-
-. trace LEVEL
-
-I<Example:>
-
- my $s = Mail::Message::Field::Unstructured->new('Comment', 'Hi!');
-
- # Use autodetect
- my $s = Mail::Message::Field::Full->new('Comment', 'Hi!');
- my $s = Mail::Message::Field::Full->new('Comment: Hi!');
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field::Unstructured-E<gt>B<isStructured>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-See L<Mail::Message::Field/"The field">
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the name">
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<decodedBody>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the body">
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field::Unstructured-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the body">
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attribute>(NAME [, VALUE])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<beautify>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createComment>(STRING, OPTIONS)
-
-Mail::Message::Field::Unstructured-E<gt>B<createComment>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-Mail::Message::Field::Unstructured-E<gt>B<createPhrase>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Access to the content">
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field::Unstructured-E<gt>B<toDate>([TIME])
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-See L<Mail::Message::Field/"Access to the content">
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field::Unstructured-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Other methods">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<decode>(STRING, OPTIONS)
-
-Mail::Message::Field::Unstructured-E<gt>B<decode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<encode>(STRING, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Internals">
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field::Unstructured-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field/"Internals">
-
-=back
-
-=head2 Parsing
-
-
-$obj-E<gt>B<consumeComment>(STRING)
-
-Mail::Message::Field::Unstructured-E<gt>B<consumeComment>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumeDotAtom>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<consumePhrase>(STRING)
-
-Mail::Message::Field::Unstructured-E<gt>B<consumePhrase>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<parse>(STRING)
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-$obj-E<gt>B<produceBody>
-
-=over 4
-
-See L<Mail::Message::Field::Full/"Parsing">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field::Unstructured-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field::Unstructured-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field::Unstructured-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in charset '$charset'
-
-The field is created with an utf8 string which only contains data from the
-specified character set. However, that character set can never be a valid
-name because it contains characters which are not permitted.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Warning:> Illegal character in language '$lang'
-
-The field is created with data which is specified to be in a certain language,
-however, the name of the language cannot be valid: it contains characters
-which are not permitted by the RFCs.
-
-I<Warning:> Illegal encoding '$encoding', used 'q'
-
-The RFCs only permit base64 (C<b > or C<B >) or quoted-printable
-(C<q> or C<Q>) encoding. Other than these four options are illegal.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field/Unstructured.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field/Unstructured.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,493 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Field;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Carp;
-use Mail::Address;
-use POSIX 'strftime';
-use IO::Handle;
-
-our %_structured; # not to be used directly: call isStructured!
-my $default_wrap_length = 78;
-
-
-use overload qq("") => sub { $_[0]->unfoldedBody }
- , '+0' => sub { $_[0]->toInt || 0 }
- , bool => sub {1}
- , cmp => sub { $_[0]->unfoldedBody cmp "$_[1]" }
- , '<=>' => sub { $_[2]
- ? $_[1] <=> $_[0]->toInt
- : $_[0]->toInt <=> $_[1]
- }
- , fallback => 1;
-
-#------------------------------------------
-
-
-sub new(@)
-{ my $class = shift;
- if($class eq __PACKAGE__) # bootstrap
- { require Mail::Message::Field::Fast;
- return Mail::Message::Field::Fast->new(@_);
- }
- $class->SUPER::new(@_);
-}
-
-#------------------------------------------
-
-
-sub length { length shift->folded }
-
-#------------------------------------------
-
-
-BEGIN {
-%_structured = map { (lc($_) => 1) }
- qw/To Cc Bcc From Date Reply-To Sender
- Resent-Date Resent-From Resent-Sender Resent-To Return-Path
- List-Help List-Post List-Unsubscribe Mailing-List
- Received References Message-ID In-Reply-To
- Content-Length Content-Type Content-Disposition
- Delivered-To
- Lines
- MIME-Version
- Precedence
- Status/;
-}
-
-sub isStructured(;$)
-{ my $name = ref $_[0] ? shift->name : $_[1];
- exists $_structured{lc $name};
-}
-
-#------------------------------------------
-
-
-sub print(;$)
-{ my $self = shift;
- my $fh = shift || select;
- $fh->print(scalar $self->folded);
-}
-
-#------------------------------------------
-
-
-sub toString(;$) {shift->string(@_)}
-sub string(;$)
-{ my $self = shift;
- return $self->folded unless @_;
-
- my $wrap = shift || $default_wrap_length;
- my $name = $self->Name;
- my @lines = $self->fold($name, $self->unfoldedBody, $wrap);
- $lines[0] = $name . ':' . $lines[0];
- wantarray ? @lines : join('', @lines);
-}
-
-#------------------------------------------
-
-
-sub toDisclose()
-{ shift->name !~ m!^(?: (?:x-)?status
- | (?:resent-)?bcc
- | Content-Length
- | x-spam-
- ) $!x;
-}
-
-#------------------------------------------
-
-
-sub nrLines() { my @l = shift->foldedBody; scalar @l }
-
-#------------------------------------------
-
-
-*size = \&length;
-
-#------------------------------------------
-
-
-# attempt to change the case of a tag to that required by RFC822. That
-# being all characters are lowercase except the first of each
-# word. Also if the word is an `acronym' then all characters are
-# uppercase. We, rather arbitrarily, decide that a word is an acronym
-# if it does not contain a vowel and isn't the well-known 'Cc' or
-# 'Bcc' headers.
-
-my %wf_lookup
- = qw/mime MIME ldap LDAP soap SOAP swe SWE
- bcc Bcc cc Cc id ID/;
-
-sub wellformedName(;$)
-{ my $thing = shift;
- my $name = @_ ? shift : $thing->name;
-
- join '-',
- map { $wf_lookup{lc $_} || ( /[aeiouyAEIOUY]/ ? ucfirst lc : uc ) }
- split /\-/, $name, -1;
-}
-
-#------------------------------------------
-
-
-sub folded { shift->notImplemented }
-
-#------------------------------------------
-
-
-sub body()
-{ my $self = shift;
- my $body = $self->unfoldedBody;
- return $body unless $self->isStructured;
-
- $body =~ s/\s*\;.*//s;
- $body;
-}
-
-#------------------------------------------
-
-
-sub foldedBody { shift->notImplemented }
-
-#------------------------------------------
-
-
-sub unfoldedBody { shift->notImplemented }
-
-#------------------------------------------
-
-
-sub stripCFWS($)
-{ my $thing = shift;
-
- # get (folded) data
- my $string = @_ ? shift : $thing->foldedBody;
-
- # remove comments
- my $r = '';
- my $in_dquotes = 0;
- my $open_paren = 0;
-
- my @s = split m/([()"])/, $string;
- while(@s)
- { my $s = shift @s;
-
- if(CORE::length($r)&& substr($r, -1) eq "\\") { $r .= $s }
- elsif($s eq '"') { $in_dquotes = not $in_dquotes; $r .= $s }
- elsif($s eq '(' && !$in_dquotes) { $open_paren++ }
- elsif($s eq ')' && !$in_dquotes) { $open_paren-- }
- elsif($open_paren) {} # in comment
- else { $r .= $s }
- }
-
- # beautify and unfold at the same time
- for($r)
- { s/\s+/ /gs;
- s/\s+$//;
- s/^\s+//;
- }
-
- $r;
-}
-
-#------------------------------------------
-
-
-sub comment(;$)
-{ my $self = shift;
- return undef unless $self->isStructured;
-
- my $body = $self->unfoldedBody;
-
- if(@_)
- { my $comment = shift;
- $body =~ s/\s*\;.*//;
- $body .= "; $comment" if defined $comment && CORE::length($comment);
- $self->unfoldedBody($body);
- return $comment;
- }
-
- $body =~ s/.*?\;\s*// ? $body : '';
-}
-
-#------------------------------------------
-
-sub content() { shift->unfoldedBody } # Compatibility
-
-#------------------------------------------
-
-
-sub attribute($;$)
-{ my ($self, $attr) = (shift, shift);
- my $body = $self->unfoldedBody;
-
- unless(@_)
- { return
- $body =~ m/\b$attr\s*\=\s*
- ( "( (?: [^"]|\\" )* )"
- | '( (?: [^']|\\' )* )'
- | ([^;\s]*)
- )
- /xi ? $+ : undef;
- }
-
- my $value = shift;
- unless(defined $value) # remove attribute
- { for($body)
- { s/\b$attr\s*=\s*'([^']|\\')*'//i
- or s/\b$attr\s*=\s*"([^"]|\\")*"//i
- or s/\b$attr\s*=\s*[;\s]*//i;
- }
- $self->unfoldedBody($body);
- return undef;
- }
-
- (my $quoted = $value) =~ s/"/\\"/g;
- for($body)
- { s/\b$attr\s*=\s*'([^']|\\')*'/$attr="$quoted"/i
- or s/\b$attr\s*=\s*"([^"]|\\")*"/$attr="$quoted"/i
- or s/\b$attr\s*=\s*[^;\s]+/$attr="$quoted"/i
- or do { $_ .= qq(; $attr="$quoted") }
- }
-
- $self->unfoldedBody($body);
- $value;
-}
-
-#------------------------------------------
-
-
-sub attributes()
-{ my $self = shift;
- my $body = $self->unfoldedBody;
-
- my @attrs;
- while($body =~ m/\b(\w+)\s*\=\s*
- ( "( (?: [^"]|\\" )* )"
- | '( (?: [^']|\\' )* )'
- | ([^;\s]*)
- )
- /xig)
- { push @attrs, $1 => $+;
- }
-
- @attrs;
-}
-
-#------------------------------------------
-
-
-sub toInt()
-{ my $self = shift;
- return $1 if $self->body =~ m/^\s*(\d+)\s*$/;
-
- $self->log(WARNING => "Field content is not numerical: ". $self->toString);
-
- return undef;
-}
-
-#------------------------------------------
-
-
-my @weekday = qw/Sun Mon Tue Wed Thu Fri Sat Sun/;
-my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;
-
-sub toDate(@)
-{ my $class = shift;
- my @time = @_== 0 ? localtime() : @_==1 ? localtime(shift) : @_;
- my $format = "$weekday[$time[6]], %d $month[$time[4]] %Y %H:%M:%S %z";
- my $time = strftime($format, @time);
-
- # for C libs which do not (GNU compliantly) support %z
- $time =~ s/ (\%z|[A-Z ]+)$/_tz_offset($1)/e;
-
- $time;
-}
-
-sub _tz_offset($)
-{ my $zone = shift;
- require Time::Zone;
-
- my $diff = $zone eq '%z' ? Time::Zone::tz_local_offset()
- : Time::Zone::tz_offset($zone);
- my $minutes = int((abs($diff)+0.01) / 60); # float rounding errors
- my $hours = int(($minutes+0.01) / 60);
- $minutes -= $hours * 60;
- sprintf( ($diff < 0 ? " -%02d%02d" : " +%02d%02d"), $hours, $minutes);
-}
-
-#------------------------------------------
-
-
-sub addresses() { Mail::Address->parse(shift->unfoldedBody) }
-
-#------------------------------------------
-
-
-sub study()
-{ my $self = shift;
- require Mail::Message::Field::Full;
- Mail::Message::Field::Full->new(scalar $self->folded);
-}
-
-#------------------------------------------
-
-
-sub dateToTimestamp($)
-{ my $string = $_[0]->stripCFWS($_[1]);
-
- # in RFC822, FWSes can appear within the time.
- $string =~ s/(\d\d)\s*\:\s*(\d\d)\s*\:\s*(\d\d)/$1:$2:$3/;
-
- require Date::Parse;
- Date::Parse::str2time($string, 'GMT');
-}
-
-
-#------------------------------------------
-
-
-#=notice Empty field: $name
-#Empty fields are not allowed, however sometimes found in messages constructed
-#by broken applications. You probably want to ignore this message unless you
-#wrote this broken application yourself.
-
-sub consume($;$)
-{ my $self = shift;
- my ($name, $body) = defined $_[1] ? @_ : split(/\s*\:\s*/, (shift), 2);
-
- Mail::Reporter->log(WARNING => "Illegal character in field name $name")
- if $name =~ m/[^\041-\071\073-\176]/;
-
- #
- # Compose the body.
- #
-
- if(ref $body) # Objects or array
- { my $flat = $self->stringifyData($body) or return ();
- $body = $self->fold($name, $flat);
- }
- elsif($body !~ s/\n+$/\n/g) # Added by user...
- { $body = $self->fold($name, $body);
- }
- else # Created by parser
- { # correct erroneous wrap-seperators (dos files under UNIX)
- $body =~ s/[\012\015]+/\n/g;
- $body =~ s/^[ \t]*/ /; # start with one blank, folding kept unchanged
-
- $self->log(NOTICE => "Empty field: $name")
- if $body eq " \n";
- }
-
- ($name, $body);
-}
-
-#------------------------------------------
-
-
-sub stringifyData($)
-{ my ($self, $arg) = (shift, shift);
- my @addr;
- foreach my $obj (ref $arg eq 'ARRAY' ? @$arg : ($arg))
- { next unless defined $obj;
-
- if(!ref $obj) { push @addr, $obj; next }
- if($obj->isa('Mail::Address')) { push @addr, $obj->format; next }
-
- if($obj->isa('Mail::Identity') || $obj->isa('User::Identity'))
- { require Mail::Message::Field::Address;
- push @addr, Mail::Message::Field::Address->coerce($obj)->string;
- }
- elsif($obj->isa('User::Identity::Collection::Emails'))
- { my @roles = $obj->roles or next;
- require Mail::Message::Field::AddrGroup;
- my $group = Mail::Message::Field::AddrGroup->coerce($obj);
- push @addr, $group->string if $group;
- }
- else
- { # any other object is stringified
- push @addr, "$obj";
- }
- }
-
- @addr ? join(', ', at addr) : undef;
-}
-
-#------------------------------------------
-
-
-sub setWrapLength(;$)
-{ my $self = shift;
-
- $self->foldedBody(scalar $self->fold($self->Name, $self->unfoldedBody, @_))
- if @_;
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub defaultWrapLength(;$)
-{ my $self = shift;
- @_ ? ($default_wrap_length = shift) : $default_wrap_length;
-}
-
-#------------------------------------------
-
-
-sub fold($$;$)
-{ my $thing = shift;
- my $name = shift;
- my $line = shift;
- my $wrap = shift || $default_wrap_length;
-
- $line =~ s/\n\s/ /gms; # Remove accidental folding
- return " \n" unless CORE::length($line); # empty field
-
- my @folded;
- while(1)
- { my $max = $wrap - (@folded ? 1 : CORE::length($name) + 2);
- my $min = $max >> 2;
- last if CORE::length($line) < $max;
-
- $line =~ s/^ ( .{$min,$max} # $max to 30 chars
- [;,] # followed at a ; or ,
- )[ \t] # and then a WSP
- //x
- || $line =~ s/^ ( .{$min,$max} ) # $max to 30 chars
- [ \t] # followed by a WSP
- //x
- || $line =~ s/^ ( .{$max,}? ) # longer, but minimal chars
- [ \t] # followed by a WSP
- //x
- || $line =~ s/^ (.*) //x; # everything
-
- push @folded, " $1\n";
- }
-
- push @folded, " $line\n" if CORE::length($line);
- wantarray ? @folded : join('', @folded);
-}
-
-#------------------------------------------
-
-
-sub unfold($)
-{ my $string = $_[1];
- for($string)
- { s/\r?\n//gm;
- s/^ +//;
- }
- $string;
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Field.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1118 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Field - one line of a message header
-
-
-=head1 INHERITANCE
-
- Mail::Message::Field
- is a Mail::Reporter
-
- Mail::Message::Field is extended by
- Mail::Message::Field::Fast
- Mail::Message::Field::Flex
- Mail::Message::Field::Full
-
-
-=head1 SYNOPSIS
-
- my $field = Mail::Message::Field->new(From => 'fish at tux.aq');
- print $field->name;
- print $field->body;
- print $field->comment;
- print $field->content; # body & comment
- $field->print(\*OUT);
- print $field->string;
- print "$field\n";
- print $field->attribute('charset') || 'us-ascii';
-
-
-=head1 DESCRIPTION
-
-This implementation follows the guidelines of rfc2822 as close as possible,
-and may there produce a different output than implementations based on
-the obsolete rfc822. However, the old output will still be accepted.
-
-These objects each store one header line, and facilitates access routines to
-the information hidden in it. Also, you may want to have a look at the
-added methods of a message:
-
- my @from = $message->from;
- my $sender = $message->sender;
- my $subject = $message->subject;
- my $msgid = $message->messageId;
-
- my @to = $message->to;
- my @cc = $message->cc;
- my @bcc = $message->bcc;
- my @dest = $message->destinations;
-
- my $other = $message->get('Reply-To');
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-(stringification) produces the unfolded body of the field, which may
-be what you expect. This is what makes what the field object seems
-to be a simple string. The string is produced by L<unfoldedBody()|Mail::Message::Field/"Access to the body">.
-
-I<Example:>
-
- print $msg->get('subject'); # via overloading
- print $msg->get('subject')->unfoldedBody; # same
-
- my $subject = $msg->get('subject') || 'your mail';
- print "Re: $subject\n";
-
-=back
-
-overload: B<+0>
-
-=over 4
-
-(numification) When the field is numeric, the value will be returned.
-The result is produced by L<toInt()|Mail::Message::Field/"Access to the content">. If the value is not correct,
-a C<0> is produced, to simplify calculations.
-
-=back
-
-overload: B<<=>>
-
-=over 4
-
-(numeric comparison) Compare the integer field contents with something
-else.
-
-I<Example:>
-
- if($msg->get('Content-Length') > 10000) ...
- if($msg->size > 10000) ... ; # same, but better
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-Always true, to make it possible to say C<if($field)>.
-
-=back
-
-overload: B<cmp>
-
-=over 4
-
-(string comparison) Compare the unfolded body of a field with an other
-field or a string, using the buildin C<cmp>.
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-Create a copy of this field object.
-
-=back
-
-Mail::Message::Field-E<gt>B<new>(DATA)
-
-=over 4
-
-See L<Mail::Message::Field::Fast::new()|Mail::Message::Field::Fast/"METHODS">,
-L<Mail::Message::Field::Flex::new()|Mail::Message::Field::Flex/"METHODS">,
-and L<Mail::Message::Field::Full::new()|Mail::Message::Field::Full/"METHODS">.
-By default, a C<Fast> field is produced.
-
- Option Defined in Default
- log L<Mail::Reporter> C<'WARNINGS'>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. log LEVEL
-
-. trace LEVEL
-
-=back
-
-=head2 The field
-
-
-$obj-E<gt>B<isStructured>
-
-Mail::Message::Field-E<gt>B<isStructured>
-
-=over 4
-
-Some fields are described in the RFCs as being I<structured>: having a
-well described syntax. These fields have common ideas about comments
-and the like, what they do not share with unstructured fields, like
-the C<Subject> field.
-
-I<Example:>
-
- my $field = Mail::Message::Field->new(From => 'me');
- if($field->isStructured)
-
- Mail::Message::Field->isStructured('From');
-
-=back
-
-$obj-E<gt>B<length>
-
-=over 4
-
-Returns the total length of the field in characters, which includes the
-field's name, body and folding characters.
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-Returns the number of lines needed to display this header-line.
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-Print the whole header-line to the specified file-handle. One line may
-result in more than one printed line, because of the folding of long
-lines. The FILEHANDLE defaults to the selected handle.
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-Returns the number of bytes needed to display this header-line, Same
-as L<length()|Mail::Message::Field/"The field">.
-
-=back
-
-$obj-E<gt>B<string>([WRAP])
-
-=over 4
-
-Returns the field as string. By default, this returns the same as
-L<folded()|Mail::Message::Field/"Access to the body">. However, the optional WRAP will cause to re-fold to take
-place (without changing the folding stored inside the field).
-
-=back
-
-$obj-E<gt>B<toDisclose>
-
-=over 4
-
-Returns whether this field can be disclosed to other people, for instance
-when sending the message to an other party. Returns a C<true> or C<false>
-condition.
-See also L<Mail::Message::Head::Complete::printUndisclosed()|Mail::Message::Head::Complete/"Access to the header">.
-
-=back
-
-=head2 Access to the name
-
-
-$obj-E<gt>B<Name>
-
-=over 4
-
-Returns the name of this field in original casing. See L<name()|Mail::Message::Field/"Access to the name"> as well.
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-Returns the name of this field, with all characters lower-cased for
-ease of comparison. See L<Name()|Mail::Message::Field/"Access to the name"> as well.
-
-=back
-
-$obj-E<gt>B<wellformedName>([STRING])
-
-=over 4
-
-(Instance method class method)
-As instance method, the current field's name is correctly formatted
-and returned. When a STRING is used, that one is formatted.
-
-I<Example:>
-
- print Mail::Message::Field->Name('content-type')
- # --> Content-Type
-
- my $field = $head->get('date');
- print $field->Name;
- # --> Date
-
-=back
-
-=head2 Access to the body
-
-
-$obj-E<gt>B<body>
-
-=over 4
-
-This method may be what you want, but usually, the L<foldedBody()|Mail::Message::Field/"Access to the body"> and
-L<unfoldedBody()|Mail::Message::Field/"Access to the body"> are what you are looking for. This method is
-cultural heritage, and should be avoided.
-
-Returns the body of the field. When this field is structured, it will
-be B<stripped> from everything what is behind the first semi-color (C<;>).
-In any case, the string is unfolded.
-Whether the field is structured is defined by L<isStructured()|Mail::Message::Field/"The field">.
-
-=back
-
-$obj-E<gt>B<folded>
-
-=over 4
-
-Returns the folded version of the whole header. When the header is
-shorter than the wrap length, a list of one line is returned. Otherwise
-more lines will be returned, all but the first starting with at least
-one blank. See also L<foldedBody()|Mail::Message::Field/"Access to the body"> to get the same information without
-the field's name.
-
-In scalar context, the lines are delived into one string, which is
-a little faster because that's the way they are stored internally...
-
-I<Example:>
-
- my @lines = $field->folded;
- print $field->folded;
- print scalar $field->folded; # faster
-
-=back
-
-$obj-E<gt>B<foldedBody>([BODY])
-
-=over 4
-
-Returns the body as a set of lines. In scalar context, this will be one line
-containing newlines. Be warned about the newlines when you do
-pattern-matching on the result of thie method.
-
-The optional BODY argument changes the field's body. The folding of the
-argument must be correct.
-
-=back
-
-$obj-E<gt>B<stripCFWS>([STRING])
-
-Mail::Message::Field-E<gt>B<stripCFWS>([STRING])
-
-=over 4
-
-Remove the I<comments> and I<folding white spaces> from the STRING. Without
-string and only as instance method, the L<unfoldedBody()|Mail::Message::Field/"Access to the body"> is being stripped
-and returned.
-
-WARNING: This operation is only allowed for structured header fields (which
-are defined by the various RFCs as being so. You don't want parts within
-braces which are in the Subject header line to be removed, to give an
-example.
-
-=back
-
-$obj-E<gt>B<unfoldedBody>([BODY, [WRAP]])
-
-=over 4
-
-Returns the body as one single line, where all folding information (if
-available) is removed. This line will also NOT end on a new-line.
-
-The optional BODY argument changes the field's body. The right folding is
-performed before assignment. The WRAP may be specified to enforce a
-folding size.
-
-I<Example:>
-
- my $body = $field->unfoldedBody;
- print "$field"; # via overloading
-
-=back
-
-=head2 Access to the content
-
-
-$obj-E<gt>B<addresses>
-
-=over 4
-
-Returns a list of Mail::Address objects, which represent the
-e-mail addresses found in this header line.
-
-I<Example:>
-
- my @addr = $message->head->get('to')->addresses;
- my @addr = $message->to;
-
-=back
-
-$obj-E<gt>B<attribute>(NAME [, VALUE])
-
-=over 4
-
-Get the value of an attribute, optionally after setting it to a new value.
-Attributes are part of some header lines, and hide themselves in the
-comment field. If the attribute does not exist, then C<undef> is
-returned. The attribute is still encoded.
-
-I<Example:>
-
- my $field = Mail::Message::Field->new(
- 'Content-Type: text/plain; charset="us-ascii"');
-
- print $field->attribute('charset');
- # --> us-ascii
-
- print $field->attribute('bitmap') || 'no'
- # --> no
-
- $field->atrribute(filename => '/tmp/xyz');
- $field->print;
- # --> Content-Type: text/plain; charset="us-ascii";
- # filename="/tmp/xyz"
- # Automatically folded, and no doubles created.
-
-=back
-
-$obj-E<gt>B<attributes>
-
-=over 4
-
-Returns a list of key-value pairs, where the values are not yet decoded.
-
-I<Example:>
-
- my %attributes = $head->get('Content-Disposition')->attributes;
-
-=back
-
-$obj-E<gt>B<comment>([STRING])
-
-=over 4
-
-Returns the unfolded comment (part after a semi-colon) in a structureed
-header-line. optionally after setting it to a new STRING first.
-When C<undef> is specified as STRING, the comment is removed.
-Whether the field is structured is defined by L<isStructured()|Mail::Message::Field/"The field">.
-
-The I<comment> part of a header field often contains C<attributes>. Often
-it is preferred to use L<attribute()|Mail::Message::Field/"Access to the content"> on them.
-
-=back
-
-$obj-E<gt>B<study>
-
-=over 4
-
-Study the header field in detail: turn on the full parsing and detailed
-understanding of the content of the fields. L<Mail::Message::Field::Fast|Mail::Message::Field::Fast>
-and L<Mail::Message::Field::Fast|Mail::Message::Field::Fast> objects will be transformed into any
-L<Mail::Message::Field::Full|Mail::Message::Field::Full> object.
-
-I<Example:>
-
- my $subject = $msg->head->get('subject')->study;
- my $subject = $msg->head->study('subject'); # same
- my $subject = $msg->study('subject'); # same
-
-=back
-
-$obj-E<gt>B<toDate>([TIME])
-
-Mail::Message::Field-E<gt>B<toDate>([TIME])
-
-=over 4
-
-Convert a timestamp into an rfc2822 compliant date format. This differs
-from the default output of C<localtime> in scalar context. Without
-argument, the C<localtime> is used to get the current time. TIME can
-be specified as one numeric (like the result of C<time()>) and as list
-(like produced by c<localtime()> in list context).
-
-Be sure to have your timezone set right, especially when this script
-runs automatically.
-
-I<Example:>
-
- my $now = time;
- Mail::Message::Field->toDate($now);
- Mail::Message::Field->toDate(time);
-
- Mail::Message::Field->toDate(localtime);
- Mail::Message::Field->toDate; # same
- # returns someting like:
- # Wed, 28 Aug 2002 10:40:25 +0200
-
-=back
-
-$obj-E<gt>B<toInt>
-
-=over 4
-
-Returns the value which is related to this field as integer. A check is
-performed whether this is right.
-
-=back
-
-=head2 Other methods
-
-
-$obj-E<gt>B<dateToTimestamp>(STRING)
-
-Mail::Message::Field-E<gt>B<dateToTimestamp>(STRING)
-
-=over 4
-
-Convert a STRING which represents and RFC compliant time string into
-a timestamp like is produced by the C<time> function.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<consume>(LINE | (NAME,BODY|OBJECTS))
-
-=over 4
-
-Accepts a whole field LINE, or a pair with the field's NAME and BODY. In
-the latter case, the BODY data may be specified as array of OBJECTS which
-are stringified. Returned is a nicely formatted pair of two strings: the
-field's name and a folded body.
-
-This method is called by L<new()|Mail::Message::Field/"Constructors">, and usually not by an application
-program. The details about converting the OBJECTS to a field content
-are explained in L</Specifying field data>.
-
-=back
-
-$obj-E<gt>B<defaultWrapLength>([LENGTH])
-
-=over 4
-
-Any field from any header for any message will have this default wrapping.
-This is maintained in one global variable. Without a specified LENGTH,
-the current value is returned. The default is 78.
-
-=back
-
-$obj-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-Mail::Message::Field-E<gt>B<fold>(NAME, BODY, [MAXCHARS])
-
-=over 4
-
-Make the header field with NAME fold into multiple lines.
-Wrapping is performed by inserting newlines before a blanks in the
-BODY, such that no line exceeds the MAXCHARS and each line is as long
-as possible.
-
-The RFC requests for folding on nice spots, but this request is
-mainly ignored because it would make folding too slow.
-
-=back
-
-$obj-E<gt>B<setWrapLength>([LENGTH])
-
-=over 4
-
-Force the wrapping of this field to the specified LENGTH characters. The
-wrapping is performed with L<fold()|Mail::Message::Field/"Internals"> and the results stored within
-the field object.
-
-I<Example:> refolding the field
-
-
- $field->setWrapLength(99);
-
-=back
-
-$obj-E<gt>B<stringifyData>(STRING|ARRAY|OBJECTS)
-
-=over 4
-
-This method implements the translation of user supplied objects into
-ascii fields. The process is explained in L</Specifying field data>.
-
-=back
-
-$obj-E<gt>B<unfold>(STRING)
-
-=over 4
-
-The reverse action of L<fold()|Mail::Message::Field/"Internals">: all lines which form the body of a field
-are joined into one by removing all line terminators (even the last).
-Possible leading blanks on the first line are removed as well.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Field-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Field-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Field-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Field content is not numerical: $content
-
-The numeric value of a field is requested (for instance the C<Lines> or
-C<Content-Length> fields should be numerical), however the data contains
-weird characters.
-
-I<Warning:> Illegal character in field name $name
-
-A new field is being created which does contain characters not permitted
-by the RFCs. Using this field in messages may break other e-mail clients
-or transfer agents, and therefore mutulate or extinguish your message.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-=head2 Field syntax
-
-Fields are stored in the header of a message, which are represented by
-L<Mail::Message::Head|Mail::Message::Head> objects. A field is a combination of a I<name>,
-I<body>, and I<attributes>. Especially the term "body" is cause for
-confusion: sometimes the attributes are considered to be part of the body.
-
-The name of the field is followed by a colon ("C<:>", not preceeded by
-blanks, but followed by one blank). Each attribute is preceeded by
-a separate semi-colon ("C<;>"). Names of fields are case-insensitive and
-cannot contain blanks.
-
-I<Example:> of fields
-
-
-Correct fields:
-
- Field: hi!
- Content-Type: text/html; charset=latin1
-
-Incorrect fields, but accepted:
-
- Field : wrong, blank before colon
- Field: # wrong, empty
- Field:not nice, blank preferred after colon
- One Two: wrong, blank in name
-
-=head3 Folding fields
-
-Fields which are long can be folded to span more than one line. The real
-limit for lines in messages is only at 998 characters, however such long
-lines are not easy to read without support of an application. Therefore
-rfc2822 (which defines the message syntax) specifies explicitly that
-field lines can be re-formatted into multiple sorter lines without change
-of meaning, by adding new-line characters to any field before any blank or
-tab.
-
-Usually, the lines are reformatted to create lines which are 78 characters
-maximum. Some applications try harder to fold on nice spots, like before
-attributes. Especially the C<Received> field is often manually folded into
-some nice layout. In most cases however, it is preferred to produce lines
-which are as long as possible but max 78.
-
-BE WARNED that all fields can be subjected to folding, and that you usually
-want the unfolded value.
-
-I<Example:> of field folding
-
-
- Subject: this is a short line, and not folded
-
- Subject: this subject field is much longer, and therefore
- folded into multiple
- lines, although one more than needed.
-
-=head3 Structured fields
-
-The rfc2822 describes a large number of header fields explicitly. These
-fields have a defined meaning. For some of the fields, like the C<Subject>
-field, the meaning is straight forward the contents itself. These fields
-are the I<Unstructured Fields>.
-
-Other fields have a well defined internal syntax because their content is
-needed by e-mail applications. For instance, the C<To> field contains
-addresses which must be understood by all applications in the same way.
-These are the I<Structured Fields>, see L<isStructured()|Mail::Message::Field/"The field">.
-
-=head3 Comments in fields
-
-Stuctured fields can contain comments, which are pieces of text enclosed in
-parenthesis. These comments can be placed close to anywhere in the line
-and must be ignored be the application. Not all applications are capable
-of handling comments correctly in all circumstances.
-
-I<Example:> of field comments
-
-
- To: mailbox (Mail::Box mailinglist) <mailbox at overmeer.net>
- Date: Thu, 13 Sep 2001 09:40:48 +0200 (CEST)
- Subject: goodbye (was: hi!)
-
-On the first line, the text "Mail::Box mailinglist" is used as comment.
-Be warned that rfc2822 explicitly states that comments in e-mail address
-specifications should not be considered to contain any usable information.
-
-On the second line, the timezone is specified as comment. The C<Date>
-field format has no way to indicate the timezone of the sender, but only
-contains the timezone difference to UTC, however one could decide to add
-this as comment. Application must ignore this data because the C<Date>
-field is structured.
-
-The last field is unstructured. The text between parantheses is an
-integral part of the subject line.
-
-=head2 Getting a field
-
-As many programs as there are handling e-mail, as many variations on
-accessing the header information are requested. Be careful which way
-you access the data: read the variations described here and decide
-which solution suites your needs best.
-
-=head3 Using get() field
-
-The C<get()> interface is copied from other Perl modules which can
-handle e-mail messages. Many applications which simply replace
-Mail::Internet objects by L<Mail::Message|Mail::Message> objects will work
-without modification.
-
-There is more than one get method. The exact results depend on which
-get you use. When L<Mail::Message::get()|Mail::Message/"The header"> is called, you will get the
-unfolded, stripped from comments, stripped from attributes contents of
-the field as B<string>. Character-set encodings will still be in the
-string. If the same fieldname appears more than once in the header,
-only the last value is returned.
-
-When L<Mail::Message::Head::get()|Mail::Message::Head/"Access to the header"> is called in scalar context, the
-last field with the specified name is returned as field B<object>.
-This object strinigfies into the unfolded contents of the field, including
-attributes and comments. In list context, all appearances of the field
-in the header are returned as objects.
-
-BE WARNED that some lines seem unique, but are not according to the
-official rfc. For instance, C<To> fields can appear more than once.
-If your program calls C<get('to')> in scalar context, some information
-is lost.
-
-I<Example:> of using get()
-
-
- print $msg->get('subject') || 'no subject';
- print $msg->head->get('subject') || 'no subject';
-
- my @to = $msg->head->get('to');
-
-=head3 Using study() field
-
-As the name C<study> already implies, this way of accessing the fields is
-much more thorough but also slower. The C<study> of a field is like a
-C<get>, but provides easy access to the content of the field and handles
-character-set decoding correctly.
-
-The L<Mail::Message::study()|Mail::Message/"The header"> method will only return the last field
-with that name as object. L<Mail::Message::Head::study()|Mail::Message::Head/"Access to the header"> and
-L<Mail::Message::Field::study()|Mail::Message::Field/"Access to the content"> return all fields when used in list
-context.
-
-I<Example:> of using study()
-
-
- print $msg->study('subject') || 'no subject';
- my @rec = $msg->head->study('Received');
-
- my $from = $msg->head->get('From')->study;
- my $from = $msg->head->study('From'); # same
- my @addr = $from->addresses;
-
-=head3 Using resent groups
-
-Some fields belong together in a group of fields. For instance, a set
-of lines is used to define one step in the mail transport process. Each
-step adds a C<Received> line, and optionally some C<Resent-*> lines and
-C<Return-Path>. These groups of lines shall stay together and in order
-when the message header is processed.
-
-The C<Mail::Message::Head::ResentGroup> object simplifies the access to
-these related fields. These resent groups can be deleted as a whole,
-or correctly constructed.
-
-I<Example:> of using resent groups
-
-
- my $rgs = $msg->head->resentGroups;
- $rgs[0]->delete if @rgs;
-
- $msg->head->removeResentGroups;
-
-=head2 The field's data
-
-There are many ways to get the fields info as object, and there are also
-many ways to process this data within the field.
-
-=head3 Access to the field
-
-=over 4
-
-=item * L<string()|Mail::Message::Field/"The field">
-
-Returns the text of the body exactly as will be printed to file when
-L<print()|Mail::Message::Field/"The field"> is called, so name, main body, and attributes.
-
-=item * L<foldedBody()|Mail::Message::Field/"Access to the body">
-
-Returns the text of the body, like L<string()|Mail::Message::Field/"The field">, but without the name of
-the field.
-
-=item * L<unfoldedBody()|Mail::Message::Field/"Access to the body">
-
-Returns the text of the body, like L<foldedBody()|Mail::Message::Field/"Access to the body">, but then with all
-new-lines removed. This is the normal way to get the content of
-unstructured fields. Character-set encodings will still be in place.
-Fields are stringified into their unfolded representation.
-
-=item * L<stripCFWS()|Mail::Message::Field/"Access to the body">
-
-Returns the text of structured fields, where new-lines and comments are
-removed from the string. This is a good start for parsing the field,
-for instance to find e-mail addresses in them.
-
-=item * L<Mail::Message::Field::Full::decodedBody()|Mail::Message::Field::Full/"Access to the body">
-
-Studied fields can produce the unfolded text decoded into utf8 strings.
-This is an expensive process, but the only correct way to get the field's
-data. More useful for people who are not living in ASCII space.
-
-=item * Studied fields
-
-Studied fields have powerful methods to provide ways to access and produce
-the contents of (structured) fields exactly as the involved rfcs prescribe.
-
-=back
-
-=head3 Using simplified field access
-
-Some fields are accessed that often that there are support methods to
-provide simplified access. All these methods are called upon a message
-directly.
-
-I<Example:> of simplified field access
-
-
- print $message->subject;
- print $message->get('subject') || ''; # same
-
- my @from = $message->from; # returns addresses
- $message->reply->send if $message->sender;
-
-The C<sender> method will return the address specified in the C<Sender>
-field, or the first named in the C<From> field. It will return C<undef>
-in case no address is known.
-
-=head3 Specifying field data
-
-Field data can be anything, strongly dependent on the type
-of field at hand. If you decide to contruct the fields very
-carefully via some L<Mail::Message::Field::Full|Mail::Message::Field::Full> extension (like via
-L<Mail::Message::Field::Addresses|Mail::Message::Field::Addresses> objects), then you will have protection
-build-in. However, you can bluntly create any L<Mail::Message::Field|Mail::Message::Field>
-object based on some data.
-
-When you create a field, you may specify a string, object, or an array
-of strings and objects. On the moment, objects are only used to help
-the construction on e-mail addresses, however you may add some of your
-own.
-
-The following rules (implemented in L<stringifyData()|Mail::Message::Field/"Internals">) are obeyed given
-the argument is:
-
-=over 4
-
-=item * a string
-
-The string must be following the (complicated) rules of the rfc2822, and
-is made field content as specified. When the string is not terminated
-by a new-line (C<"\n">) it will be folded according to the standard rules.
-
-=item * a Mail::Address object
-
-The most used Perl object to parse and produce address lines. This object
-does not understand character set encodings in phrases.
-
-=item * a L<Mail::Identity|Mail::Identity> object
-
-As part of the L<User::Identity|User::Identity> distribution, this object has full
-understanding of the meaning of one e-mail address, related to a person.
-All features defined by rfc2822 are implemented.
-
-=item * a L<User::Identity|User::Identity> object
-
-A person is specified, which may have more than one L<Mail::Identity|Mail::Identity>'s
-defined. Some methods, like L<Mail::Message::reply()|Mail::Message::Construct::Reply/"Constructing a message"> and
-L<Mail::Message::forward()|Mail::Message::Construct::Forward/"Constructing a message"> try to select the right e-mail address
-smart (see their method descriptions), but in other cases the first
-e-mail address found is used.
-
-=item * a L<User::Identity::Collection::Emails|User::Identity::Collection::Emails> object
-
-All L<Mail::Identity|Mail::Identity> objects in the collection will be included in
-the field as a group carying the name of the collection.
-
-=item * any other object
-
-For all other objects, the stringification overload is used to produce
-the field content.
-
-=item * an ARRAY
-
-You may also specify an array with a mixture of any of the above. The
-elements will be joined as comma-separated list. If you do not want
-comma's inbetween, you will have to process the array yourself.
-
-=back
-
-I<Example:> specifying simple field data
-
-
- my $f = Mail::Message::Field->new(Subject => 'hi!');
- my $b = Mail::Message->build(Subject => 'monkey');
-
-I<Example:> s specifying e-mail addresses for a field
-
-
- use Mail::Address;
- my $fish = Mail::Address->new('Mail::Box', 'fish at tux.aq');
- print $fish->format; # ==> Mail::Box <fish at tux.aq>
- my $exa = Mail::Address->new(undef, 'me at example.com');
- print $exa->format; # ==> me at example.com
-
- my $b = $msg->build(To => "you at example.com");
- my $b = $msg->build(To => $fish);
- my $b = $msg->build(To => [ $fish, $exa ]);
-
- my @all = ($fish, "you at example.com", $exa);
- my $b = $msg->build(To => \@all);
- my $b = $msg->build(To => [ "xyz", @all ]);
-
-I<Example:> specifying identities for a field
-
-
- use User::Identity;
- my $patrik = User::Identity->new
- ( name => 'patrik'
- , full_name => "Patrik Fältström" # from rfc
- , charset => "ISO-8859-1"
- );
- $patrik->add
- ( email => "him at home.net"
- );
-
- my $b = $msg->build(To => $patrik);
-
- $b->get('To')->print;
- # ==> =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?=
- # <him at home.net>
-
-=head2 Field class implementation
-
-For performance reasons only, there are three types of fields: the
-fast, the flexible, and the full understander:
-
-=over 4
-
-=item * L<Mail::Message::Field::Fast|Mail::Message::Field::Fast>
-
-C<Fast> objects are not derived from a C<Mail::Reporter>. The consideration
-is that fields are so often created, and such a small objects at the same
-time, that setting-up a logging for each of the objects is relatively
-expensive and not really useful.
-The fast field implementation uses an array to store the data: that
-will be faster than using a hash. Fast fields are not easily inheritable,
-because the object creation and initiation is merged into one method.
-
-=item * L<Mail::Message::Field::Flex|Mail::Message::Field::Flex>
-
-The flexible implementation uses a hash to store the data. The L<new()|Mail::Message::Field/"Constructors">
-and C<init> methods are split, so this object is extensible.
-
-=item * L<Mail::Message::Field::Full|Mail::Message::Field::Full>
-
-With a full implementation of all applicable RFCs (about 5), the best
-understanding of the fields is reached. However, this comes with
-a serious memory and performance penalty. These objects are created
-from fast or flex header fields when L<study()|Mail::Message::Field/"Access to the content"> is called.
-
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Field.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Field.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Complete.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,566 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Head::Complete;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head';
-
-use Mail::Box::Parser;
-use Mail::Message::Head::Partial;
-
-use Scalar::Util 'weaken';
-use List::Util 'sum';
-
-
-sub clone(;@)
-{ my $self = shift;
- my $copy = ref($self)->new($self->logSettings);
-
- $copy->addNoRealize($_->clone) foreach $self->orderedFields;
- $copy->modified(1);
- $copy;
-}
-
-#------------------------------------------
-
-
-sub build(@)
-{ my $self = shift;
- my $head = $self->new;
- while(@_)
- { my $name = shift;
- defined $name or next;
-
- if($name->isa('Mail::Message::Field'))
- { $head->add($name);
- next;
- }
-
- my $content = shift;
- defined $content or next;
-
- if(ref $content && $content->isa('Mail::Message::Field'))
- { $self->log(WARNING => "Field objects have an implied name ($name)");
- $head->add($content);
- next;
- }
-
- $head->add($name, $content);
- }
-
- $head;
-}
-
-#------------------------------------------
-
-
-sub isDelayed() {0}
-
-#------------------------------------------
-
-
-sub nrLines() { sum 1, map { $_->nrLines } shift->orderedFields }
-
-#------------------------------------------
-
-
-sub size() { sum 1, map {$_->size} shift->orderedFields }
-
-#------------------------------------------
-
-
-sub wrap($)
-{ my ($self, $length) = @_;
- $_->setWrapLength($length) foreach $self->orderedFields;
-}
-
-#------------------------------------------
-
-
-sub add(@)
-{ my $self = shift;
-
- # Create object for this field.
-
- my $field
- = @_==1 && ref $_[0] ? shift # A fully qualified field is added.
- : ($self->{MMH_field_type} || 'Mail::Message::Field::Fast')->new(@_);
-
- $field->setWrapLength;
-
- # Put it in place.
-
- my $known = $self->{MMH_fields};
- my $name = $field->name; # is already lower-cased
-
- $self->addOrderedFields($field);
-
- if(defined $known->{$name})
- { if(ref $known->{$name} eq 'ARRAY') { push @{$known->{$name}}, $field }
- else { $known->{$name} = [ $known->{$name}, $field ] }
- }
- else
- { $known->{$name} = $field;
- }
-
- $self->{MMH_modified}++;
- $field;
-}
-
-#------------------------------------------
-
-
-sub count($)
-{ my $known = shift->{MMH_fields};
- my $value = $known->{lc shift};
-
- ! defined $value ? 0
- : ref $value ? @$value
- : 1;
-}
-
-#------------------------------------------
-
-
-sub names() {shift->knownNames}
-
-#------------------------------------------
-
-
-sub grepNames(@)
-{ my $self = shift;
- my @take;
- push @take, (ref $_ eq 'ARRAY' ? @$_ : $_) foreach @_;
-
- return $self->names unless @take;
-
- my $take;
- if(@take==1 && ref $take[0] eq 'Regexp')
- { $take = $take[0]; # one regexp prepared already
- }
- else
- { # I love this trick:
- local $" = ')|(?:';
- $take = qr/^(?:(?:@take))/i;
- }
-
- grep {$_->Name =~ $take} $self->orderedFields;
-}
-
-#------------------------------------------
-
-
-my @skip_none = qw/content-transfer-encoding content-disposition/;
-my %skip_none = map { ($_ => 1) } @skip_none;
-
-sub set(@)
-{ my $self = shift;
- my $type = $self->{MMH_field_type} || 'Mail::Message::Field::Fast';
- $self->{MMH_modified}++;
-
- # Create object for this field.
- my $field = @_==1 && ref $_[0] ? shift->clone : $type->new(@_);
-
- my $name = $field->name; # is already lower-cased
- my $known = $self->{MMH_fields};
-
- # Internally, non-existing content-info are in the body stored as 'none'
- # The header will not contain these lines.
-
- if($skip_none{$name} && $field->body eq 'none')
- { delete $known->{$name};
- return $field;
- }
-
- $field->setWrapLength;
- $known->{$name} = $field;
-
- $self->addOrderedFields($field);
- $field;
-}
-
-#------------------------------------------
-
-
-sub reset($@)
-{ my ($self, $name) = (shift, lc shift);
-
- my $known = $self->{MMH_fields};
-
- if(@_==0)
- { $self->{MMH_modified}++ if delete $known->{$name};
- return ();
- }
-
- $self->{MMH_modified}++;
-
- # Cloning required, otherwise double registrations will not be
- # removed from the ordered list: that's controled by 'weaken'
-
- my @fields = map {$_->clone} @_;
-
- if(@_==1) { $known->{$name} = $fields[0] }
- else { $known->{$name} = [@fields] }
-
- $self->addOrderedFields(@fields);
- $self;
-}
-
-#------------------------------------------
-
-
-sub delete($) { $_[0]->reset($_[1]) }
-
-#------------------------------------------
-
-
-sub removeField($)
-{ my ($self, $field) = @_;
- my $name = $field->name;
- my $known = $self->{MMH_fields};
-
- if(!defined $known->{$name})
- { ; } # complain
- elsif(ref $known->{$name} eq 'ARRAY')
- { for(my $i=0; $i < @{$known->{$name}}; $i++)
- {
- return splice @{$known->{$name}}, $i, 1
- if $known->{$name}[$i] eq $field;
- }
- }
- elsif($known->{$name} eq $field)
- { return delete $known->{$name};
- }
-
- $self->log(WARNING => "Cannot remove field $name from header: not found.");
-
- return;
-}
-
-#------------------------------------------
-
-
-sub removeFields(@)
-{ my $self = shift;
- (bless $self, 'Mail::Message::Head::Partial')->removeFields(@_);
-}
-
-#------------------------------------------
-
-
-sub removeFieldsExcept(@)
-{ my $self = shift;
- (bless $self, 'Mail::Message::Head::Partial')->removeFieldsExcept(@_);
-}
-
-#------------------------------------------
-
-
-sub removeContentInfo() { shift->removeFields(qr/^Content-/, 'Lines') }
-
-#------------------------------------------
-
-
-sub removeResentGroups(@)
-{ my $self = shift;
- (bless $self, 'Mail::Message::Head::Partial')->removeResentGroups(@_);
-}
-
-#------------------------------------------
-
-
-sub removeListGroup(@)
-{ my $self = shift;
- (bless $self, 'Mail::Message::Head::Partial')->removeListGroup(@_);
-}
-
-#------------------------------------------
-
-
-sub removeSpamGroups(@)
-{ my $self = shift;
- (bless $self, 'Mail::Message::Head::Partial')->removeSpamGroups(@_);
-}
-
-#------------------------------------------
-
-
-sub spamDetected()
-{ my $self = shift;
- my @sgs = $self->spamGroups or return undef;
- grep { $_->spamDetected } @sgs;
-}
-
-#------------------------------------------
-
-
-sub print(;$)
-{ my $self = shift;
- my $fh = shift || select;
-
- $_->print($fh)
- foreach $self->orderedFields;
-
- if(ref $fh eq 'GLOB') { print $fh "\n" }
- else { $fh->print("\n") }
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub printUndisclosed($)
-{ my ($self, $fh) = @_;
-
- $_->print($fh)
- foreach grep {$_->toDisclose} $self->orderedFields;
-
- if(ref $fh eq 'GLOB') { print $fh "\n" }
- else { $fh->print("\n") }
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub printSelected($@)
-{ my ($self, $fh) = (shift, shift);
-
- foreach my $field ($self->orderedFields)
- { my $Name = $field->Name;
- my $name = $field->name;
-
- my $found;
- foreach my $pattern (@_)
- { $found = ref $pattern?($Name =~ $pattern):($name eq lc $pattern);
- last if $found;
- }
-
- if(!$found) { ; }
- elsif(ref $fh eq 'GLOB') { print $fh "\n" }
- else { $fh->print("\n") }
- }
-
- $self;
-}
-
-
-#------------------------------------------
-
-
-sub toString() {shift->string}
-sub string()
-{ my $self = shift;
-
- my @lines = map {$_->string} $self->orderedFields;
- push @lines, "\n";
-
- wantarray ? @lines : join('', @lines);
-}
-
-#------------------------------------------
-
-
-sub resentGroups()
-{ my $self = shift;
- require Mail::Message::Head::ResentGroup;
- Mail::Message::Head::ResentGroup->from($self);
-}
-
-#------------------------------------------
-
-
-sub addResentGroup(@)
-{ my $self = shift;
-
- require Mail::Message::Head::ResentGroup;
- my $rg = @_==1 ? (shift) : Mail::Message::Head::ResentGroup->new(@_);
-
- my @fields = $rg->orderedFields;
- my $order = $self->{MMH_order};
-
- # Look for the first line which relates to resent groups
- my $i;
- for($i=0; $i < @$order; $i++)
- { next unless defined $order->[$i];
- last if $rg->isResentGroupFieldName($order->[$i]->name);
- }
-
- my $known = $self->{MMH_fields};
- while(@fields)
- { my $f = pop @fields;
-
- # Add to the order of fields
- splice @$order, $i, 0, $f;
- weaken( $order->[$i] );
- my $name = $f->name;
-
- # Adds *before* in the list for get().
- if(!defined $known->{$name}) {$known->{$name} = $f}
- elsif(ref $known->{$name} eq 'ARRAY'){unshift @{$known->{$name}},$f}
- else {$known->{$name} = [$f, $known->{$name}]}
- }
-
- $rg->messageHead($self);
-
- # Oh, the header has changed!
- $self->modified(1);
-
- $rg;
-}
-
-#------------------------------------------
-
-
-sub listGroup()
-{ my $self = shift;
- eval "require 'Mail::Message::Head::ListGroup'";
- Mail::Message::Head::ListGroup->from($self);
-}
-
-#------------------------------------------
-
-
-sub addListGroup($)
-{ my ($self, $lg) = @_;
- $lg->attach($self);
-}
-
-#------------------------------------------
-
-
-sub spamGroups(@)
-{ my $self = shift;
- require Mail::Message::Head::SpamGroup;
- my @types = @_ ? (types => \@_) : ();
- my @sgs = Mail::Message::Head::SpamGroup->from($self, @types);
- wantarray || @_ != 1 ? @sgs : $sgs[0];
-}
-
-#------------------------------------------
-
-
-sub addSpamGroup($)
-{ my ($self, $sg) = @_;
- $sg->attach($self);
-}
-
-#------------------------------------------
-
-
-
-sub timestamp() {shift->guessTimestamp || time}
-
-#------------------------------------------
-
-
-sub recvstamp()
-{ my $self = shift;
-
- return $self->{MMH_recvstamp} if exists $self->{MMH_recvstamp};
-
- my $recvd = $self->get('received', 0) or
- return $self->{MMH_recvstamp} = undef;
-
- my $stamp = Mail::Message::Field->dateToTimestamp($recvd->comment);
-
- $self->{MMH_recvstamp} = defined $stamp && $stamp > 0 ? $stamp : undef;
-}
-
-#------------------------------------------
-
-
-sub guessTimestamp()
-{ my $self = shift;
- return $self->{MMH_timestamp} if exists $self->{MMH_timestamp};
-
- my $stamp;
- if(my $date = $self->get('date'))
- { $stamp = Mail::Message::Field->dateToTimestamp($date);
- }
-
- unless($stamp)
- { foreach (reverse $self->get('received'))
- { $stamp = Mail::Message::Field->dateToTimestamp($_->comment);
- last if $stamp;
- }
- }
-
- $self->{MMH_timestamp} = defined $stamp && $stamp > 0 ? $stamp : undef;
-}
-
-#------------------------------------------
-
-sub guessBodySize()
-{ my $self = shift;
-
- my $cl = $self->get('Content-Length');
- return $1 if defined $cl && $cl =~ m/(\d+)/;
-
- my $lines = $self->get('Lines'); # 40 chars per lines
- return $1 * 40 if defined $lines && $lines =~ m/(\d+)/;
-
- undef;
-}
-
-#------------------------------------------
-
-
-sub createFromLine()
-{ my $self = shift;
-
- my $from = $self->get('from') || '';
- my $stamp = $self->timestamp;
- my $sender = $from =~ m/(\<.*?\>)/ ? $1 : 'unknown';
- "From $sender ".(gmtime $stamp)."\n";
-}
-
-#------------------------------------------
-
-
-my $msgid_creator;
-
-sub createMessageId()
-{ $msgid_creator ||= $_[0]->messageIdPrefix;
- $msgid_creator->(@_);
-}
-
-#------------------------------------------
-
-
-sub messageIdPrefix(;$$)
-{ my $thing = shift;
- return $msgid_creator
- unless @_ || !defined $msgid_creator;
-
- return $msgid_creator = shift
- if @_==1 && ref $_[0] eq 'CODE';
-
- my $prefix = shift || "mailbox-$$";
-
- my $hostname = shift;
- unless(defined $hostname)
- { require Sys::Hostname;
- $hostname = Sys::Hostname::hostname() || 'localhost';
- }
-
- eval {require Time::HiRes};
- if(Time::HiRes->can('gettimeofday'))
- {
- return $msgid_creator
- = sub { my ($sec, $micro) = Time::HiRes::gettimeofday();
- "$prefix-$sec-$micro\@$hostname";
- };
- }
-
- my $unique_id = time;
- $msgid_creator
- = sub { $unique_id++;
- "$prefix-$unique_id\@$hostname";
- };
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Complete.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Complete.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1003 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::Complete - the header of one message
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::Complete
- is a Mail::Message::Head
- is a Mail::Reporter
-
- Mail::Message::Head::Complete is extended by
- Mail::Message::Head::Partial
- Mail::Message::Replace::MailHeader
-
- Mail::Message::Head::Complete is realized by
- Mail::Message::Head::Delayed
- Mail::Message::Head::Subset
-
-
-=head1 SYNOPSIS
-
- my $head = Mail::Message::Head::Complete->new;
- See Mail::Message::Head
-
-
-=head1 DESCRIPTION
-
-E-mail's message can be in various states: unread, partially read, and
-fully read. The class stores a message of which all header lines are
-known for sure.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<build>([PAIR|FIELD]-LIST)
-
-=over 4
-
-Undefined values are interpreted as empty field values, and therefore skipped.
-
-=back
-
-$obj-E<gt>B<clone>([FIELDS])
-
-=over 4
-
-Make a copy of the header, optionally limited only to the header lines
-specified by FIELDS. The lines which are taken must start with one of the
-list. If no list is specified, all will be taken.
-
-I<Example:>
-
- my $newhead = $head->clone('Subject', 'Received');
-
-=back
-
-Mail::Message::Head::Complete-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Head/"Constructors">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isEmpty>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<knownNames>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-Return the number of lines needed to display this header (including
-the trailing newline)
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-Return the number of bytes needed to display this header (including
-the trailing newline). On systems which use CRLF as line separator,
-the number of lines in the header (see L<nrLines()|Mail::Message::Head::Complete/"The header">) must be added to
-find the actual size in the file.
-
-=back
-
-$obj-E<gt>B<wrap>(INTEGER)
-
-=over 4
-
-Re-fold all fields from the header to contain at most INTEGER number of
-characters per line.
-
-I<Example:> re-folding a header
-
-
- $msg->head->wrap(78);
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<add>(FIELD | LINE | (NAME,BODY[,ATTRS]))
-
-=over 4
-
-Add a field to the header. If a field is added more than once, all values
-are stored in the header, in the order they are added.
-
-When a FIELD object is specified (some L<Mail::Message::Field|Mail::Message::Field> instance), that
-will be added. Another possibility is to specify a raw header LINE, or a
-header line nicely split-up in NAME and BODY, in which case the
-field constructor is called for you.
-
-LINE or BODY specifications which are terminated by a new-line are considered
-to be correctly folded. Lines which are not terminated by a new-line will
-be folded when needed: new-lines will be added where required. It is strongly
-adviced to let MailBox do the folding for you.
-
-The return value of this method is the L<Mail::Message::Field|Mail::Message::Field> object
-which is created (or was specified).
-
-I<Example:>
-
- my $head = Mail::Message::Head->new;
- $head->add('Subject: hi!');
- $head->add(From => 'me at home');
- my $field = Mail::Message::Field->new('To: you at there');
- $head->add($field);
- my Mail::Message::Field $s = $head->add(Sender => 'I');
-
-=back
-
-$obj-E<gt>B<addListGroup>(OBJECT)
-
-=over 4
-
-A I<list group> is a set of header fields which contain data about a
-mailing list which was used to transmit the message. See
-L<Mail::Message::Head::ListGroup|Mail::Message::Head::ListGroup> for details about the implementation
-of the OBJECT.
-
-When you have a list group prepared, you can add it later using this
-method. You will get your private copy of the list group data in
-return, because the same group can be used for multiple messages.
-
-I<Example:> of adding a list group to a header
-
-
- my $lg = Mail::Message::Head::ListGroup->new(...);
- my $own_lg = $msg->head->addListGroup($lg);
-
-=back
-
-$obj-E<gt>B<addResentGroup>(RESENT-GROUP|DATA)
-
-=over 4
-
-Add a RESENT-GROUP (a L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup> object) to
-the header. If you specify DATA, that is used to create such group
-first. If no C<Received> line is specified, it will be created
-for you.
-
-These header lines have nothing to do with the user's sense
-of C<reply> or C<forward> actions: these lines trace the e-mail
-transport mechanism.
-
-I<Example:>
-
- my $rg = Mail::Message::Head::ResentGroup->new(head => $head, ...);
- $head->addResentGroup($rg);
-
- my $rg = $head->addResentGroup(From => 'me');
-
-=back
-
-$obj-E<gt>B<addSpamGroup>(OBJECT)
-
-=over 4
-
-A I<spam fighting group> is a set of header fields which contains data
-which is used to fight spam. See L<Mail::Message::Head::SpamGroup|Mail::Message::Head::SpamGroup>
-for details about the implementation of the OBJECT.
-
-When you have a spam group prepared, you can add it later using this
-method. You will get your private copy of the spam group data in
-return, because the same group can be used for multiple messages.
-
-I<Example:> of adding a spam group to a header
-
-
- my $sg = Mail::Message::Head::SpamGroup->new(...);
- my $own_sg = $msg->head->addSpamGroup($sg);
-
-=back
-
-$obj-E<gt>B<count>(NAME)
-
-=over 4
-
-Count the number of fields with this NAME. Most fields will return 1:
-only one occurance in the header. As example, the C<Received> fields
-are usually present more than once.
-
-=back
-
-$obj-E<gt>B<delete>(NAME)
-
-=over 4
-
-Remove the field with the specified name. If the header contained
-multiple lines with the same name, they will be replaced all together.
-This method simply calls L<reset()|Mail::Message::Head::Complete/"Access to the header"> without replacement fields.
-READ THE IMPORTANT WARNING IN L<removeField()|Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<get>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-$obj-E<gt>B<grepNames>([NAMES|ARRAY-OF-NAMES|REGEXS])
-
-=over 4
-
-Filter from all header fields the names which start will any of the
-specified list. When no names are specified, all names will be returned.
-The list is ordered as they where read from file, or added later.
-
-The NAMES are regular expressions, and will all be matched case insensitive
-and attached to the front of the string only. You may also specify
-one or more prepared regexes.
-
-I<Example:>
-
- print $head->grepNames(); # same as $head->names
- print $head->grepNames('X-', 'Subject', ');
- print $head->grepNames('To\b'); # will only select To
-
-=back
-
-$obj-E<gt>B<listGroup>
-
-=over 4
-
-Returns a I<list group> description: the set of headers which form
-the information about mailing list software used to transport the
-message. See also L<addListGroup()|Mail::Message::Head::Complete/"Access to the header"> and L<removeListGroup()|Mail::Message::Head::Complete/"Access to the header">.
-
-I<Example:> use of listGroup()
-
-
- if(my $lg = $msg->head->listGroup)
- { $lg->print(\*STDERR);
- $lg->delete;
- }
-
- $msg->head->removeListGroup;
-
-=back
-
-$obj-E<gt>B<names>
-
-=over 4
-
-Returns a full ordered list of known field names, as defined in the
-header. Fields which were reset() to be empty will still be
-listed here.
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-Print all headers to the specified FILEHANDLE, by default the selected
-filehandle. See L<printUndisclosed()|Mail::Message::Head::Complete/"Access to the header"> to limit the headers to include
-only the public headers.
-
-I<Example:>
-
- $head->print(\*OUT);
- $head->print;
-
- my $fh = IO::File->new(...);
- $head->print($fh);
-
-=back
-
-$obj-E<gt>B<printSelected>(FILEHANDLE, (STRING|REGEXP)s)
-
-=over 4
-
-Like the usual L<print()|Mail::Message::Head::Complete/"Access to the header">, the header lines are printed to the specified
-FILEHANDLE. In this case, however, only the fields with names as specified by
-STRING (case insensative) or REGEXP are printed. They will stay the in-order
-of the source header.
-
-I<Example:> printing only a subset of the fields
-
-
- $head->printSelected(STDOUT, qw/Subject From To/, qr/^x\-(spam|xyz)\-/i)
-
-=back
-
-$obj-E<gt>B<printUndisclosed>([FILEHANDLE])
-
-=over 4
-
-Like the usual L<print()|Mail::Message::Head::Complete/"Access to the header">, the header lines are printed to the specified
-FILEHANDLE, by default the selected filehandle. In this case, however,
-C<Bcc> and C<Resent-Bcc> lines are included.
-
-=back
-
-$obj-E<gt>B<removeContentInfo>
-
-=over 4
-
-Remove all body related fields from the header. The header will become
-partial.
-
-=back
-
-$obj-E<gt>B<removeField>(FIELD)
-
-=over 4
-
-Remove the specified FIELD object from the header. This is useful when
-there are possible more than one fields with the same name, and you
-need to remove exactly one of them. Also have a look at L<delete()|Mail::Message::Head::Complete/"Access to the header">,
-L<reset()|Mail::Message::Head::Complete/"Access to the header">, and L<set()|Mail::Message::Head::Complete/"Access to the header">.
-
-See also L<Mail::Message::Head::Partial::removeFields()|Mail::Message::Head::Partial/"Access to the header"> (mind the 's'
-at the end of the name), which accepts a string or regular expression
-as argument to select the fields to be removed.
-
-WARNING WARNING WARNING: for performance reasons, the header administration
-uses weak references (see L<Scalar::Util> method weaken()> to figure-out
-which fields have been removed. A header is a hash of field for fast search
-and an array of weak references to remember the order of the fields, required
-for printing. If the field is removed from the hash, the weak-ref is set to
-undef and the field not printed.
-
-However... it is easy to disturb this process. Example:
- my $msg = ....; # subject ref-count = 1 + 0 = 1
- $msg->head->delete('Subject'); # subject ref-count = 0 = 0: clean-up
- $msg->print; # subject doesn't show: ok
-
-But
- my $msg = ....; # subject ref-count = 1 + 0 = 1
- my $s = $msg->head->get('subject'); # ref-count = 1 + 1 + 0 = 2
- $msg->head->delete('Subject'); # subject ref-count = 1 + 0 = 1: no clean-up
- $msg->print; # subject DOES show: not ok
- undef $s; # ref-count becomes 0: clean-up
- $msg->print; # subject doesn't show: ok
-
-To avoid the latter situation, do not catch the field object, but only
-the field content. SAVE are all methods which return the text:
- my $s = $msg->head->get('subject')->body;
- my $s = $msg->head->get('subject')->unfoldedBody;
- my $s = $msg->head->get('subject')->foldedBody;
- my $s = $msg->head->get('subject')->foldedBody;
- my $s = $msg->get('subject');
- my $s = $msg->subject;
- my $s = $msg->string;
-
-=back
-
-$obj-E<gt>B<removeFields>(STRING|REGEXP, [STRING|REGEXP, ...])
-
-=over 4
-
-The header object is turned into a L<Mail::Message::Head::Partial|Mail::Message::Head::Partial> object
-which has a set of fields removed. Read about the implications and the
-possibilities in L<Mail::Message::Head::Partial::removeFields()|Mail::Message::Head::Partial/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<removeFieldsExcept>(STRING|REGEXP, [STRING|REGEXP, ...])
-
-=over 4
-
-The header object is turned into a L<Mail::Message::Head::Partial|Mail::Message::Head::Partial> object
-which has a set of fields removed. Read about the implications and the
-possibilities in L<Mail::Message::Head::Partial::removeFieldsExcept()|Mail::Message::Head::Partial/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<removeListGroup>
-
-=over 4
-
-Removes all fields related to mailing list administration at once.
-The header object is turned into a L<Mail::Message::Head::Partial|Mail::Message::Head::Partial>
-object. Read about the implications and the possibilities in
-L<Mail::Message::Head::Partial::removeListGroup()|Mail::Message::Head::Partial/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<removeResentGroups>
-
-=over 4
-
-Removes all resent groups at once. The header object is turned into
-a L<Mail::Message::Head::Partial|Mail::Message::Head::Partial> object. Read about the implications and the
-possibilities in L<Mail::Message::Head::Partial::removeResentGroups()|Mail::Message::Head::Partial/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<removeSpamGroups>
-
-=over 4
-
-Removes all fields which were added by various spam detection software
-at once. The header object is turned into a L<Mail::Message::Head::Partial|Mail::Message::Head::Partial>
-object. Read about the implications and the possibilities in
-L<Mail::Message::Head::Partial::removeSpamGroups()|Mail::Message::Head::Partial/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<resentGroups>
-
-=over 4
-
-Returns a list of L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup> objects which
-each represent one intermediate point in the message's transmission in
-the order as they appear in the header: the most recent one first.
-See also L<addResentGroup()|Mail::Message::Head::Complete/"Access to the header"> and L<removeResentGroups()|Mail::Message::Head::Complete/"Access to the header">.
-
-A resent group contains a set of header fields whose names start
-with C<Resent->. Before the first C<Resent> line is I<trace> information,
-which is composed of an optional C<Return-Path> field and an required
-C<Received> field.
-
-=back
-
-$obj-E<gt>B<reset>(NAME, FIELDS)
-
-=over 4
-
-Replace the values in the header fields named by NAME with the values
-specified in the list of FIELDS. A single name can correspond to multiple
-repeated fields. READ THE IMPORTANT WARNING IN L<removeField()|Mail::Message::Head::Complete/"Access to the header">
-
-Removing fields which are part of one of the predefined field groups is
-not a smart idea. You can better remove these fields as group, all
-together. For instance, the C<'Received'> lines are part of resent
-groups, C<'X-Spam'> is past of a spam group, and C<List-Post> belongs
-to a list group. You can delete a whole group with
-L<Mail::Message::Head::FieldGroup::delete()|Mail::Message::Head::FieldGroup/"The header">, or with methods which
-are provided by L<Mail::Message::Head::Partial|Mail::Message::Head::Partial>.
-
-If FIELDS is empty, the corresponding NAME fields will
-be removed. The location of removed fields in the header order will be
-remembered. Fields with the same name which are added later will appear at
-the remembered position. This is equivalent to the L<delete()|Mail::Message::Head::Complete/"Access to the header"> method.
-
-I<Example:>
-
- # reduce number of 'Keywords' lines to last 5)
- my @keywords = $head->get('Keywords');
- $head->reset('Keywords', @keywords[-5..-1]) if @keywords > 5;
-
- # Reduce the number of Received lines to only the last added one.
- my @rgs = $head->resentGroups;
- shift @rgs; # keep this one (later is added in front)
- $_->delete foreach @rgs;
-
-=back
-
-$obj-E<gt>B<set>(FIELD | LINE | (NAME, BODY [,ATTRS]))
-
-=over 4
-
-The C<set> method is similar to the L<add()|Mail::Message::Head::Complete/"Access to the header"> method, and takes the same
-options. However, existing values for fields will be removed before a new
-value is added. READ THE IMPORTANT WARNING IN L<removeField()|Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<spamDetected>
-
-=over 4
-
-Returns whether one of the spam groups defines a report about spam. If there
-are not header fields in the message which relate to spam-detection
-software, C<undef> is returned. The spamgroups which report spam are returned.
-
-I<Example:>
-
- $message->delete if $message->spamDetected;
-
- call_spamassassin($message)
- unless defined $message->spamDetected;
-
-=back
-
-$obj-E<gt>B<spamGroups>([NAMES])
-
-=over 4
-
-Returns a list of L<Mail::Message::Head::SpamGroup|Mail::Message::Head::SpamGroup> objects, each collecting
-some lines which contain spam fighting information. When any NAMES are
-given, then only these groups are returned.
-See also L<addSpamGroup()|Mail::Message::Head::Complete/"Access to the header"> and L<removeSpamGroups()|Mail::Message::Head::Complete/"Access to the header">.
-
-In scalar context, with exactly one NAME specified, that group will be
-returned. With more NAMES or without NAMES, a list will be returned
-(which defaults to the length of the list in scalar context).
-
-I<Example:> use of listGroup()
-
-
- my @sg = $msg->head->spamGroups;
- $sg[0]->print(\*STDERR);
- $sg[-1]->delete;
-
- my $sg = $msg->head->spamGroups('SpamAssassin');
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-Returns the whole header as one scalar (in scalar context) or list
-of lines (list context). Triggers completion.
-
-=back
-
-$obj-E<gt>B<study>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-=head2 About the body
-
-
-$obj-E<gt>B<guessBodySize>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-$obj-E<gt>B<guessTimeStamp>
-
-=over 4
-
-Make a guess about when the message was origanally posted, based on the
-information found in the header's C<Date> field.
-
-For some kinds of folders, L<Mail::Message::guessTimestamp()|Mail::Message/"The header"> may produce
-a better result, for instance by looking at the modification time of the
-file in which the message is stored. Also some protocols, like POP can
-supply that information.
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-$obj-E<gt>B<recvstamp>
-
-=over 4
-
-Returns an indication about when the message was sent, but only using the
-C<Date> field in the header as last resort: we do not trust the sender of
-the message to specify the correct date. See L<timestamp()|Mail::Message::Head::Complete/"About the body"> when you do
-trust the sender.
-
-Many spam producers fake a date, which mess up the order of receiving
-things. The timestamp which is produced is derived from the Received
-headers, if they are present, and C<undef> otherwise.
-
-The timestamp is encoded as C<time> is on your system (see perldoc -f
-time), and as such usable for the C<gmtime> and C<localtime> methods.
-
-I<Example:> of time-sorting folders with received messages
-
-
- my $folder = $mgr->open('InBox');
- my @messages = sort {$a->recvstamp <=> $b->recvstamp}
- $folder->messages;
-
-I<Example:> of time-sorting messages of mixed origin
-
-
- my $folder = $mgr->open('MyFolder');
-
- # Pre-calculate timestamps to be sorted (for speed)
- my @stamps = map { [ ($_->timestamp || 0), $_ ] }
- $folder->messages;
-
- my @sorted
- = map { $_->[1] } # get the message for the stamp
- sort {$a->[0] <=> $b->[0]} # stamps are numerics
- @stamps;
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-Returns an indication about when the message was sent, with as
-little guessing as possible. In this case, the date as specified by the
-sender is trusted. See L<recvstamp()|Mail::Message::Head::Complete/"About the body"> when you do not want to trust the
-sender.
-
-The timestamp is encoded as C<time> is
-on your system (see perldoc -f time), and as such usable for the C<gmtime>
-and C<localtime> methods.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<addOrderedFields>(FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<createFromLine>
-
-=over 4
-
-For some mail-folder types separate messages by a line starting with
-'C<From >'. If a message is moved to such folder from a folder-type
-which does not support these separators, this method is called to produce
-one.
-
-=back
-
-$obj-E<gt>B<createMessageId>
-
-=over 4
-
-Creates a message-id for this message. This method will be run when
-a new message is created, or a message is discovered without the
-message-id header field. Message-ids are required for detection of
-message-threads. See L<messageIdPrefix()|Mail::Message::Head::Complete/"Internals">.
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<messageIdPrefix>([PREFIX, [HOSTNAME]|CODE])
-
-Mail::Message::Head::Complete-E<gt>B<messageIdPrefix>([PREFIX, [HOSTNAME]|CODE])
-
-=over 4
-
-When options are provided, it sets a new way to create message-ids,
-as used by L<createMessageId()|Mail::Message::Head::Complete/"Internals">. You have two choices: either by
-providing a PREFIX and optionally a HOSTNAME, or a CODE reference.
-
-The CODE reference will be called with the header as first argument.
-You must ensure yourself that the returned value is RFC compliant.
-
-The PREFIX defaults to C<mailbox-$$>, the HOSTNAME defaults to the
-return of L<Sys::Hostname>'s method C<hostname()>. Inbetween the
-two, a nano-second time provided by L<Time::Hires> is used. If that
-module is not available, C<time> is called at the start of the program,
-and incremented for each newly created id.
-
-In any case, a subroutine will be created to be used. A reference
-to that will be returned. When the method is called without arguments,
-but no subroutine is defined yet, one will be created.
-
-I<Example:> setting a message prefix
-
-
- $head->messageIdPrefix('prefix');
- Mail::Message::Head::Complete->messageIdPrefix('prefix');
- my $code = $head->messageIdPrefix('mailbox', 'nohost');
-
- sub new_msgid()
- { my $head = shift;
- "myid-$$-${(rand 10000)}@example.com";
- }
-
- $many_msg->messageIdPrefix(\&new_msgid);
- Mail::Message::Head::Complete->messageIdPrefix(&new_msgid);
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<setNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::Complete-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::Complete-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::Complete-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Cannot remove field $name from header: not found.
-
-You ask to remove a field which is not known in the header. Using
-L<delete()|Mail::Message::Head::Complete/"Access to the header">, L<reset()|Mail::Message::Head::Complete/"Access to the header">, or L<set()|Mail::Message::Head::Complete/"Access to the header"> to do the job will not result
-in warnings: those methods check the existence of the field first.
-
-I<Warning:> Field objects have an implied name ($name)
-
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Complete.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Complete.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Delayed.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,91 +0,0 @@
-
-use strict;
-
-package Mail::Message::Head::Delayed;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head';
-
-use Object::Realize::Later
- becomes => 'Mail::Message::Head::Complete',
- realize => 'load',
- believe_caller => 1;
-
-use Scalar::Util 'weaken';
-
-
-sub build(@) {shift->log(ERROR => "Cannot build() a delayed header.") }
-
-#------------------------------------------
-
-sub init($$)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- if(defined $args->{message})
- { $self->{MMHD_message} = $args->{message};
- weaken($self->{MMHD_message});
- }
-
- $self;
-}
-
-#------------------------------------------
-
-sub isDelayed() {1}
-
-#------------------------------------------
-
-sub modified(;$)
-{ return 0 if @_==1 || !$_[1];
- shift->forceRealize->modified(1);
-}
-
-#------------------------------------------
-
-sub isModified() { 0 }
-
-#------------------------------------------
-
-sub isEmpty() { 0 }
-
-#------------------------------------------
-
-
-sub get($;$)
-{ my $self = shift;
- $self->load->get(@_);
-}
-
-#------------------------------------------
-
-
-sub guessBodySize() {undef}
-
-#-------------------------------------------
-
-
-sub guessTimestamp() {undef}
-
-#------------------------------------------
-
-
-sub read($)
-{ my ($self, $parser, $headtype, $bodytype) = @_;
-
-# $parser->skipHeader not implemented... returns where
- $self->{MMH_where} = 0;
- $self;
-}
-
-#------------------------------------------
-
-sub load() {$_[0] = $_[0]->message->loadHead}
-
-#------------------------------------------
-
-sub setNoRealize($) { shift->log(INTERNAL => "Setting field on a delayed?") }
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Delayed.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Delayed.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,409 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::Delayed - a not-read header of a Mail::Message
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::Delayed realizes a Mail::Message::Head::Complete
-
- Mail::Message::Head::Delayed
- is a Mail::Message::Head
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message::Head::Delayed $delayed = ...;
- $delayed->isa('Mail::Message::Head') # true
- $delayed->guessBodySize # undef
- $delayed->isDelayed # true
-
-
-=head1 DESCRIPTION
-
-This object is used as place-holder, to be replaced
-by a L<Mail::Message::Head|Mail::Message::Head> when someone accesses the header of a message.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<build>(FIELDS)
-
-=over 4
-
-You cannot create a delayed header with fields.
-
-=back
-
-Mail::Message::Head::Delayed-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Head/"Constructors">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isEmpty>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<knownNames>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<get>(NAME [,INDEX])
-
-=over 4
-
-Get the information about the header line NAME. Realization will
-take place.
-
-=back
-
-$obj-E<gt>B<study>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-=head2 About the body
-
-
-$obj-E<gt>B<guessBodySize>
-
-=over 4
-
-On a delayed head, this retuns C<undef>, because when there is no header
-there is also no body.
-
-For messages in directory or network organized folders,
-L<Mail::Message::size()|Mail::Message/"The message"> usually will give a figure for the whole message
-without much cost. Subtract a few hundred bytes for the header, and
-you will get a good estimate.
-
-=back
-
-$obj-E<gt>B<guessTimeStamp>
-
-=over 4
-
-Make a guess about when the message was originally posted.
-On a delayed head, this returns C<undef>.
-For messages in directory or network organized folders,
-L<Mail::Message::timestamp()|Mail::Message/"The header"> usually will give a figure without much cost.
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<addOrderedFields>(FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<setNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::Delayed-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::Delayed-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::Delayed-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot build() a delayed header.
-
-A delayed message header cannot contain any information, so cannot be
-build. You can construct complete or subset headers.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Delayed.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Delayed.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/FieldGroup.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,178 +0,0 @@
-
-package Mail::Message::Head::FieldGroup;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use strict;
-use warnings;
-
-
-sub new(@)
-{ my $class = shift;
-
- my @fields;
- push @fields, shift while ref $_[0];
-
- $class->SUPER::new(@_, fields => \@fields);
-}
-
-sub init($$)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- my $head = $self->{MMHF_head}
- = $args->{head} || Mail::Message::Head::Partial->new;
-
- $self->add($_) # add specified object fields
- foreach @{$args->{fields}};
-
- $self->add($_, delete $args->{$_}) # add key-value paired fields
- foreach grep m/^[A-Z]/, keys %$args;
-
- $self->{MMHF_version} = $args->{version} if defined $args->{version};
- $self->{MMHF_software} = $args->{software} if defined $args->{software};
- $self->{MMHF_type} = $args->{type} if defined $args->{type};
-
- $self->{MMHF_fns} = [];
- $self;
-}
-
-#------------------------------------------
-
-
-sub implementedTypes() { shift->notImplemented }
-
-#------------------------------------------
-
-
-sub from($) { shift->notImplemented }
-
-#------------------------------------------
-
-
-sub clone()
-{ my $self = shift;
- my $clone = bless %$self, ref $self;
- $clone->{MMHF_fns} = [ $self->fieldNames ];
- $clone;
-}
-
-#------------------------------------------
-
-
-sub head() { shift->{MMHF_head} }
-
-#------------------------------------------
-
-
-sub attach($)
-{ my ($self, $head) = @_;
- $head->add($_->clone) for $self->fields;
- $self;
-}
-
-#------------------------------------------
-
-
-sub delete()
-{ my $self = shift;
- my $head = $self->head;
- $head->removeField($_) foreach $self->fields;
- $self;
-}
-
-#------------------------------------------
-
-
-sub add(@)
-{ my $self = shift;
- my $field = $self->head->add(@_) or return ();
- push @{$self->{MMHF_fns}}, $field->name;
- $self;
-}
-
-#------------------------------------------
-
-
-sub fields()
-{ my $self = shift;
- my $head = $self->head;
- map { $head->get($_) } $self->fieldNames;
-}
-
-#------------------------------------------
-
-
-sub fieldNames() { @{shift->{MMHF_fns}} }
-
-#------------------------------------------
-
-
-sub addFields(@)
-{ my $self = shift;
- my $head = $self->head;
-
- push @{$self->{MMHF_fns}}, @_;
- @_;
-}
-
-#------------------------------------------
-
-
-sub version() { shift->{MMHF_version} }
-
-#------------------------------------------
-
-
-sub software() { shift->{MMHF_software} }
-
-#------------------------------------------
-
-
-sub type() { shift->{MMHF_type} }
-
-#------------------------------------------
-
-
-sub detected($$$)
-{ my $self = shift;
- @$self{ qw/MMHF_type MMHF_software MMHF_version/ } = @_;
-}
-
-#------------------------------------------
-
-
-sub collectFields(;$) { shift->notImplemented }
-
-#------------------------------------------
-
-
-sub print(;$)
-{ my $self = shift;
- my $out = shift || select;
- $_->print($out) foreach $self->fields;
-}
-
-#------------------------------------------
-
-
-sub details()
-{ my $self = shift;
- my $type = $self->type || 'Unknown';
-
- my $software = $self->software;
- undef $software if defined($software) && $type eq $software;
- my $version = $self->version;
- my $release
- = defined $software
- ? (defined $version ? " ($software $version)" : " ($software)")
- : (defined $version ? " ($version)" : '');
-
- my $fields = scalar $self->fields;
- "$type $release, $fields fields";
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/FieldGroup.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/FieldGroup.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,462 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::FieldGroup - a sub set of fields in a header
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::FieldGroup
- is a Mail::Reporter
-
- Mail::Message::Head::FieldGroup is extended by
- Mail::Message::Head::ListGroup
- Mail::Message::Head::ResentGroup
- Mail::Message::Head::SpamGroup
-
-
-=head1 SYNOPSIS
-
-Never instantiated directly.
-
-
-=head1 DESCRIPTION
-
-Some fields have a combined meaning: a set of fields which represent
-one intermediate step during the transport of the message (a
-I<resent group>, implemented in L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup>),
-fields added by mailing list software (implemented in
-L<Mail::Message::Head::ListGroup|Mail::Message::Head::ListGroup>), or fields added by Spam detection
-related software (implemented by L<Mail::Message::Head::SpamGroup|Mail::Message::Head::SpamGroup>).
-Each set of fields can be extracted or added as group with objects
-which are based on the implementation in this class.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-Make a copy of this object. The collected fieldnames are copied and the
-list type information. No deep copy is made for the header: this is
-only copied as reference.
-
-=back
-
-$obj-E<gt>B<from>(HEAD|MESSAGE)
-
-=over 4
-
-Create a group of fields based on the specified MESSAGE or message HEAD.
-This may return one or more of the objects, which depends on the
-type of group. Mailing list fields are all stored in one object,
-where resent and spam groups can appear more than once.
-
-=back
-
-$obj-E<gt>B<implementedTypes>
-
-Mail::Message::Head::FieldGroup-E<gt>B<implementedTypes>
-
-=over 4
-
-Returns a list of strings containing all possible return values for
-L<type()|Mail::Message::Head::FieldGroup/"Access to the header">.
-
-=back
-
-Mail::Message::Head::FieldGroup-E<gt>B<new>(FIELDS, OPTIONS)
-
-=over 4
-
-Construct an object which maintains one set of header FIELDS. The
-FIELDS may be specified as C<Mail::Message::Field> objects or as key-value
-pairs. The OPTIONS and FIELDS (as key-value pair) can be mixed: they are
-distinguished by their name, where the fields always start with a capital.
-The field objects must aways lead the OPTIONS.
-
- Option Defined in Default
- head C<undef>
- log L<Mail::Reporter> C<'WARNINGS'>
- software C<undef>
- trace L<Mail::Reporter> C<'WARNINGS'>
- type C<undef>
- version C<undef>
-
-. head HEAD
-
-=over 4
-
-The header HEAD object is used to store the grouped fields in.
-If no header is specified, a L<Mail::Message::Head::Partial|Mail::Message::Head::Partial> is created
-for you. If you wish to scan the existing fields in a header, then use
-the L<from()|Mail::Message::Head::FieldGroup/"Constructors"> method.
-
-=back
-
-. log LEVEL
-
-. software STRING
-
-=over 4
-
-Name of the software which produced the fields.
-
-=back
-
-. trace LEVEL
-
-. type STRING
-
-=over 4
-
-Group name for the fields. Often the same, or close
-to the same STRING, as the C<software> option contains.
-
-=back
-
-. version STRING
-
-=over 4
-
-Version number for the software which produced the fields.
-
-=back
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<add>((FIELD, VALUE) | OBJECT)
-
-=over 4
-
-Add a field to the header, using the field group. When the field group
-is already attached to a real message header, it will appear in that
-one as well as being registed in this set. If no header is defined,
-the field only appears internally.
-
-I<Example:> adding a field to a detached list group
-
-
- my $this = Mail::Message::Head::ListGroup->new(...);
- $this->add('List-Id' => 'mailbox');
- $msg->addListGroup($this);
- $msg->send;
-
-I<Example:> adding a field to an attached list group
-
-
- my $lg = Mail::Message::Head::ListGroup->from($msg);
- $lg->add('List-Id' => 'mailbox');
-
-=back
-
-$obj-E<gt>B<addFields>([FIELDNAMES])
-
-=over 4
-
-Add some FIELDNAMES to the set.
-
-=back
-
-$obj-E<gt>B<attach>(HEAD)
-
-=over 4
-
-Add a group of fields to a message HEAD. The fields will be cloned(!)
-into the header, so that the field group object can be used again.
-
-I<Example:> attaching a list group to a message
-
-
- my $lg = Mail::Message::Head::ListGroup->new(...);
- $lg->attach($msg->head);
- $msg->head->addListGroup($lg); # same
-
- $msg->head->addSpamGroup($sg); # also implemented with attach
-
-=back
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-Remove all the header lines which are combined in this fields group,
-from the header.
-
-=back
-
-$obj-E<gt>B<fieldNames>
-
-=over 4
-
-Return the names of the fields which are used in this group.
-
-=back
-
-$obj-E<gt>B<fields>
-
-=over 4
-
-Return the fields which are defined for this group.
-
-=back
-
-$obj-E<gt>B<head>
-
-=over 4
-
-Returns the header object, which includes these fields.
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<software>
-
-=over 4
-
-Returns the name of the software as is defined in the headers. The may
-be slightly different from the return value of L<type()|Mail::Message::Head::FieldGroup/"Access to the header">, but usually
-not too different.
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-Returns an abstract name for the field group; which software is
-controling it. C<undef> is returned in case the type is not known.
-Valid names are group type dependent: see the applicable manual
-pages. A list of all types can be retreived with L<implementedTypes()|Mail::Message::Head::FieldGroup/"Constructors">.
-
-=back
-
-$obj-E<gt>B<version>
-
-=over 4
-
-Returns the version number of the software used to produce the fields.
-Some kinds of software do leave such a trace, other cases will return
-C<undef>
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<collectFields>([NAME])
-
-=over 4
-
-Scan the header for fields which are usually contained in field group
-with the specified NAME. For mailinglist groups, you can not specify
-a NAME: only one set of headers will be found (all headers are considered
-to be produced by exactly one package of mailinglist software).
-
-This method is automatically called when a field group is
-constructed via L<from()|Mail::Message::Head::FieldGroup/"Constructors"> on an existing header or message.
-
-Returned are the names of the list header fields found, in scalar
-context the amount of fields. An empty list/zero indicates that there
-was no group to be found.
-
-Please warn the author of MailBox if you see that to few
-or too many fields are included.
-
-=back
-
-$obj-E<gt>B<detected>(TYPE, SOFTWARE, VERSION)
-
-=over 4
-
-Sets the values for the field group type, software, and version,
-prossibly to C<undef>.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::FieldGroup-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<details>
-
-=over 4
-
-Produce information about the detected/created field group, which may be
-helpful during debugging. A nicely formatted string is returned.
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::FieldGroup-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::FieldGroup-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-Print the group to the specified FILEHANDLE or GLOB. This is probably only
-useful for debugging purposed. The output defaults to the selected file
-handle.
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/FieldGroup.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/FieldGroup.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ListGroup.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,238 +0,0 @@
-
-package Mail::Message::Head::ListGroup;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head::FieldGroup';
-
-use strict;
-use warnings;
-
-use List::Util 'first';
-
-
-sub init($$)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- my $address = $args->{address};
- if(!defined $address) { ; }
- elsif(!ref $address || !$address->isa('Mail::Message::Field::Address'))
- { require Mail::Message::Field::Address;
- my $mi = Mail::Message::Field::Address->coerce($address);
-
- $self->log(ERROR =>
- "Cannot convert \"$address\" into an address object"), return
- unless defined $mi;
-
- $address = $mi;
- }
- $self->{MMHL_address} = $address if defined $args->{address};
-
- $self->{MMHL_listname} = $args->{listname} if defined $args->{listname};
- $self->{MMHL_rfc} = $args->{rfc} if defined $args->{rfc};
- $self->{MMHL_fns} = [];
- $self;
-}
-
-#------------------------------------------
-
-
-sub from($)
-{ my ($class, $from) = @_;
- my $head = $from->isa('Mail::Message::Head') ? $from : $from->head;
- my $self = $class->new(head => $head);
-
- return () unless $self->collectFields;
-
- my ($type, $software, $version, $field);
- if(my $communigate = $head->get('X-ListServer'))
- { ($software, $version) = $communigate =~ m/^(.*)\s+LIST\s*([\d.]+)\s*$/i;
- $type = ($software =~ m/Pro/ ? 'CommuniGatePro' : 'CommuniGate');
- }
- elsif(my $mailman = $head->get('X-Mailman-Version'))
- { $version = "$mailman";
- $type = 'Mailman';
- }
- elsif(my $majordomo = $head->get('X-Majordomo-Version'))
- { $version = "$majordomo";
- $type = 'Majordomo';
- }
- elsif(my $ecartis = $head->get('X-Ecartis-Version'))
- { ($software, $version) = $ecartis =~ m/^(.*)\s+(v[\d.]+)/;
- $type = 'Ecartis';
- }
- elsif(my $listar = $head->get('X-Listar-Version'))
- { ($software, $version) = $listar =~ m/^(.*?)\s+(v[\w.]+)/;
- $type = 'Listar';
- }
- elsif(defined($field = $head->get('List-Software'))
- && $field =~ m/listbox/i)
- { ($software, $version) = $field =~ m/^(\S*)\s*(v[\d.]+)\s*$/;
- $type = 'Listbox';
- }
- elsif($field = first { m!LISTSERV-TCP/IP!s } $head->get('Received'))
- { # Listserv is hard to recognise
- ($software, $version) = $field =~
- m!\( (LISTSERV-TCP/IP) \s+ release \s+ (\S+) \)!xs;
- $type = 'Listserv';
- }
- elsif(defined($field = $head->get('X-Mailing-List'))
- && $field =~ m[archive/latest])
- { $type = 'Smartlist' }
- elsif(defined($field = $head->get('Mailing-List')) && $field =~ m/yahoo/i )
- { $type = 'YahooGroups' }
- elsif(defined($field) && $field =~ m/(ezmlm)/i )
- { $type = 'Ezmlm' }
- elsif(my $fml = $head->get('X-MLServer'))
- { ($software, $version) = $fml =~ m/^\s*(\S+)\s*\[\S*\s*([^\]]*?)\s*\]/;
- $type = 'FML';
- }
- elsif(defined($field = $head->get('List-Subscribe')
- || $head->get('List-Unsubscribe'))
- && $field =~ m/sympa/i)
- { $type = 'Sympa' }
- elsif(first { m/majordom/i } $head->get('Received'))
- { # Majordomo is hard to recognize
- $type = "Majordomo";
- }
- elsif($field = $head->get('List-ID') && $field =~ m/listbox\.com/i)
- { $type = "Listbox" }
-
- $self->detected($type, $software, $version);
- $self;
-}
-
-#------------------------------------------
-
-
-sub rfc()
-{ my $self = shift;
- return $self->{MMHL_rfc} if defined $self->{MMHL_rfc};
-
- my $head = $self->head;
- defined $head->get('List-Post') ? 'rfc2369'
- : defined $head->get('List-Id') ? 'rfc2919'
- : undef;
-}
-
-#------------------------------------------
-
-
-sub address()
-{ my $self = shift;
- return $self->{MMHL_address} if exists $self->{MMHL_address};
-
- my $type = $self->type || 'Unknown';
- my $head = $self->head;
-
- my ($field, $address);
- if($type eq 'Smartlist' && defined($field = $head->get('X-Mailing-List')))
- { $address = $1 if $field =~ m/\<([^>]+)\>/ }
- elsif($type eq 'YahooGroups')
- { $address = $head->get('X-Apparently-To')->unfoldedBody }
- elsif($type eq 'Listserv')
- { $address = $head->get('Sender') }
-
- $address ||= $head->get('List-Post') || $head->get('Reply-To')
- || $head->get('Sender');
- $address = $address->study if ref $address;
-
- if(!defined $address) { ; }
- elsif(!ref $address)
- { $address =~ s/\bowner-|-(?:owner|bounce|admin)\@//i;
- $address = Mail::Message::Field::Address->new(address => $address);
- }
- elsif($address->isa('Mail::Message::Field::Addresses'))
- { # beautify
- $address = ($address->addresses)[0];
- my $username = defined $address ? $address->username : '';
- if($username =~ s/^owner-|-(owner|bounce|admin)$//i)
- { $address = Mail::Message::Field::Address->new
- (username => $username, domain => $address->domain);
- }
- }
- elsif($address->isa('Mail::Message::Field::URIs'))
- { my $uri = first { $_->scheme eq 'mailto' } $address->URIs;
- $address = defined $uri
- ? Mail::Message::Field::Address->new(address => $uri->to)
- : undef;
- }
- else # Don't understand life anymore :-(
- { undef $address;
- }
-
- $self->{MMHL_address} = $address;
-}
-
-#------------------------------------------
-
-
-sub listname()
-{ my $self = shift;
- return $self->{MMHL_listname} if exists $self->{MMHL_listname};
-
- my $head = $self->head;
-
- # Some lists have a field with the name only
- my $list = $head->get('List-ID') || $head->get('X-List')
- || $head->get('X-ML-Name');
-
- my $listname;
- if(defined $list)
- { $listname = $list->study->decodedBody;
- }
- elsif(my $address = $self->address)
- { $listname = $address->phrase || $address->address;
- }
-
- $self->{MMHL_listname} = $listname;
-}
-
-#------------------------------------------
-
-
-my $list_field_names
- = qr/ ^ (?: List|X-Envelope|X-Original ) -
- | ^ (?: Precedence|Mailing-List|Approved-By ) $
- | ^ X-(?: Loop|BeenThere|Sequence|List|Sender|MLServer ) $
- | ^ X-(?: Mailman|Listar|Egroups|Encartis|ML ) -
- | ^ X-(?: Archive|Mailing|Original|Mail|ListServer ) -
- | ^ (?: Mail-Followup|Delivered|Errors|X-Apperently ) -To $
- /xi;
-
-sub isListGroupFieldName($) { $_[1] =~ $list_field_names }
-
-#------------------------------------------
-
-
-sub collectFields()
-{ my $self = shift;
- my @names = map { $_->name } $self->head->grepNames($list_field_names);
- $self->addFields(@names);
- @names;
-}
-
-#------------------------------------------
-
-
-sub details()
-{ my $self = shift;
- my $type = $self->type || 'Unknown';
-
- my $software = $self->software;
- undef $software if defined($software) && $type eq $software;
- my $version = $self->version;
- my $release
- = defined $software
- ? (defined $version ? " ($software $version)" : " ($software)")
- : (defined $version ? " ($version)" : '');
-
- my $address = $self->address || 'unknown address';
- my $fields = scalar $self->fields;
- "$type at $address$release, $fields fields";
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ListGroup.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ListGroup.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,533 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::ListGroup - mailinglist related header fields
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::ListGroup
- is a Mail::Message::Head::FieldGroup
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $lg = Mail::Message::Head::ListGroup->new(head => $head, ...);
- $head->addListGroup($lg);
-
- my $lg = $head->addListGroup(...);
-
- $lg->delete;
-
-
-=head1 DESCRIPTION
-
-A I<list group> is a set of header fields which are added by mailing-list
-managing software. This class knowns various details about that software.
-
-The knowledge and test messages which are used to initially implement
-this module is taken from Mail::ListDetector, written by
-Michael Stevens <mailto:michael at etla.org>. The logic is redesigned to
-add flexibility and use the powerful MailBox features.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<address>
-
-=over 4
-
-Returns a L<Mail::Message::Field::Address|Mail::Message::Field::Address> object (or C<undef>) which
-defines the posting address of the mailing list.
-
-=back
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Constructors">
-
-=back
-
-$obj-E<gt>B<from>(HEAD|MESSAGE)
-
-=over 4
-
-Create a C<Mail::Message::Head::ListGroup> based in the specified MESSAGE
-or message HEAD.
-
-=back
-
-$obj-E<gt>B<implementedTypes>
-
-Mail::Message::Head::ListGroup-E<gt>B<implementedTypes>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Constructors">
-
-=back
-
-$obj-E<gt>B<listname>
-
-=over 4
-
-Returns the name of the mailing list, which is usually a part of the
-e-mail address which is used to post the messages to.
-
-=back
-
-Mail::Message::Head::ListGroup-E<gt>B<new>(FIELDS, OPTIONS)
-
-=over 4
-
-Construct an object which maintains one set of mailing list headers
-
- Option Defined in Default
- address C<undef>
- head L<Mail::Message::Head::FieldGroup> C<undef>
- listname <derived from address>
- log L<Mail::Reporter> C<'WARNINGS'>
- rfc C<undef>
- software L<Mail::Message::Head::FieldGroup> C<undef>
- trace L<Mail::Reporter> C<'WARNINGS'>
- type L<Mail::Message::Head::FieldGroup> C<undef>
- version L<Mail::Message::Head::FieldGroup> C<undef>
-
-. address STRING|OBJECT
-
-=over 4
-
-Address of the mailing list, which may be specified as STRING
-or e-mail containing object (a Mail::Address or L<Mail::Identity|Mail::Identity>.
-In any case, the data is converted into a L<Mail::Identity|Mail::Identity>.
-
-=back
-
-. head HEAD
-
-. listname STRING
-
-=over 4
-
-A short textual representation of the mailing-list.
-
-=back
-
-. log LEVEL
-
-. rfc 'rfc2919'|'rfc2369'
-
-=over 4
-
-Defines the mailing list software follows an rfc.
-
-=back
-
-. software STRING
-
-. trace LEVEL
-
-. type STRING
-
-. version STRING
-
-=back
-
-$obj-E<gt>B<rfc>
-
-=over 4
-
-When the mailing list software follows the guidelines of one of the dedicated
-RFCs, then this will be returned otherwise C<undef>. The return values can
-be C<rfc2919>, C<rfc2369>, or C<undef>.
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<add>((FIELD, VALUE) | OBJECT)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<addFields>([FIELDNAMES])
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<attach>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<fieldNames>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<fields>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<head>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<isListGroupFieldName>(NAME)
-
-Mail::Message::Head::ListGroup-E<gt>B<isListGroupFieldName>(NAME)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<software>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-$obj-E<gt>B<version>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<collectFields>
-
-=over 4
-
-Scan the header for fields which are usually contained in mailing list
-software. This method is automatically called when a list group is
-constructed L<from()|Mail::Message::Head::ListGroup/"Constructors"> an existing header or message.
-
-Returned are the names of the list header fields found, in scalar
-context the amount. An empty list/zero indicates that this is not
-a mailing list message.
-
-Please warn the author of MailBox if you see that to few
-or too many fields are included.
-
-=back
-
-$obj-E<gt>B<detected>(TYPE, SOFTWARE, VERSION)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::ListGroup-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<details>
-
-=over 4
-
-Produce information about the detected/create list group, which may be
-helpful during debugging, by default to the selected file handle.
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::ListGroup-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::ListGroup-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot convert "$string" into an address object
-
-The L<new(address)|Mail::Message::Head::ListGroup/"Constructors"> is coerced into a L<Mail::Message::Field::Address|Mail::Message::Field::Address>,
-which fails. Have a look at L<Mail::Message::Field::Address::coerce()|Mail::Message::Field::Address/"Constructors">
-to see what valid arguments are.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-=head2 Mailing list fields
-
-
-=head3 Detected lists
-
-The L<Mail::Message::Head::ListGroup|Mail::Message::Head::ListGroup> class can detect many different
-mailing lists, some of which are very popular and some of which are
-rare.
-
-Numerous fields in a header are addded when the message is passed
-through a mailing list server. Each list software has defined its own
-fields, sometimes woth conflicting definitions. There are also two
-RFCs about mailing list: C<rfc2919> and C<rfc2369>.
-
-The following lists are currently detected. Between parenthesis is
-the string returned by L<type()|Mail::Message::Head::FieldGroup/"Access to the header"> when that differs from the software
-name.
-
-=over 4
-
-=item * CommuniGate
-
-Legacy commercial MacOS implementation by Stalker Software Inc.
-L<http://www.stalker.com/mac/default.html>
-
-=item * CommuniGate Pro (CommuniGatePro)
-
-Commercial rfc2919 compliant implementation by Stalker Software Inc.
-L<http://www.stalker.com>
-
-=item * Ecartis
-
-Commercial mailing list manager, formerly known as Listar. Produced
-by NodeRunner Computing. See L<http://www.ecartis.com>.
-
-=item * Ezmlm
-
-Open Source mailing list manager, available from L<http://www.ezmlm.org>.
-
-=item * FML
-
-Open Source mailing list manager, see L<http://www.fml.org>.
-
-=item * Listar
-
-Old name for Ecartis.
-
-=item * Listbox
-
-Mailing lists defined at L<http://listbox.com>.
-
-=item * Mailman
-
-GNU's mailing list manager, available from L<http://www.list.org>.
-
-=item * Majordomo
-
-Free (licenced) mailing list manager by Great Circle Associates,
-available from L<http://www.greatcircle.com/majordomo/>
-
-=item * Smartlist
-
-Related to procmail, as expressed by their shared main page at
-L<http://www.procmail.org/>.
-
-=item * Yahoo! Groups (YahooGroups)
-
-Mailing lists defined at L<http://groups.yahoo.com>.
-
-=item * Listserv
-
-Commercial mailing list manager, produced by L-Soft. See
-L<http://www.lsoft.com/>.
-
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ListGroup.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ListGroup.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Partial.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,124 +0,0 @@
-
-use strict;
-
-package Mail::Message::Head::Partial;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head::Complete';
-
-use Scalar::Util 'weaken';
-
-
-sub removeFields(@)
-{ my $self = shift;
- my $known = $self->{MMH_fields};
-
- foreach my $match (@_)
- {
- if(ref $match)
- { $_ =~ $match && delete $known->{$_} foreach keys %$known;
- }
- else { delete $known->{lc $match} }
- }
-
- $self->cleanupOrderedFields;
-}
-
-#------------------------------------------
-
-
-sub removeFieldsExcept(@)
-{ my $self = shift;
- my $known = $self->{MMH_fields};
- my %remove = map { ($_ => 1) } keys %$known;
-
- foreach my $match (@_)
- { if(ref $match)
- { $_ =~ $match && delete $remove{$_} foreach keys %remove;
- }
- else { delete $remove{lc $match} }
- }
-
- delete @$known{ keys %remove };
-
- $self->cleanupOrderedFields;
-}
-
-#------------------------------------------
-
-
-sub removeResentGroups()
-{ my $self = shift;
- require Mail::Message::Head::ResentGroup;
-
- my $known = $self->{MMH_fields};
- my $found = 0;
- foreach my $name (keys %$known)
- { next unless Mail::Message::Head::ResentGroup
- ->isResentGroupFieldName($name);
- delete $known->{$name};
- $found++;
- }
-
- $self->cleanupOrderedFields;
- $self->modified(1) if $found;
- $found;
-}
-
-#------------------------------------------
-
-
-sub removeListGroup()
-{ my $self = shift;
- require Mail::Message::Head::ListGroup;
-
- my $known = $self->{MMH_fields};
- my $found = 0;
- foreach my $name (keys %$known)
- { next unless Mail::Message::Head::ListGroup->isListGroupFieldName($name);
- delete $known->{$name};
- $found++;
- }
-
- $self->cleanupOrderedFields if $found;
- $self->modified(1) if $found;
- $found;
-}
-
-#------------------------------------------
-
-
-sub removeSpamGroups()
-{ my $self = shift;
- require Mail::Message::Head::SpamGroup;
-
- my $known = $self->{MMH_fields};
- my $found = 0;
- foreach my $name (keys %$known)
- { next unless Mail::Message::Head::SpamGroup->isSpamGroupFieldName($name);
- delete $known->{$name};
- $found++;
- }
-
- $self->cleanupOrderedFields if $found;
- $self->modified(1) if $found;
- $found;
-}
-
-#------------------------------------------
-
-
-sub cleanupOrderedFields()
-{ my $self = shift;
- my @take = grep { defined $_ } @{$self->{MMH_order}};
- weaken($_) foreach @take;
- $self->{MMH_order} = \@take;
- $self;
-}
-
-#------------------------------------------
-
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Partial.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Partial.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,763 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::Partial - subset of header information of a message
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::Partial
- is a Mail::Message::Head::Complete
- is a Mail::Message::Head
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $partial = $head->strip;
- $partial->isa('Mail::Message::Head') # true
- $partial->isDelayed # false
- $partial->isPartial # true
-
- $partial->removeFields( qr/^X-/ );
- $partial->removeFieldsExcept( qw/To From/ );
- $partial->removeResentGroups;
- $partial->removeListGroup;
- $partial->removeSpamGroups;
-
-
-=head1 DESCRIPTION
-
-Header information consumes a considerable amount of memory. Most of this
-information is only useful during a short period of time in your program,
-or sometimes it is not used at all. You then can decide to remove most
-of the header information. However, be warned that it will be lost
-permanently: the header (and therefore the messsage) gets mutulated!
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<build>([PAIR|FIELD]-LIST)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Constructors">
-
-=back
-
-$obj-E<gt>B<clone>([FIELDS])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Constructors">
-
-=back
-
-Mail::Message::Head::Partial-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Head/"Constructors">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isEmpty>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<knownNames>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"The header">
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"The header">
-
-=back
-
-$obj-E<gt>B<wrap>(INTEGER)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"The header">
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<add>(FIELD | LINE | (NAME,BODY[,ATTRS]))
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<addListGroup>(OBJECT)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<addResentGroup>(RESENT-GROUP|DATA)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<addSpamGroup>(OBJECT)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<cleanupOrderedFields>
-
-=over 4
-
-The header maintains a list of fields which are ordered in sequence of
-definition. It is required to maintain the header order to keep the
-related fields of resent groups together. The fields are also included
-in a hash, sorted on their name for fast access.
-
-The references to field objects in the hash are real, those in the ordered
-list are weak. So when field objects are removed from the hash, their
-references in the ordered list are automagically undef'd.
-
-When many fields are removed, for instance with L<removeFields()|Mail::Message::Head::Partial/"Access to the header"> or
-L<removeFieldsExcept()|Mail::Message::Head::Partial/"Access to the header">, then it is useful to remove the list of undefs
-from the ordered list as well. In those cases, this method is called
-automatically, however you may have your own reasons to call this method.
-
-=back
-
-$obj-E<gt>B<count>(NAME)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<delete>(NAME)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<get>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-$obj-E<gt>B<grepNames>([NAMES|ARRAY-OF-NAMES|REGEXS])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<listGroup>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<names>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<printSelected>(FILEHANDLE, (STRING|REGEXP)s)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<printUndisclosed>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeContentInfo>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeField>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeFields>(STRING|REGEXP, [STRING|REGEXP, ...])
-
-=over 4
-
-Remove the fields from the header which are exactly named 'STRING' (case
-insensitive) or match the REGular EXPresssion. Do not forget to add the
-'i' modifier to the REGEXP, because fields are case insensitive.
-
-See also L<removeField()|Mail::Message::Head::Complete/"Access to the header"> which is used to remove one field object from
-the header. The reverse specification can be made with
-C<removeFieldsExcept()>.
-
-I<Example:>
-
- $head->removeFields('bcc', 'received');
- $head->removeFields( qr/^content-/i );
-
-=back
-
-$obj-E<gt>B<removeFieldsExcept>(STRING|REGEXP, [STRING|REGEXP, ...])
-
-=over 4
-
-Remove all fields from the header which are not equivalent to one of the
-specified STRINGs (case-insensitive) and which are not matching one of
-the REGular EXPressions. Do not forget to add the 'i' modifier to the
-REGEXP, because fields are case insensitive.
-
-See also L<removeField()|Mail::Message::Head::Complete/"Access to the header"> which is used to remove one field object from
-the header. The reverse specification can be made with C<removeFields()>.
-
-I<Example:>
-
- $head->removeFieldsExcept('subject', qr/^content-/i );
- $head->removeFieldsExcept( qw/subject to from sender cc/ );
-
-=back
-
-$obj-E<gt>B<removeListGroup>
-
-=over 4
-
-Removes all header lines which are used to administer mailing lists.
-Which fields that are is explained in L<Mail::Message::Head::ListGroup|Mail::Message::Head::ListGroup>.
-Returned is the number of removed lines.
-
-=back
-
-$obj-E<gt>B<removeResentGroups>
-
-=over 4
-
-Removes all header lines which are member of a I<resent group>, which
-are explained in L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup>. Returned is the
-number of removed lines.
-
-For removing single groups (for instance because you want to keep the
-last), use L<Mail::Message::Head::FieldGroup::delete()|Mail::Message::Head::FieldGroup/"The header">.
-
-=back
-
-$obj-E<gt>B<removeSpamGroups>
-
-=over 4
-
-Removes all header lines which were produced by spam detection and
-spam-fighting software. Which fields that are is explained in
-L<Mail::Message::Head::SpamGroup|Mail::Message::Head::SpamGroup>. Returned is the number of removed lines.
-
-=back
-
-$obj-E<gt>B<resentGroups>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<reset>(NAME, FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<set>(FIELD | LINE | (NAME, BODY [,ATTRS]))
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<spamDetected>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<spamGroups>([NAMES])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<study>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-=head2 About the body
-
-
-$obj-E<gt>B<guessBodySize>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-$obj-E<gt>B<guessTimeStamp>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"About the body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-$obj-E<gt>B<recvstamp>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"About the body">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"About the body">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<addOrderedFields>(FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<createFromLine>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Internals">
-
-=back
-
-$obj-E<gt>B<createMessageId>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<messageIdPrefix>([PREFIX, [HOSTNAME]|CODE])
-
-Mail::Message::Head::Partial-E<gt>B<messageIdPrefix>([PREFIX, [HOSTNAME]|CODE])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<setNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::Partial-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::Partial-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::Partial-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Cannot remove field $name from header: not found.
-
-You ask to remove a field which is not known in the header. Using
-L<delete()|Mail::Message::Head::Complete/"Access to the header">, L<reset()|Mail::Message::Head::Complete/"Access to the header">, or L<set()|Mail::Message::Head::Complete/"Access to the header"> to do the job will not result
-in warnings: those methods check the existence of the field first.
-
-I<Warning:> Field objects have an implied name ($name)
-
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-=head2 Reducing the header size
-
-A message header is very large in memory and quite large on disk, and
-therefore a good candidate for size reduction. One way to reduce the
-size is by simply eliminating superfluous header fields. Each field
-requires at least 100 bytes of run-time memory, so this may help!
-
-Before you start playing around with L<removeFields()|Mail::Message::Head::Partial/"Access to the header"> and
-L<removeFieldsExcept()|Mail::Message::Head::Partial/"Access to the header">, you may take a look at two large groups
-of fields which can be removes as sets: the resent headers and the
-mailinglist headers.
-
-Resent headers describe the intermediate steps in the transmission
-process for the messages. After successful delivery, they are rarely
-useful.
-
-When you are archiving a mailinglist, it is hardly ever useful to
-store a the list administration lines for each message as well.
-
-I<Example:> see examples/reduce.pl in distribution
-
-
- foreach my $msg ($folder->messages)
- { $msg->head->removeResentGroups;
- $msg->head->removeResentList;
- }
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Partial.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Partial.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ResentGroup.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,257 +0,0 @@
-
-use strict;
-
-package Mail::Message::Head::ResentGroup;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head::FieldGroup';
-
-use Scalar::Util 'weaken';
-use Mail::Message::Field::Fast;
-
-use Sys::Hostname 'hostname';
-use Mail::Address;
-
-
-# all lower cased!
-my @ordered_field_names =
- ( 'return-path', 'delivered-to' , 'received', 'resent-date'
- , 'resent-from', 'resent-sender', , 'resent-to', 'resent-cc'
- , 'resent-bcc', 'resent-message-id'
- );
-
-my %resent_field_names = map { ($_ => 1) } @ordered_field_names;
-
-sub init($$)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MMHR_real} = $args->{message_head};
-
- $self->set(Received => $self->createReceived)
- if $self->orderedFields && ! $self->received;
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub from($@)
-{ return $_[0]->resentFrom if @_ == 1; # backwards compat
-
- my ($class, $from, %args) = @_;
- my $head = $from->isa('Mail::Message::Head') ? $from : $from->head;
-
- my (@groups, $group, $return_path, $delivered_to);
-
- foreach my $field ($head->orderedFields)
- { my $name = $field->name;
- next unless $resent_field_names{$name};
-
- if($name eq 'return-path') { $return_path = $field }
- elsif($name eq 'delivered-to') { $delivered_to = $field }
- elsif(substr($name, 0, 7) eq 'resent-')
- { $group->add($field) if defined $group }
- elsif($name eq 'received')
- {
- $group = Mail::Message::Head::ResentGroup
- ->new($field, message_head => $head);
- push @groups, $group;
-
- $group->add($delivered_to) if defined $delivered_to;
- undef $delivered_to;
-
- $group->add($return_path) if defined $return_path;
- undef $return_path;
- }
- }
-
- @groups;
-}
-
-#------------------------------------------
-
-
-sub messageHead(;$)
-{ my $self = shift;
- @_ ? $self->{MMHR_real} = shift : $self->{MMHR_real};
-}
-
-#------------------------------------------
-
-
-sub orderedFields()
-{ my $head = shift->head;
- map { $head->get($_) || () } @ordered_field_names;
-}
-
-#------------------------------------------
-
-
-sub set($;$)
-{ my $self = shift;
- my $field;
-
- if(@_==1) { $field = shift }
- else
- { my ($fn, $value) = @_;
- my $name = $resent_field_names{lc $fn} ? $fn : "Resent-$fn";
- $field = Mail::Message::Field::Fast->new($name, $value);
- }
-
- $self->head->set($field);
- $field;
-}
-
-#-------------------------------------------
-
-sub fields() { shift->orderedFields }
-
-#-------------------------------------------
-
-sub fieldNames() { map { $_->Name } shift->orderedFields }
-
-#-------------------------------------------
-
-sub delete()
-{ my $self = shift;
- my $head = $self->messageHead;
- $head->removeField($_) foreach $self->fields;
- $self;
-}
-
-#------------------------------------------
-
-
-sub add(@) { shift->set(@_) }
-
-#-------------------------------------------
-
-
-sub addFields(@) { shift->notImplemented }
-
-#-------------------------------------------
-
-
-sub returnPath() { shift->{MMHR_return_path} }
-
-#------------------------------------------
-
-
-sub deliveredTo() { shift->head->get('Delivered-To') }
-
-#------------------------------------------
-
-
-sub received() { shift->head->get('Received') }
-
-#------------------------------------------
-
-
-sub receivedTimestamp()
-{ my $received = shift->received or return;
- my $comment = $received->comment or return;
- Mail::Message::Field->dateToTimestamp($comment);
-}
-
-#------------------------------------------
-
-
-sub date($) { shift->head->get('resent-date') }
-
-#------------------------------------------
-
-
-sub dateTimestamp()
-{ my $date = shift->date or return;
- Mail::Message::Field->dateToTimestamp($date->unfoldedBody);
-}
-
-#------------------------------------------
-
-
-sub resentFrom()
-{ my $from = shift->head->get('resent-from') or return ();
- wantarray ? $from->addresses : $from;
-}
-
-#------------------------------------------
-
-
-sub sender()
-{ my $sender = shift->head->get('resent-sender') or return ();
- wantarray ? $sender->addresses : $sender;
-}
-
-#------------------------------------------
-
-
-sub to()
-{ my $to = shift->head->get('resent-to') or return ();
- wantarray ? $to->addresses : $to;
-}
-
-#------------------------------------------
-
-
-sub cc()
-{ my $cc = shift->head->get('resent-cc') or return ();
- wantarray ? $cc->addresses : $cc;
-}
-
-#------------------------------------------
-
-
-sub bcc()
-{ my $bcc = shift->head->get('resent-bcc') or return ();
- wantarray ? $bcc->addresses : $bcc;
-}
-
-#------------------------------------------
-
-
-sub destinations()
-{ my $self = shift;
- ($self->to, $self->cc, $self->bcc);
-}
-
-#------------------------------------------
-
-
-sub messageId() { shift->head->get('resent-message-id') }
-
-#------------------------------------------
-
-
-sub isResentGroupFieldName($) { $resent_field_names{lc $_[1]} }
-
-#------------------------------------------
-
-
-my $unique_received_id = 'rc'.time;
-
-sub createReceived(;$)
-{ my ($self, $domain) = @_;
-
- unless(defined $domain)
- { my $sender = ($self->sender)[0] || ($self->resentFrom)[0];
- $domain = $sender->host if defined $sender;
- }
-
- my $received
- = 'from ' . $domain
- . ' by ' . hostname
- . ' with SMTP'
- . ' id ' . $unique_received_id++
- . ' for ' . $self->head->get('Resent-To') # may be wrong
- . '; '. Mail::Message::Field->toDate;
-
- $received;
-}
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ResentGroup.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ResentGroup.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,652 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::ResentGroup - header fields tracking message delivery
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::ResentGroup
- is a Mail::Message::Head::FieldGroup
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $rg = Mail::Message::Head::ResentGroup->new(head => $head,
- From => 'me at home.nl', To => 'You at tux.aq');
- $head->addResentGroup($rg);
-
- my $rg = $head->addResentGroup(From => 'me');
-
- my @from = $rg->From;
-
- my @rgs = $head->resentGroups;
- $rg[2]->delete if @rgs > 2;
-
-
-=head1 DESCRIPTION
-
-A I<resent group> is a set of header fields which describe one intermediate
-step in the message transport. Resent groups B<have NOTHING to do> with
-user activety; there is no relation to the C<user's> sense of creating
-reply, forward, or bounce messages at all!
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Constructors">
-
-=back
-
-$obj-E<gt>B<from>([HEAD|MESSAGE, OPTIONS])
-
-=over 4
-
-WARNING: this method has two very different purposes. For backward
-compatibility reasons, without arguments L<resentFrom()|Mail::Message::Head::ResentGroup/"Access to the header"> is called to
-return the C<From> field of this resent group.
-
-With any arguments, a list of C<Mail::Message::Head::ResentGroup> objects
-is returned, taken from the specified MESSAGE or message HEAD.
-
-=back
-
-$obj-E<gt>B<implementedTypes>
-
-Mail::Message::Head::ResentGroup-E<gt>B<implementedTypes>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Constructors">
-
-=back
-
-Mail::Message::Head::ResentGroup-E<gt>B<new>([FIELDS], OPTIONS)
-
-=over 4
-
-Create an object which maintains one set of resent headers. The
-FIELDS are L<Mail::Message::Field|Mail::Message::Field> objects from the same header.
-
-OPTIONS which start with capitals will be used to construct additional
-fields. These option names are prepended with C<Resent->, keeping the
-capitization of what is specified.
-
- Option Defined in Default
- Bcc undef
- Cc undef
- Date <now>
- Delivered-To undef
- From <required>
- Message-ID <uniquely created>
- Received <created>
- Return-Path undef
- Sender undef
- To undef
- head <created automatically>
- log L<Mail::Reporter> C<'WARNINGS'>
- message_head C<undef>
- software L<Mail::Message::Head::FieldGroup> C<undef>
- trace L<Mail::Reporter> C<'WARNINGS'>
- type L<Mail::Message::Head::FieldGroup> C<undef>
- version L<Mail::Message::Head::FieldGroup> C<undef>
-
-. Bcc STRING|OBJECT|OBJECTS
-
-. Cc STRING|OBJECT|OBJECTS
-
-. Date STRING
-
-=over 4
-
-When this resent-group is dispatched by the resender of the message. Like
-the C<Date> field, it is not the date and time that the message was
-actually transported.
-
-=back
-
-. Delivered-To STRING|FIELD
-
-. From STRING|OBJECT|OBJECTS
-
-. Message-ID STRING|FIELD
-
-=over 4
-
-The C<Resent-Message-ID> which identifies this resent group. The FIELD
-must contain a message id.
-
-=back
-
-. Received STRING
-
-=over 4
-
-The C<Received> field is the starting line for a resent group of header
-lines. If it is not defined, one is created using L<createReceived()|Mail::Message::Head::ResentGroup/"Internals">.
-
-=back
-
-. Return-Path STRING|FIELD
-
-. Sender STRING|OBJECT
-
-=over 4
-
-Only permitted when more than one from address is specified. In this case,
-it selects one of these addresses as the main originator of the message.
-
-=back
-
-. To STRING|OBJECT|OBJECTS
-
-. head OBJECT
-
-=over 4
-
-The header where the data is stored in. Be dafault a
-L<Mail::Message::Head::Partial|Mail::Message::Head::Partial> is created for you.
-
-=back
-
-. log LEVEL
-
-. message_head HEAD
-
-=over 4
-
-The real header of the message where this resent group is part of. The
-C<head> used in this class is only a container for a subset of fields.
-
-=back
-
-. software STRING
-
-. trace LEVEL
-
-. type STRING
-
-. version STRING
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<add>((FIELD =E<gt> VALUE) | OBJECT)
-
-=over 4
-
-All fields appear only once, so C<add()> behaves as L<set()|Mail::Message::Head::ResentGroup/"The header">.
-
-=back
-
-$obj-E<gt>B<addFields>([FIELDNAMES])
-
-=over 4
-
-Not applicable to resent-groups: the same name can appear in more than
-one group. Therefore, a FIELDNAME is sufficiently distinctive.
-
-=back
-
-$obj-E<gt>B<attach>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<fieldNames>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<fields>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<head>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<messageHead>([HEAD])
-
-=over 4
-
-Returns (optionally after setting) the real header where this resent group
-belongs to. This may be undef at creation, and then later filled in
-when L<Mail::Message::Head::Complete::addResentGroup()|Mail::Message::Head::Complete/"Access to the header"> is called.
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-Returns the fields in the order as should appear in header according
-to rfc2822. For the C<Resent-> fields of the group, the order is
-not that important, but the C<Return-Path>, C<Delivered-To>, and C<Received>
-must come first. Only fields mentioned in the RFC are returned.
-
-=back
-
-$obj-E<gt>B<set>((FIELD =E<gt> VALUE) | OBJECT)
-
-=over 4
-
-Set a FIELD to a (new) VALUE. The FIELD names which do not start with
-'Resent-*' but need it will have that added. It is also an option to
-specify a fully prepared message field OBJECT. In any case, a field
-OBJECT is returned.
-
-I<Example:>
-
- my $this = Mail::Message::Head::ResentGroup->new;
- $this->set(To => 'fish at tux.aq');
- $msg->addResentGroup($this);
- $msg->send;
-
- $msg->bounce(To => 'fish at tux.aq')->send; # the same
-
- my $this = Mail::Message::Head::ResentGroup
- ->new(To => 'fish at tux.aq');
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-In scalar context, the C<Resent-Bcc> field is returned. In list context,
-the addresses as specified within the bcc field are returned as
-Mail::Address objects. Bcc fields are not transmitted (hidden for
-external parties).
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-In scalar context, the C<Resent-Cc> field is returned. In list context,
-the addresses as specified within the cc field are returned as
-Mail::Address objects.
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-Returns the C<Resent-Date> field, or C<undef> if it was not defined.
-
-=back
-
-$obj-E<gt>B<dateTimestamp>
-
-=over 4
-
-The timestamp as stored within the C<Resent-Date> field converted to
-local system time.
-
-=back
-
-$obj-E<gt>B<deliveredTo>
-
-=over 4
-
-The field which describes the C<Delivered-To> of this resent group.
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-Returns a list of all addresses specified in the C<Resent-To>, C<-Cc>, and
-C<-Bcc> fields of this resent group.
-
-=back
-
-$obj-E<gt>B<isResentGroupFieldName>(NAME)
-
-Mail::Message::Head::ResentGroup-E<gt>B<isResentGroupFieldName>(NAME)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-Returns the message-ID used for this group of resent lines.
-
-=back
-
-$obj-E<gt>B<received>
-
-=over 4
-
-The field which describes the C<Received> data of this resent group.
-
-=back
-
-$obj-E<gt>B<receivedTimestamp>
-
-=over 4
-
-The timestamp as stored within the C<Received> field converted to
-local system time.
-
-=back
-
-$obj-E<gt>B<resentFrom>
-
-=over 4
-
-In scalar context, the C<Resent-From> field is returned. In list
-context, the addresses as specified within the from field are
-returned as Mail::Address objects.
-
-For reasons of backward compatibility and consistency, the L<from()|Mail::Message::Head::ResentGroup/"METHODS">
-method will return the same as this method.
-
-=back
-
-$obj-E<gt>B<returnPath>
-
-=over 4
-
-The field which describes the C<Return-Path> of this resent group.
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-In scalar context, the C<Resent-Sender> field is returned. In list
-context, the addresses as specified within the from field are
-returned as Mail::Address objects.
-
-=back
-
-$obj-E<gt>B<software>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-In scalar context, the C<Resent-To> field is returned. In list context,
-the addresses as specified within the to field are returned as
-Mail::Address objects.
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-$obj-E<gt>B<version>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<collectFields>([NAME])
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Internals">
-
-=back
-
-$obj-E<gt>B<createReceived>([DOMAIN])
-
-=over 4
-
-Create a recieved field for this resent group. This is automatically
-called if none was specified during creation of this resent group object.
-
-The content of this field is described in RFC2821 section 4.4. It could use
-some improvement.
-
-=back
-
-$obj-E<gt>B<detected>(TYPE, SOFTWARE, VERSION)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::ResentGroup-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<details>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::ResentGroup-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::ResentGroup-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Message header required for creation of ResentGroup.
-
-It is required to know to which header the resent-group
-is created. Use the C<head> option. Maybe you should use
-L<Mail::Message::Head::Complete::addResentGroup()|Mail::Message::Head::Complete/"Access to the header"> with DATA, which will
-organize the correct initiations for you.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/ResentGroup.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/ResentGroup.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/SpamGroup.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,175 +0,0 @@
-
-package Mail::Message::Head::SpamGroup;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head::FieldGroup';
-
-use strict;
-use warnings;
-
-use Carp 'confess';
-
-
-#------------------------------------------
-
-
-my %fighters;
-my $fighterfields; # one regexp for all fields
-
-sub knownFighters() { keys %fighters }
-
-#------------------------------------------
-
-
-sub fighter($;@)
-{ my ($thing, $name) = (shift, shift);
-
- if(@_)
- { my %args = @_;
- defined $args{fields} or confess "Spamfighters require fields\n";
- defined $args{isspam} or confess "Spamfighters require isspam\n";
- $fighters{$name} = \%args;
-
- my @fields = map { $_->{fields} } values %fighters;
- local $" = '|';
- $fighterfields = qr/@fields/;
- }
-
- %{$fighters{$name}};
-}
-
-
-BEGIN
-{ __PACKAGE__->fighter( SpamAssassin =>
- fields => qr/^X-Spam-/i
- , isspam =>
- sub { my ($sg, $head) = @_;
- my $f = $head->get('X-Spam-Flag') || $head->get('X-Spam-Status')
- or return 0;
-
- $f =~ m/^yes\b/i;
- }
- , version =>
- sub { my ($sg, $head) = @_;
- my $assin = $head->get('X-Spam-Checker-Version') or return ();
- my ($software, $version) = $assin =~ m/^(.*)\s+(.*?)\s*$/;
- ($software, $version);
- }
- );
-
- __PACKAGE__->fighter( 'Habeas-SWE' =>
- fields => qr/^X-Habeas-SWE/i
- , isspam =>
- sub { my ($sg, $head) = @_;
- not $sg->habeasSweFieldsCorrect;
- }
- );
-
- __PACKAGE__->fighter( MailScanner =>
- fields => qr/^X-MailScanner/i
- , isspam =>
- sub { my ($sg, $head) = @_;
- my $subject = $head->get('subject');
- $subject =~ m/^\{ (?:spam|virus)/xi;
- }
- );
-
-}
-
-#------------------------------------------
-
-
-sub from($@)
-{ my ($class, $from, %args) = @_;
- my $head = $from->isa('Mail::Message::Head') ? $from : $from->head;
- my ($self, @detected);
-
- my @types = defined $args{types} ? @{$args{types}} : $class->knownFighters;
-
- foreach my $type (@types)
- { $self = $class->new(head => $head) unless defined $self;
- next unless $self->collectFields($type);
-
- my %fighter = $self->fighter($type);
- my ($software, $version)
- = defined $fighter{version} ? $fighter{version}->($self, $head) : ();
-
- $self->detected($type, $software, $version);
- $self->spamDetected( $fighter{isspam}->($self, $head) );
-
- push @detected, $self;
- undef $self; # create a new one
- }
-
- @detected;
-}
-
-#------------------------------------------
-
-sub collectFields($)
-{ my ($self, $set) = @_;
- my %fighter = $self->fighter($set)
- or confess "ERROR: No spam set $set.";
-
- my @names = map { $_->name } $self->head->grepNames( $fighter{fields} );
- return () unless @names;
-
- $self->addFields(@names);
- @names;
-}
-
-#------------------------------------------
-
-
-sub isSpamGroupFieldName($) { $_[1] =~ $fighterfields }
-
-#------------------------------------------
-
-
-my @habeas_lines =
-( 'winter into spring', 'brightly anticipated', 'like Habeas SWE (tm)'
-, 'Copyright 2002 Habeas (tm)'
-, 'Sender Warranted Email (SWE) (tm). The sender of this'
-, 'email in exchange for a license for this Habeas'
-, 'warrant mark warrants that this is a Habeas Compliant'
-, 'Message (HCM) and not spam. Please report use of this'
-, 'mark in spam to <http://www.habeas.com/report/>.'
-);
-
-sub habeasSweFieldsCorrect(;$)
-{ my $self;
-
- if(@_ > 1)
- { my ($class, $thing) = @_;
- my $head = $thing->isa('Mail::Message::Head') ? $thing : $thing->head;
- $self = $head->spamGroups('Habeas-SWE') or return;
- }
- else
- { $self = shift;
- my $type = $self->type;
- return unless defined $type && $type eq 'Habeas-SWE';
- }
-
- my $head = $self->head;
- return if $self->fields != @habeas_lines;
-
- for(my $nr=1; $nr <= $#habeas_lines; $nr++)
- { my $f = $head->get("X-Habeas-SWE-$nr") or return;
- return if $f->unfoldedBody ne $habeas_lines[$nr-1];
- }
-
- 1;
-}
-
-#------------------------------------------
-
-
-sub spamDetected(;$)
-{ my $self = shift;
- @_? ($self->{MMFS_spam} = shift) : $self->{MMFS_spam};
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/SpamGroup.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/SpamGroup.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,540 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::SpamGroup - spam fighting related header fields
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::SpamGroup
- is a Mail::Message::Head::FieldGroup
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $sg = Mail::Message::Head::SpamGroup->new(head => $head, ...);
- $head->addSpamGroup($sg);
-
- my $sg = $head->addSpamGroup( <options> );
- $sg->delete;
-
- my @sgs = $head->spamGroups;
-
-
-=head1 DESCRIPTION
-
-A I<spam group> is a set of header fields which are added by spam detection
-and spam fighting software. This class knows various details about
-that software.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Constructors">
-
-=back
-
-$obj-E<gt>B<fighter>(NAME, [SETTINGS])
-
-Mail::Message::Head::SpamGroup-E<gt>B<fighter>(NAME, [SETTINGS])
-
-=over 4
-
-Get the SETTINGS of a certain spam-fighter, optionally after setting them.
-The L<knownFighters()> method returns the defined names. The names
-are case-sensitive.
-
- Option Defined in Default
- fields <required>
- isspam <required>
- version C<undef>
-
-. fields REGEXP
-
-=over 4
-
-The regular expression which indicates which of the header fields are
-added by the spam fighter software.
-
-=back
-
-. isspam CODE
-
-=over 4
-
-The CODE must return true or false, to indicate whether the spam fighter
-thinks that the message contains spam. The CODE ref is called with
-the spamgroup object (under construction) and the header which is inspected.
-
-=back
-
-. version CODE
-
-=over 4
-
-Can be called to collect the official name and the version of the
-software which is used to detect spam. The CODE ref is called with
-the spamgroup object (under construction) and the header which is inspected.
-
-=back
-
-I<Example:> adding your own spam-fighter definitions
-
-
- Mail::Message::Head::SpamGroup->fighter( 'MY-OWN',
- fields => qw/^x-MY-SPAM-DETECTOR-/,
- isspam => sub { my ($sg, $head) = @_; $head->fields > 100 }
- );
-
-=back
-
-$obj-E<gt>B<from>(HEAD|MESSAGE, OPTIONS)
-
-=over 4
-
-Returns a list of C<Mail::Message::Head::SpamGroup> objects, based on the
-specified MESSAGE or message HEAD.
-
- Option Defined in Default
- types C<undef>
-
-. types ARRAY-OF-NAMES
-
-=over 4
-
-Only the specified types will be tried. If the ARRAY is empty, an empty
-list is returned. Without this option, all sets are returned.
-
-=back
-
-=back
-
-$obj-E<gt>B<habeasSweFieldsCorrect>([MESSAGE|HEAD])
-
-Mail::Message::Head::SpamGroup-E<gt>B<habeasSweFieldsCorrect>([MESSAGE|HEAD])
-
-=over 4
-
-Returns a true value if the MESSAGE or HEAD contains C<Habeas-SWE> fields
-which are correct. Without argument, this is used as instance method on
-an existing Spam-Group.
-
-I<Example:> checking Habeas-SWE fields
-
-
- if(Mail::Message::Head::SpamGroup->habeasSweFieldsCorrect($message))
- { $message->label(spam => 0);
- }
-
- my $sg = $message->head->spamGroups('Habeas-SWE');
- if($sg->habeasSweFieldsCorrect) { ... };
-
- use List::Util 'first';
- if(first {$_->habeasSweFieldsCorrect} $head->spamGroups)
- { ...
- }
-
-=back
-
-$obj-E<gt>B<implementedTypes>
-
-Mail::Message::Head::SpamGroup-E<gt>B<implementedTypes>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Constructors">
-
-=back
-
-$obj-E<gt>B<isSpamGroupFieldName>(NAME)
-
-Mail::Message::Head::SpamGroup-E<gt>B<isSpamGroupFieldName>(NAME)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<knownFighters>
-
-Mail::Message::Head::SpamGroup-E<gt>B<knownFighters>
-
-=over 4
-
-Returns an unsorted list of all names representing pre-defined spam-fighter
-software. You can ask details about them, and register more fighters with
-the L<fighter()|Mail::Message::Head::SpamGroup/"Constructors"> method.
-
-=back
-
-Mail::Message::Head::SpamGroup-E<gt>B<new>(FIELDS, OPTIONS)
-
-=over 4
-
-Construct an object which maintains one set of fields which were added
-by spam fighting software.
-
- Option Defined in Default
- head L<Mail::Message::Head::FieldGroup> C<undef>
- log L<Mail::Reporter> C<'WARNINGS'>
- software L<Mail::Message::Head::FieldGroup> C<undef>
- trace L<Mail::Reporter> C<'WARNINGS'>
- type L<Mail::Message::Head::FieldGroup> C<undef>
- version L<Mail::Message::Head::FieldGroup> C<undef>
-
-. head HEAD
-
-. log LEVEL
-
-. software STRING
-
-. trace LEVEL
-
-. type STRING
-
-. version STRING
-
-=back
-
-$obj-E<gt>B<spamDetected>([BOOLEAN])
-
-=over 4
-
-Returns (after setting) whether this group of spam headers thinks that
-this is spam. See L<Mail::Message::Head::Complete::spamDetected()|Mail::Message::Head::Complete/"Access to the header">.
-
-I<Example:>
-
- die if $head->spamDetected;
-
- foreach my $sg ($head->spamGroups)
- { print $sg->type." found spam\n" if $sg->spamDetected;
- }
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<add>((FIELD, VALUE) | OBJECT)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<addFields>([FIELDNAMES])
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<attach>(HEAD)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<fieldNames>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<fields>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-$obj-E<gt>B<head>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"The header">
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<software>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-$obj-E<gt>B<type>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-$obj-E<gt>B<version>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Access to the header">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<collectFields>([NAME])
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Internals">
-
-=back
-
-$obj-E<gt>B<detected>(TYPE, SOFTWARE, VERSION)
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::SpamGroup-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<details>
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::SpamGroup-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::SpamGroup-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Head::FieldGroup/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-=head2 Spam fighting fields
-
-
-=head3 Detected spam fighting software
-
-The L<Mail::Message::Head::SpamGroup|Mail::Message::Head::SpamGroup> class can be used to detect
-fields which were produced by different spam fighting software.
-
-=over 4
-
-=item * SpamAssassin
-
-These fields are added by L<Mail::SpamAssassin>, which is the central
-implementation of the spam-assassin package. The homepage of this
-GPL'ed project can be found at L<http://spamassassin.org>.
-
-=item * Habeas-SWE
-
-Habeas tries to fight spam via the standard copyright protection
-mechanism: Sender Warranted E-mail (SWE). Only when you have a contract
-with Habeas, you are permitted to add a few copyrighted lines to your
-e-mail. Spam senders will be refused a contract. Mail clients which
-see these nine lines are (quite) sure that the message is sincere.
-
-See L<http://www.habeas.com> for all the details on this commercial
-product.
-
-=item * MailScanner
-
-The MailScanner filter is developed and maintained by
-transtec Computers. The software is available for free download from
-L<http://www.sng.ecs.soton.ac.uk/mailscanner/>. Commercial support
-is provided via L<http://www.mailscanner.biz>.
-
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/SpamGroup.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/SpamGroup.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Subset.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,92 +0,0 @@
-
-use strict;
-
-package Mail::Message::Head::Subset;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head';
-
-use Object::Realize::Later
- becomes => 'Mail::Message::Head::Complete',
- realize => 'load',
- believe_caller => 1;
-
-use Date::Parse;
-
-
-sub count($)
-{ my ($self, $name) = @_;
-
- my @values = $self->get($name);
-
- return $self->load->count($name)
- unless @values;
-
- scalar @values;
-}
-
-#-------------------------------------------
-
-
-sub get($;$)
-{ my $self = shift;
-
- if(wantarray)
- { my @values = $self->SUPER::get(@_);
- return @values if @values;
- }
- else
- { my $value = $self->SUPER::get(@_);
- return $value if defined $value;
- }
-
- $self->load->get(@_);
-}
-
-
-#-------------------------------------------
-
-
-sub guessBodySize()
-{ my $self = shift;
-
- my $cl = $self->SUPER::get('Content-Length');
- return $1 if defined $cl && $cl =~ m/(\d+)/;
-
- my $lines = $self->SUPER::get('Lines'); # 40 chars per lines
- return $1*40 if defined $lines && $lines =~ m/(\d+)/;
-
- undef;
-}
-
-#-------------------------------------------
-# Be careful not to trigger loading: this is not the thoroughness
-# we want from this method.
-
-sub guessTimestamp()
-{ my $self = shift;
- return $self->{MMHS_timestamp} if $self->{MMHS_timestamp};
-
- my $stamp;
- if(my $date = $self->SUPER::get('date'))
- { $stamp = str2time($date, 'GMT');
- }
-
- unless($stamp)
- { foreach ($self->SUPER::get('received'))
- { $stamp = str2time($_, 'GMT');
- last if $stamp;
- }
- }
-
- $self->{MMHS_timestamp} = $stamp;
-}
-
-#-------------------------------------------
-
-
-sub load() {$_[0] = $_[0]->message->loadHead}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Subset.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Subset.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,408 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head::Subset - subset of header information of a message
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head::Subset realizes a Mail::Message::Head::Complete
-
- Mail::Message::Head::Subset
- is a Mail::Message::Head
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message::Head::Subset $subset = ...;
- $subset->isa('Mail::Message::Head') # true
- $subset->guessBodySize # integer or undef
- $subset->isDelayed # true
-
-
-=head1 DESCRIPTION
-
-Some types of folders contain an index file which lists a few lines of
-information per messages. Especially when it is costly to read header lines,
-the index speeds-up access considerably. For instance, the subjects of
-all messages are often wanted, but waiting for a thousand messages of the
-folder to be read may imply a thousand network reads (IMAP) or file
-openings (MH)
-
-When you access header fields which are not in the header subset, the whole
-header has to be parsed (which may consume considerable time, depending on
-the type of folder).
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<build>([PAIR|FIELD]-LIST)
-
-=over 4
-
-See L<Mail::Message::Head/"Constructors">
-
-=back
-
-Mail::Message::Head::Subset-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Head/"Constructors">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isEmpty>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<knownNames>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<count>(NAME)
-
-=over 4
-
-Count the number of fields with this NAME. If the NAME cannot be found,
-the full header get loaded. In case we find any NAME field, it is
-decided we know all of them, and loading is not needed.
-
-=back
-
-$obj-E<gt>B<get>(NAME [,INDEX])
-
-=over 4
-
-Get the data which is related to the field with the NAME. The case of the
-characters in NAME does not matter. When a NAME is used which is not known
-yet, realization will take place.
-
-=back
-
-$obj-E<gt>B<study>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-=head2 About the body
-
-
-$obj-E<gt>B<guessBodySize>
-
-=over 4
-
-The body size is defined in the C<Content-Length> field. However, this
-field may not be known. In that case, a guess is made based on the known
-C<Lines> field. When also that field is not known yet, C<undef> is returned.
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<addOrderedFields>(FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<read>(PARSER)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<setNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head::Subset-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head::Subset-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head::Subset-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head/Subset.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head/Subset.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,259 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Head;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Mail::Message::Head::Complete;
-use Mail::Message::Field::Fast;
-
-use Carp;
-use Scalar::Util 'weaken';
-
-
-use overload qq("") => 'string_unless_carp'
- , bool => 'isEmpty';
-
-# To satisfy overload in static resolving.
-sub toString() { shift->load->toString }
-sub string() { shift->load->string }
-
-sub string_unless_carp()
-{ my $self = shift;
- return $self->toString unless (caller)[0] eq 'Carp';
-
- (my $class = ref $self) =~ s/^Mail::Message/MM/;
- "$class object";
-}
-
-#------------------------------------------
-
-
-sub new(@)
-{ my $class = shift;
-
- return Mail::Message::Head::Complete->new(@_)
- if $class eq __PACKAGE__;
-
- $class->SUPER::new(@_);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MMH_field_type} = $args->{field_type}
- if $args->{field_type};
-
- $self->message($args->{message})
- if defined $args->{message};
-
- $self->{MMH_fields} = {};
- $self->{MMH_order} = [];
- $self->{MMH_modified} = $args->{modified} || 0;
- $self;
-}
-
-#------------------------------------------
-
-
-sub build(@)
-{ shift;
- Mail::Message::Head::Complete->build(@_);
-}
-
-#------------------------------------------
-
-
-sub isDelayed { 1 }
-
-#------------------------------------------
-
-
-sub modified(;$)
-{ my $self = shift;
- return $self->isModified unless @_;
- $self->{MMH_modified} = shift;
-}
-
-#------------------------------------------
-
-
-sub isModified() { shift->{MMH_modified} }
-
-#------------------------------------------
-
-
-sub isEmpty { scalar keys %{shift->{MMH_fields}} }
-
-#------------------------------------------
-
-
-sub message(;$)
-{ my $self = shift;
- if(@_)
- { $self->{MMH_message} = shift;
- weaken($self->{MMH_message});
- }
-
- $self->{MMH_message};
-}
-
-#------------------------------------------
-
-
-sub orderedFields() { grep {defined $_} @{shift->{MMH_order}} }
-
-#------------------------------------------
-
-
-sub knownNames() { keys %{shift->{MMH_fields}} }
-
-#------------------------------------------
-
-
-sub get($;$)
-{ my $known = shift->{MMH_fields};
- my $value = $known->{lc(shift)};
- my $index = shift;
-
- if(defined $index)
- { return ! defined $value ? undef
- : ref $value eq 'ARRAY' ? $value->[$index]
- : $index == 0 ? $value
- : undef;
- }
- elsif(wantarray)
- { return ! defined $value ? ()
- : ref $value eq 'ARRAY' ? @$value
- : ($value);
- }
- else
- { return ! defined $value ? undef
- : ref $value eq 'ARRAY' ? $value->[-1]
- : $value;
- }
-}
-
-sub get_all(@) { my @all = shift->get(@_) } # compatibility, force list
-sub setField($$) {shift->add(@_)} # compatibility
-
-#------------------------------------------
-
-
-sub study($;$)
-{ my $self = shift;
- return map {$_->study} $self->get(@_)
- if wantarray;
-
- my $got = $self->get(@_);
- defined $got ? $got->study : undef;
-}
-
-#------------------------------------------
-
-
-#------------------------------------------
-
-
-sub isMultipart()
-{ my $type = shift->get('Content-Type');
- $type && scalar $type->body =~ m[^multipart/]i;
-}
-
-#------------------------------------------
-
-
-sub read($)
-{ my ($self, $parser) = @_;
-
- my @fields = $parser->readHeader;
- @$self{ qw/MMH_begin MMH_end/ } = (shift @fields, shift @fields);
-
- my $type = $self->{MMH_field_type} || 'Mail::Message::Field::Fast';
-
- $self->addNoRealize($type->new( @$_ ))
- foreach @fields;
-
- $self;
-}
-
-#------------------------------------------
-
-
-# Warning: fields are added in addResentGroup() as well!
-sub addOrderedFields(@)
-{ my $order = shift->{MMH_order};
- foreach (@_)
- { push @$order, $_;
- weaken( $order->[-1] );
- }
- @_;
-}
-
-#------------------------------------------
-
-
-sub load($) {shift}
-
-#------------------------------------------
-
-
-sub fileLocation()
-{ my $self = shift;
- @$self{ qw/MMH_begin MMH_end/ };
-}
-
-#------------------------------------------
-
-
-sub moveLocation($)
-{ my ($self, $dist) = @_;
- $self->{MMH_begin} -= $dist;
- $self->{MMH_end} -= $dist;
- $self;
-}
-
-#------------------------------------------
-
-
-sub setNoRealize($)
-{ my ($self, $field) = @_;
-
- my $known = $self->{MMH_fields};
- my $name = $field->name;
-
- $self->addOrderedFields($field);
- $known->{$name} = $field;
- $field;
-}
-
-#------------------------------------------
-
-
-sub addNoRealize($)
-{ my ($self, $field) = @_;
-
- my $known = $self->{MMH_fields};
- my $name = $field->name;
-
- $self->addOrderedFields($field);
-
- if(defined $known->{$name})
- { if(ref $known->{$name} eq 'ARRAY') { push @{$known->{$name}}, $field }
- else { $known->{$name} = [ $known->{$name}, $field ] }
- }
- else
- { $known->{$name} = $field;
- }
-
- $field;
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Head.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,616 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Head - the header of one message
-
-
-=head1 INHERITANCE
-
- Mail::Message::Head
- is a Mail::Reporter
-
- Mail::Message::Head is extended by
- Mail::Box::IMAP4::Head
- Mail::Message::Head::Complete
- Mail::Message::Head::Delayed
- Mail::Message::Head::Subset
-
-
-=head1 SYNOPSIS
-
- my $head = Mail::Message::Head->new;
- $head->add('From: me at localhost');
- $head->add(From => 'me at localhost');
- $head->add(Mail::Message::Field->new(From => 'me'));
- my Mail::Message::Field $subject = $head->get('subject');
- my Mail::Message::Field @rec = $head->get('received');
- $head->delete('From');
-
-
-=head1 DESCRIPTION
-
-C<Mail::Message::Head> MIME headers are part of L<Mail::Message|Mail::Message> messages,
-which are grouped in L<Mail::Box|Mail::Box> folders.
-
-B<ATTENTION!!!> most functionality about e-mail headers is described
-in L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>, which is a matured header object.
-Other kinds of headers will be translated to that type when time comes.
-
-On this page, the general methods which are available on any header are
-described. Read about differences in the sub-class specific pages.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-(stringifaction) The header, when used as string, will format as if
-L<Mail::Message::Head::Complete::string()|Mail::Message::Head::Complete/"Access to the header"> was called, so return a
-nicely folder full header. An exception is made for Carp, which will
-get a simplified string to avoid unreadible messages from C<croak>
-and C<confess>.
-
-I<Example:> using a header object as string
-
-
- print $head; # implicit stringification by print
- $head->print; # the same
-
- print "$head"; # explicit stringication
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-When the header does not contain any lines (which is illegal, according
-to the RFCs), false is returned. In all other cases, a true value is
-produced.
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<build>([PAIR|FIELD]-LIST)
-
-=over 4
-
-A fast way to construct a header with many lines.
-The PAIRs are C<(name, content)> pairs of the header, but it is also possible
-to pass L<Mail::Message::Field|Mail::Message::Field> objects. A
-L<Mail::Message::Head::Complete|Mail::Message::Head::Complete> header is created by simply calling
-L<Mail::Message::Head::Complete::build()|Mail::Message::Head::Complete/"Constructors">, and then each field
-is added. Double field names are permitted.
-
-I<Example:>
-
- my $subject = Mail::Message::Full->new(Subject => 'xyz');
-
- my $head = Mail::Message::Head->build
- ( From => 'me at example.com'
- , To => 'you at anywhere.aq'
- , $subject
- , Received => 'one'
- , Received => 'two'
- );
-
- print ref $head;
- # --> Mail::Message::Head::Complete
-
-=back
-
-Mail::Message::Head-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a new message header object. The object will store all the
-fields of a header. When you get information from the header, it
-will be returned to you as L<Mail::Message::Field|Mail::Message::Field> objects, although
-the fields may be stored differently internally.
-
-If you try to instantiate a L<Mail::Message::Head|Mail::Message::Head>, you will automatically
-be upgraded to a L<Mail::Message::Head::Complete|Mail::Message::Head::Complete> --a full head.
-
- Option Defined in Default
- field_type L<Mail::Message::Field::Fast|Mail::Message::Field::Fast>
- log L<Mail::Reporter> C<'WARNINGS'>
- message undef
- modified <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. field_type CLASS
-
-=over 4
-
-The type of objects that all the fields will have. This must be
-an extension of L<Mail::Message::Field|Mail::Message::Field>.
-
-=back
-
-. log LEVEL
-
-. message MESSAGE
-
-=over 4
-
-The MESSAGE where this header belongs to. Usually, this is not known
-at creation of the header, but sometimes it is. If not, call the
-message() method later to set it.
-
-=back
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-Headers may only be partially read, in which case they are called delayed.
-This method returns true if some header information still needs to be
-read. Returns false if all header data has been read.
-Will never trigger completion.
-
-=back
-
-$obj-E<gt>B<isEmpty>
-
-=over 4
-
-Are there any fields defined in the current header? Be warned that
-the header will not be loaded for this: delayed headers will return
-true in any case.
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-Returns whether the header has been modified after being read.
-
-I<Example:>
-
- if($head->isModified) { ... }
-
-=back
-
-$obj-E<gt>B<knownNames>
-
-=over 4
-
-Like L<Mail::Message::Head::Complete::names()|Mail::Message::Head::Complete/"Access to the header">, but only returns the known
-header fields, which may be less than C<names> for header types which are
-partial. C<names()> will trigger completion, where C<knownNames()> does not.
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-Get (after setting) the message where this header belongs to.
-This does not trigger completion.
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-Sets the modified flag to BOOLEAN. Without value, the current setting is
-returned, but in that case you can better use L<isModified()|Mail::Message::Head/"The header">.
-Changing this flag will not trigger header completion.
-
-I<Example:>
-
- $head->modified(1);
- if($head->modified) { ... }
- if($head->isModified) { ... }
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-Retuns the fields ordered the way they were read or added.
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<get>(NAME [,INDEX])
-
-=over 4
-
-Get the data which is related to the field with the NAME. The case of the
-characters in NAME does not matter.
-
-If there is only one data element defined for the NAME, or if there is an
-INDEX specified as the second argument, only the specified element will be
-returned. If the field NAME matches more than one header the return value
-depends on the context. In LIST context, all values will be returned in
-the order they are read. In SCALAR context, only the last value will be
-returned.
-
-I<Example:>
-
- my $head = Mail::Message::Head->new;
- $head->add('Received: abc');
- $head->add('Received: xyz');
- $head->add('Subject: greetings');
-
- my @rec_list = $head->get('Received');
- my $rec_scalar = $head->get('Received');
- print ", at rec_list,$rec_scalar," # ,abc xyz, xyz,
- print $head->get('Received', 0); # abc
- my @sub_list = $head->get('Subject');
- my $sub_scalar = $head->get('Subject');
- print ", at sub_list,$sub_scalar," # ,greetings, greetings,
-
-=back
-
-$obj-E<gt>B<study>(NAME [,INDEX])
-
-=over 4
-
-Like L<get()|Mail::Message::Head/"Access to the header">, but puts more effort in understanding the contents of the
-field. L<Mail::Message::Field::study()|Mail::Message::Field/"Access to the content"> will be called for the field
-with the specified FIELDNAME, which returns L<Mail::Message::Field::Full|Mail::Message::Field::Full>
-objects. In scalar context only the last field with that name is returned.
-When an INDEX is specified, that element is returned.
-
-=back
-
-=head2 About the body
-
-
-$obj-E<gt>B<guessBodySize>
-
-=over 4
-
-Try to estimate the size of the body of this message, but without parsing
-the header or body. The result might be C<undef> or a few percent of
-the real size. It may even be very far of the real value, that's why
-this is a guess.
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-Returns whether the body of the related message is a multipart body.
-May trigger completion, when the C<Content-Type> field is not defined.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addNoRealize>(FIELD)
-
-=over 4
-
-Add a field, like L<Mail::Message::Head::Complete::add()|Mail::Message::Head::Complete/"Access to the header"> does, but
-avoid the loading of a possibly partial header. This method does not
-test the validity of the argument, nor flag the header as changed.
-This does not trigger completion.
-
-=back
-
-$obj-E<gt>B<addOrderedFields>(FIELDS)
-
-=over 4
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-Returns the location of the header in the file, as a pair begin and end. The
-begin is the first byte of the header. The end is the first byte after
-the header.
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-Be sure that the header is loaded. This returns the loaded header
-object.
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-Move the registration of the header in the file.
-
-=back
-
-$obj-E<gt>B<read>(PARSER)
-
-=over 4
-
-Read the header information of one message into this header structure. This
-method is called by the folder object (some L<Mail::Box|Mail::Box> sub-class), which
-passes the PARSER as an argument.
-
-=back
-
-$obj-E<gt>B<setNoRealize>(FIELD)
-
-=over 4
-
-Set a field, but avoid the loading of a possibly partial header as set()
-does. This method does not test the validity of the argument, nor flag the
-header as changed. This does not trigger completion.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Head-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Head-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Head-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-=head2 Ordered header fields
-
-Many Perl implementations make a big mistake by disturbing the order
-of header fields. For some fields (especially the I<resent groups>,
-see L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup>) the order shall be
-maintained.
-
-MailBox will keep the order of the fields as they were found in the
-source. When your add a new field, it will be added at the end. If
-your replace a field with a new value, it will stay in the original
-order.
-
-=head2 Head class implementation
-
-The header of a MIME message object contains a set of lines, which are
-called I<fields> (by default represented by L<Mail::Message::Field|Mail::Message::Field>
-objects). Dependent on the situation, the knowledge about the fields can
-be in one of three situations, each represented by a sub-class of this
-module:
-
-=over 4
-
-=item * L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
-
-In this case, it is sure that all knowledge about the header is available.
-When you L<get()|Mail::Message::Head/"Access to the header"> information from the header and it is not there, it will
-never be there.
-
-=item * L<Mail::Message::Head::Subset|Mail::Message::Head::Subset>
-
-There is no certainty whether all header lines are known (probably not). This
-may be caused as result of reading a fast index file, as described in
-L<Mail::Box::MH::Index|Mail::Box::MH::Index>. The object is automatically transformed
-into a L<Mail::Message::Head::Complete|Mail::Message::Head::Complete> when all header lines must be known.
-
-=item * L<Mail::Message::Head::Partial|Mail::Message::Head::Partial>
-
-A partial header is like a subset header: probably the header is incomplete.
-The means that you are not sure whether a L<get()|Mail::Message::Head/"Access to the header"> for a field fails because
-the field is not a part of the message or that it fails because it is not
-yet known to the program. Where the subset header knows where to get the
-other fields, the partial header does not know it. It cannot hide its
-imperfection.
-
-=item * L<Mail::Message::Head::Delayed|Mail::Message::Head::Delayed>
-
-In this case, there is no single field known. Access to this header will
-always trigger the loading of the full header.
-
-=back
-
-=head2 Subsets of header fields
-
-Message headers can be quite large, and therefore MailBox provides
-simplified access to some subsets of information. You can grab these
-sets of fields together, create and delete them as group.
-
-On the moment, the following sets are defined:
-
-=over 4
-
-=item * L<Mail::Message::Head::ResentGroup|Mail::Message::Head::ResentGroup>
-
-A I<resent group> is a set of fields which is used to log one step
-in the transmission of the message from the original sender to the
-destination.
-
-Each step adds a set of headers to indicate when the message was received
-and how it was forwarded (without modification). These fields are
-best created using L<Mail::Message::bounce()|Mail::Message::Construct::Bounce/"Constructing a message">.
-
-=item * L<Mail::Message::Head::ListGroup|Mail::Message::Head::ListGroup>
-
-Fields which are used to administer and log mailing list activity. Mailing
-list software has to play trics with the original message to be able to
-get the reply on that message back to the mailing list. Usually a large
-number of lines are added.
-
-=item * L<Mail::Message::Head::SpamGroup|Mail::Message::Head::SpamGroup>
-
-A set of fields which contains header fields which are produced by
-spam detection software. You may want to remove these fields when
-
-you store a message for a longer period of time.
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Head.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Head.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Part.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,130 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Part;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message';
-
-use Scalar::Util 'weaken';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $args->{head} ||= Mail::Message::Head::Complete->new;
-
- $self->SUPER::init($args);
-
- confess "No container specified for part.\n"
- unless exists $args->{container};
-
- weaken($self->{MMP_container})
- if $self->{MMP_container} = $args->{container};
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub coerce($@)
-{ my ($class, $thing, $container) = (shift, shift, shift);
-
- return $class->buildFromBody($thing, $container, @_)
- if $thing->isa('Mail::Message::Body');
-
- # Although cloning is a Bad Thing(tm), we must avoid modifying
- # header fields of messages which reside in a folder.
- my $message = $thing->isa('Mail::Box::Message') ? $thing->clone : $thing;
-
- my $part = $class->SUPER::coerce($message);
- $part->container($container);
- $part;
-}
-
-#------------------------------------------
-
-
-sub buildFromBody($$;@)
-{ my ($class, $body, $container) = (shift, shift, shift);
- my @log = $body->logSettings;
-
- my $head = Mail::Message::Head::Complete->new(@log);
- while(@_)
- { if(ref $_[0]) {$head->add(shift)}
- else {$head->add(shift, shift)}
- }
-
- my $part = $class->new
- ( head => $head
- , container => $container
- , @log
- );
-
- $part->body($body);
- $part;
-}
-
-#------------------------------------------
-
-sub container(;$)
-{ my $self = shift;
- return $self->{MMP_container} unless @_;
-
- $self->{MMP_container} = shift;
- weaken($self->{MMP_container});
-}
-
-#------------------------------------------
-
-sub toplevel()
-{ my $body = shift->container or return;
- my $msg = $body->message or return;
- $msg->toplevel;
-}
-
-#------------------------------------------
-
-sub isPart() { 1 }
-
-#------------------------------------------
-
-
-sub printEscapedFrom($)
-{ my ($self, $out) = @_;
- $self->head->print($out);
- $self->body->printEscapedFrom($out);
-}
-
-#------------------------------------------
-
-sub readFromParser($;$)
-{ my ($self, $parser, $bodytype) = @_;
-
- my $head = $self->readHead($parser)
- || Mail::Message::Head::Complete->new
- ( message => $self
- , field_type => $self->{MM_field_type}
- , $self->logSettings
- );
-
- my $body = $self->readBody($parser, $head, $bodytype)
- || Mail::Message::Body::Lines->new(data => []);
-
- $self->head($head);
- $self->storeBody($body->contentInfoFrom($head));
- $self;
-}
-
-#------------------------------------------
-
-
-sub destruct()
-{ my $self = shift;
- $self->log(ERROR =>'You cannot destruct message parts, only whole messages');
- undef;
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Part.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Part.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,930 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Part - a part of a message, but a message by itself
-
-
-=head1 INHERITANCE
-
- Mail::Message::Part
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $message = ...;
- if($message->isMultipart) {
- my Mail::Message::Part $part;
-
- foreach $part ($message->body->parts) {
- $part->print(\*OUT);
- my $attached_head = $part->head;
- my $attached_body = $part->body; # encoded as read
- my $attached_body = $part->decoded; # transfer-encoding removed
- }
- }
-
-
-=head1 DESCRIPTION
-
-A C<Mail::Message::Part> object contains a message which is included in
-the body of an other message. For instance I<attachments> are I<parts>.
-
-READ L<Mail::Message|Mail::Message> FIRST. A part is a special message: it has a
-reference to its parent message, and will usually not be sub-classed
-into mail folder specific variants.
-
-
-
-=head1 METHODS
-
-
-$obj-E<gt>B<printEscapedFrom>(FILEHANDLE)
-
-=over 4
-
-Prints the message part, but all lines which start with 'From ' will get
-a leading C<gt>. See L<Mail::Message::Body::printEscapedFrom()|Mail::Message::Body/"Access to the payload">.
-
-=back
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-Mail::Message::Part-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a message part.
-
- Option Defined in Default
- body L<Mail::Message> undef
- body_type L<Mail::Message> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- container <required>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- head L<Mail::Message> <empty header>
- head_type L<Mail::Message> L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
-
-. body OBJECT
-
-. body_type CLASS
-
-. container BODY
-
-=over 4
-
-Reference to the parental L<Mail::Message::Body|Mail::Message::Body> object where this part
-is a member of. That object may be a L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
-or a L<Mail::Message::Body::Nested|Mail::Message::Body::Nested>.
-
-=back
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Message::Part-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Message::Part-E<gt>B<buildFromBody>(BODY, CONTAINER, HEADERS)
-
-=over 4
-
-Shape a message part around a BODY. Bodies have information about their
-content in them, which is used to construct a header for the message.
-Next to that, more HEADERS can be specified. No headers are obligatory.
-No extra headers are fabricated automatically.
-
-I<Example:>
-
- my $multi = Mail::Message::Body::Multipart->new;
- my $part = Mail::Message::Part->buildFromBody($body, $multi);
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Message::Part-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Message::Part-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Message::Part-E<gt>B<coerce>(BODY|MESSAGE, MULTIPART, HEADERS)
-
-=over 4
-
-Transforms a BODY or MESSAGE to a real message part. The MULTIPART
-refers to the parental body.
-
-When ta BODY is specified, extra HEADERS can be supplied as well.
-Bodies are coerced into message parts by calling L<buildFromBody()|Mail::Message::Part/"METHODS">.
-If you specify a MESSAGE residing in a folder, this message will
-automatically be cloned.
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Part-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Part-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Part-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Message::Part-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-Message parts can not be destructed per part: only whole messages can
-be forcefully freed from memory. Of course, you can L<delete()|Mail::Message/"Flags"> separate
-parts, which only sets a flag not to write a part again. Furthermore,
-you may cosider L<rebuild()|Mail::Message::Construct::Rebuild/"Constructing a message"> to get rit of deleted parts.
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message::Part/"METHODS">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> You cannot destruct message parts, only whole messages
-
-Message parts can not be destructed per part: only whole messages can
-be forcefully freed from memory. Consider L<delete()|Mail::Message/"Flags"> or L<rebuild()|Mail::Message::Construct::Rebuild/"Constructing a message">.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Part.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Part.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailHeader.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,197 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::Replace::MailHeader;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::Head::Complete';
-
-
-sub new(@)
-{ my $class = shift;
- unshift @_, 'raw_data' if @_ % 2;
- $class->SUPER::new(@_);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
- defined $self->SUPER::init($args) or return;
-
- $self->modify ($args->{Modify} || $args->{Reformat} || 0);
- $self->fold_length($args->{FoldLength} || 79);
- $self->mail_from ($args->{MailFrom} || 'KEEP');
- $self;
-}
-
-
-sub delete($;$)
-{ my ($self, $tag) = (shift, shift);
- return $self->delete($tag) unless @_;
-
- my $index = shift;
- my @fields = $self->get($tag);
- my ($field) = splice @fields, $index, 1;
- $self->reset($tag, @fields);
- $field;
-}
-
-
-sub add($$)
-{ my $self = shift;
- my $field = $self->add(shift);
- $field->unfoldedBody;
-}
-
-
-sub replace($$;$)
-{ my ($self, $tag, $line, $index) = @_;
- $line =~ s/^([^:]+)\:\s*// && ($tag = $1) unless defined $tag;
-
- my $field = Mail::Message::Field::Fast->new($tag, $line);
- my @fields = $self->get($tag);
- $fields[ $index||0 ] = $field;
- $self->reset($tag, @fields);
-
- $field;
-}
-
-
-sub get($;$)
-{ my $head = shift->head;
- my @ret = map { $head->get(@_) } @_;
-
- if(wantarray) { return @ret ? map({$_->unfoldedBody} @ret) : () }
- else { return @ret ? $ret[0]->unfoldedBody : undef }
-}
-
-
-sub modify(;$)
-{ my $self = shift;
- @_ ? ($self->{MH_refold} = shift) : $self->{MH_refold};
-}
-
-
-sub mail_from(;$)
-{ my $self = shift;
- return $self->{MH_mail_from} unless @_;
-
- my $choice = uc(shift);
- die "bad Mail-From choice: '$choice'"
- unless $choice =~ /^(IGNORE|ERROR|COERCE|KEEP)$/;
-
- $self->{MH_mail_from} = $choice;
-}
-
-
-sub fold(;$)
-{ my $self = shift;
- my $wrap = @_ ? shift : $self->fold_length;
- $_->setWrapLength($wrap) foreach $self->orderedFields;
- $self;
-}
-
-
-sub unfold(;$)
-{ my $self = shift;
- my @fields = @_ ? $self->get(shift) : $self->orderedFields;
- $_->setWrapLength(100_000) foreach @fields; # blunt approach
- $self;
-}
-
-
-sub extract($)
-{ my ($self, $lines) = @_;
-
- my $parser = Mail::Box::Parser::Perl->new
- ( filename => 'extract from array'
- , data => $lines
- , trusted => 1
- );
-
- $self->read($parser);
- $parser->close;
-
- # Remove header from array
- shift @$lines while @$lines && $lines->[0] != m/^[\r\n]+/;
- shift @$lines if @$lines;
- $self;
-}
-
-
-sub read($)
-{ my ($self, $file) = @_;
- my $parser = Mail::Box::Parser::Perl->new
- ( filename => ('from file-handle '.ref $file)
- , file => $file
- , trusted => 1
- );
- $self->read($parser);
- $parser->close;
- $self;
-}
-
-
-sub empty() { shift->removeFields( m/^/ ) }
-
-
-sub header(;$)
-{ my $self = shift;
- $self->extract(shift) if @_;
- $self->fold if $self->modify;
- [ $self->orderedFields ];
-}
-
-
-sub header_hashref($) { die "Don't use header_hashref!!!" }
-
-
-sub combine($;$) { die "Don't use combine()!!!" }
-
-
-sub exists() { shift->count }
-
-
-sub as_string() { shift->string }
-
-
-sub fold_length(;$$)
-{ my $self = shift;
- return $self->{MH_wrap} unless @_;
-
- my $old = $self->{MH_wrap};
- my $wrap = $self->{MH_wrap} = shift;
- $self->fold($wrap) if $self->modify;
- $old;
-}
-
-
-sub tags() { shift->names }
-
-
-sub dup() { shift->clone }
-
-
-sub cleanup() { shift }
-
-
-BEGIN
-{ no warnings;
- *Mail::Header::new =
- sub { my $class = shift;
- Mail::Message::Replace::MailHeader->new(@_);
- }
-}
-
-
-
-sub isa($)
-{ my ($thing, $class) = @_;
- return 1 if $class eq 'Mail::Mailer';
- $thing->SUPER::isa($class);
-}
-
-
-1;
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailHeader.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailHeader.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,892 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Replace::MailHeader - fake Mail::Header
-
-
-=head1 INHERITANCE
-
- Mail::Message::Replace::MailHeader
- is a Mail::Message::Head::Complete
- is a Mail::Message::Head
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- !!! ALPHA CODE !!!
-
- # change
- use Mail::Internet;
- use Mail::Header;
- # into
- use Mail::Message::Replace::MailInternet;
- # in existing code, and the code should still work, but
- # with the Mail::Message features.
-
-
-=head1 DESCRIPTION
-
-This module is a wrapper around a L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>,
-which simulates a L<Mail::Header> object. The name-space of that module
-is hijacked and many methods are added.
-
-Most methods will work without any change, but you should test your
-software again. Small changes have been made to L<fold_length()|Mail::Message::Replace::MailHeader/"Simulating Mail::Header">,
-L<header_hashref()|Mail::Message::Replace::MailHeader/"Simulating Mail::Header">.
-
-
-=head1 OVERLOADED
-
-
-overload: B<"">
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-overload: B<bool>
-
-=over 4
-
-See L<Mail::Message::Head/"OVERLOADED">
-
-=back
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<build>([PAIR|FIELD]-LIST)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Constructors">
-
-=back
-
-$obj-E<gt>B<clone>([FIELDS])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Constructors">
-
-=back
-
-Mail::Message::Replace::MailHeader-E<gt>B<new>([ARG], OPTIONS)
-
-=over 4
-
-The ARG is an array with header lines.
-
- Option Defined in Default
- FoldLength 79
- MailFrom C<'KEEP'>
- Modify <false>
- field_type L<Mail::Message::Head> L<Mail::Message::Field::Fast|Mail::Message::Field::Fast>
- log L<Mail::Reporter> C<'WARNINGS'>
- message L<Mail::Message::Head> undef
- modified L<Mail::Message::Head> <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. FoldLength INTEGER
-
-. MailFrom 'IGNORE'|'ERROR'|'COERCE'|'KEEP'
-
-=over 4
-
-How to handle the C<From > lines. See L<mail_from()|Mail::Message::Replace::MailHeader/"Simulating Mail::Header">.
-
-=back
-
-. Modify BOOLEAN
-
-=over 4
-
-Reformat all header lines when they come in: change the folding.
-
-=back
-
-. field_type CLASS
-
-. log LEVEL
-
-. message MESSAGE
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isEmpty>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<knownNames>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<message>([MESSAGE])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"The header">
-
-=back
-
-$obj-E<gt>B<orderedFields>
-
-=over 4
-
-See L<Mail::Message::Head/"The header">
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"The header">
-
-=back
-
-$obj-E<gt>B<wrap>(INTEGER)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"The header">
-
-=back
-
-=head2 Access to the header
-
-
-$obj-E<gt>B<add>(LINE, [INDEX])
-
-=over 4
-
-Add a header line, which simply calls C<Mail::Message::Head::add()> on
-the header for the specified LINE. The INDEX is ignored, the unfolded
-body of the field is returned.
-
-=back
-
-$obj-E<gt>B<addListGroup>(OBJECT)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<addResentGroup>(RESENT-GROUP|DATA)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<addSpamGroup>(OBJECT)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<count>(NAME)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<delete>(TAG, [INDEX])
-
-=over 4
-
-Delete the fields with the specified TAG. The deleted fields are
-returned. If no index is given, then all are removed.
-
-=back
-
-$obj-E<gt>B<get>(NAME, [INDEX])
-
-=over 4
-
-Get all the header fields with the specified NAME. In scalar context,
-only the first fitting NAME is returned. Even when only one NAME is
-specified, multiple lines may be returned in list context: some fields
-appear more than once in a header.
-
-=back
-
-$obj-E<gt>B<grepNames>([NAMES|ARRAY-OF-NAMES|REGEXS])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<listGroup>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<names>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<printSelected>(FILEHANDLE, (STRING|REGEXP)s)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<printUndisclosed>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeContentInfo>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeField>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeFields>(STRING|REGEXP, [STRING|REGEXP, ...])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeFieldsExcept>(STRING|REGEXP, [STRING|REGEXP, ...])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeListGroup>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeResentGroups>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<removeSpamGroups>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<replace>(TAG, LINE, [INDEX])
-
-=over 4
-
-Replace the field named TAG. from place INDEX (by default the first) by
-the LINE. When TAG is C<undef>, it will be extracted from the LINE first.
-This calls L<Mail::Message::Head::Complete::reset()|Mail::Message::Head::Complete/"Access to the header"> on the message's head.
-
-=back
-
-$obj-E<gt>B<resentGroups>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<reset>(NAME, FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<set>(FIELD | LINE | (NAME, BODY [,ATTRS]))
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<spamDetected>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<spamGroups>([NAMES])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Access to the header">
-
-=back
-
-$obj-E<gt>B<study>(NAME [,INDEX])
-
-=over 4
-
-See L<Mail::Message::Head/"Access to the header">
-
-=back
-
-=head2 About the body
-
-
-$obj-E<gt>B<guessBodySize>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-$obj-E<gt>B<guessTimeStamp>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"About the body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message::Head/"About the body">
-
-=back
-
-$obj-E<gt>B<recvstamp>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"About the body">
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"About the body">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<addNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<addOrderedFields>(FIELDS)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<createFromLine>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Internals">
-
-=back
-
-$obj-E<gt>B<createMessageId>
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Internals">
-
-=back
-
-$obj-E<gt>B<fileLocation>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<load>
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<messageIdPrefix>([PREFIX, [HOSTNAME]|CODE])
-
-Mail::Message::Replace::MailHeader-E<gt>B<messageIdPrefix>([PREFIX, [HOSTNAME]|CODE])
-
-=over 4
-
-See L<Mail::Message::Head::Complete/"Internals">
-
-=back
-
-$obj-E<gt>B<moveLocation>(DISTANCE)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-$obj-E<gt>B<setNoRealize>(FIELD)
-
-=over 4
-
-See L<Mail::Message::Head/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Replace::MailHeader-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Replace::MailHeader-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Replace::MailHeader-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-=head2 Access to the header
-
-
-=head2 Simulating Mail::Header
-
-
-$obj-E<gt>B<as_string>
-
-=over 4
-
-Returns the whole header as one big scalar.
-Calls L<Mail::Message::Head::Complete::string()|Mail::Message::Head::Complete/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<cleanup>
-
-=over 4
-
-Cleanup memory usage. Not needed here.
-
-=back
-
-$obj-E<gt>B<combine>(TAG, [WITH])
-
-=over 4
-
-I do not see any valid reason for this command, so did not implement it.
-
-=back
-
-$obj-E<gt>B<dup>
-
-=over 4
-
-Duplicate the header, which is simply L<clone()|Mail::Message::Head::Complete/"Constructors">.
-
-=back
-
-$obj-E<gt>B<empty>
-
-=over 4
-
-Clean-out the whole hash. Better not use this (simply create another
-header object), although it should work.
-
-=back
-
-$obj-E<gt>B<exists>
-
-=over 4
-
-Returns whether there are any fields.
-
-=back
-
-$obj-E<gt>B<extract>(ARRAY)
-
-=over 4
-
-Extract (and remove) header fields from the array.
-
-=back
-
-$obj-E<gt>B<fold>([LENGTH])
-
-=over 4
-
-Refold all fields in the header, to LENGTH or whatever L<fold_length()|Mail::Message::Replace::MailHeader/"Simulating Mail::Header">
-returns.
-
-=back
-
-$obj-E<gt>B<fold_length>([[TAG], LENGTH])
-
-=over 4
-
-Returns the line wrap, optionally after setting it to LENGTH. The
-old value is returned. The TAG argument is ignored, because it is
-silly to have different lines fold in different ways. This method
-cannot be called statically anymore.
-
-=back
-
-$obj-E<gt>B<header>([ARRAY])
-
-=over 4
-
-Extract the fields from the ARRAY, if specified, and then fold the fields.
-Returned is an array with all fields, produced via L<orderedFields()|Mail::Message::Head/"The header">.
-
-=back
-
-$obj-E<gt>B<header_hashref>(HASH)
-
-=over 4
-
-If you are using this method, you must be stupid... anyway: I do not want to
-support it for now: use L<add()|Mail::Message::Replace::MailHeader/"Access to the header"> and friends.
-
-=back
-
-$obj-E<gt>B<mail_from>(['IGNORE'|'ERROR'|'COERCE'|'KEEP'])
-
-=over 4
-
-What to do when a header line in the form `From ' is encountered. Valid
-values are C<IGNORE> - ignore and discard the header, C<ERROR> - invoke
-an error (call die), C<COERCE> - rename them as Mail-From and C<KEEP>
-- keep them.
-
-=back
-
-$obj-E<gt>B<modify>([BOOLEAN])
-
-=over 4
-
-Refold the headers when they are added.
-
-=back
-
-$obj-E<gt>B<read>(FILE)
-
-=over 4
-
-Read the header from the FILE.
-
-=back
-
-$obj-E<gt>B<tags>
-
-=over 4
-
-Returns all the names of fields, implemented by
-L<Mail::Message::Head::Complete::names()|Mail::Message::Head::Complete/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<unfold>([TAG])
-
-=over 4
-
-Remove the folding for all instances of TAG, or all fields at once.
-
-=back
-
-=head2 The nasty bits
-
-
-$obj-E<gt>B<isa>(CLASS)
-
-Mail::Message::Replace::MailHeader-E<gt>B<isa>(CLASS)
-
-=over 4
-
-Of course, the C<isa()> class inheritance check should not see our
-nasty trick.
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Cannot remove field $name from header: not found.
-
-You ask to remove a field which is not known in the header. Using
-L<delete()|Mail::Message::Replace::MailHeader/"Access to the header">, L<reset()|Mail::Message::Head::Complete/"Access to the header">, or L<set()|Mail::Message::Head::Complete/"Access to the header"> to do the job will not result
-in warnings: those methods check the existence of the field first.
-
-I<Warning:> Field objects have an implied name ($name)
-
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailHeader.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailHeader.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailInternet.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,363 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::Replace::MailInternet;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message';
-
-use Mail::Box::FastScalar;
-use Mail::Box::Parser::Perl;
-use Mail::Message::Body::Lines;
-
-use File::Spec;
-
-
-sub new(@)
-{ my $class = shift;
- my $data = @_ % 2 ? shift : undef;
- $class = __PACKAGE__ if $class eq 'Mail::Internet';
- $class->SUPER::new(@_, raw_data => $data);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
- $args->{head_type} ||= 'Mail::Message::Replace::MailHeader';
- $args->{head} ||= $args->{Header};
- $args->{body} ||= $args->{Body};
-
- defined $self->SUPER::init($args) or return;
-
- $self->{MI_wrap} = $args->{FoldLength} || 79;
- $self->{MI_mail_from} = $args->{MailFrom};
- $self->{MI_modify} = exists $args->{Modify} ? $args->{Modify} : 1;
-
- $self->processRawData($self->{raw_data}, !defined $args->{Header}
- , !defined $args->{Body}) if defined $self->{raw_data};
-
- $self;
-}
-
-sub processRawData($$$)
-{ my ($self, $data, $get_head, $get_body) = @_;
- return $self unless $get_head || $get_body;
-
- my ($filename, $lines);
- if(ref $data eq 'ARRAY')
- { $filename = 'array of lines';
- $lines = $data;
- }
- elsif(ref $data eq 'GLOB')
- { $filename = 'file (GLOB)';
- $lines = [ <$data> ];
- }
- elsif(ref $data && $data->isa('IO::Handle'))
- { $filename = 'file ('.ref($data).')';
- $lines = [ $data->getlines ];
- }
- else
- { $self->log(ERROR=> "Mail::Internet does not support this kind of data");
- return undef;
- }
-
- return unless @$lines;
-
- my $buffer = join '', @$lines;
- my $file = Mail::Box::FastScalar->new(\$buffer);
-
- my $parser = Mail::Box::Parser::Perl->new
- ( filename => $filename
- , file => $file
- , trusted => 1
- );
-
- my $head;
- if($get_head)
- { my $from = substr($lines->[0], 0, 5) eq 'From ' ? shift @$lines : undef;
-
- my $head = $self->{MM_head_type}->new
- ( MailFrom => $self->{MI_mail_from}
- , Modify => $self->{MI_modify}
- , FoldLength => $self->{MI_wrap}
- );
- $head->read($parser);
- $head->mail_from($from) if defined $from;
- $self->head($head);
- }
- else
- { $head = $self->head;
- }
-
- $self->storeBody($self->readBody($parser, $head)) if $get_body;
- $self->addReport($parser);
- $parser->stop;
- $self;
-}
-
-
-sub dup()
-{ my $self = shift;
- ref($self)->coerce($self->clone);
-}
-
-
-sub empty() { shift->DESTROY }
-
-
-sub MailFrom(;$)
-{ my $self = shift;
- @_ ? ($self->{MI_mail_from} = shift) : $self->{MU_mail_from};
-}
-
-
-sub read($@)
-{ my $thing = shift;
-
- return $thing->SUPER::read(@_) # Mail::Message behavior
- unless ref $thing;
-
- # Mail::Header emulation
- my $data = shift;
- $thing->processRawData($data, 1, 1);
-}
-
-
-sub read_body($)
-{ my ($self, $data) = @_;
- $self->processRawData($data, 0, 1);
-}
-
-
-sub read_header($)
-{ my ($self, $data) = @_;
- $self->processRawData($data, 1, 0);
-}
-
-
-sub extract($)
-{ my ($self, $data) = @_;
- $self->processRawData($data, 1, 1);
-}
-
-
-sub reply(@)
-{ my ($self, %args) = @_;
-
- my $reply_head = $self->{MM_head_type}->new;
- my $home = $ENV{HOME} || File::Spec->curdir;
- my $headtemp = File::Spec->catfile($home, '.mailhdr');
-
- if(open HEAD, '<', $headtemp)
- { my $parser = Mail::Box::Parser::Perl->new
- ( filename => $headtemp
- , file => \*HEAD
- , trusted => 1
- );
- $reply_head->read($parser);
- $parser->close;
- }
-
- $args{quote} ||= delete $args{Inline} || '>';
- $args{group_reply} ||= delete $args{ReplyAll} || 0;
- my $keep = delete $args{Keep} || [];
- my $exclude = delete $args{Exclude} || [];
-
- my $reply = $self->SUPER::reply(%args);
-
- my $head = $self->head;
-
- $reply_head->add($_->clone)
- foreach map { $head->get($_) } @$keep;
-
- $reply_head->reset($_) foreach @$exclude;
-
- ref($self)->coerce($reply);
-}
-
-
-sub add_signature(;$)
-{ my $self = shift;
- my $filename = shift
- || File::Spec->catfile($ENV{HOME} || File::Spec->curdir, '.signature');
- $self->sign(File => $filename);
-}
-
-
-sub sign(@)
-{ my ($self, $args) = @_;
- my $sig;
-
- if(my $filename = delete $self->{File})
- { $sig = Mail::Message::Body->new(file => $filename);
- }
- elsif(my $sig = delete $self->{Signature})
- { $sig = Mail::Message::Body->new(data => $sig);
- }
-
- return unless defined $sig;
-
- my $body = $self->decoded->stripSignature;
- my $set = $body->concatenate($body, "-- \n", $sig);
- $self->body($set) if defined $set;
- $set;
-}
-
-
-sub send($@)
-{ my ($self, $type, %args) = @_;
- $self->send(via => $type);
-}
-
-
-sub nntppost(@)
-{ my ($self, %args) = @_;
- $args{port} ||= delete $args{Port};
- $args{nntp_debug} ||= delete $args{Debug};
-
- $self->send(via => 'nntp', %args);
-}
-
-
-
-sub head(;$)
-{ my $self = shift;
- return $self->SUPER::head(@_) if @_;
- $self->SUPER::head || $self->{MM_head_type}->new(message => $self);
-}
-
-
-sub header(;$) { shift->head->header(@_) }
-
-
-sub fold(;$) { shift->head->fold(@_) }
-
-
-sub fold_length(;$$) { shift->head->fold_length(@_) }
-
-
-sub combine($;$) { shift->head->combine(@_) }
-
-
-sub print_header(@) { shift->head->print(@_) }
-
-
-sub clean_header() { shift->header }
-
-
-sub tidy_headers() { }
-
-
-sub add(@) { shift->head->add(@_) }
-
-
-sub replace(@) { shift->head->replace(@_) }
-
-
-sub get(@) { shift->head->get(@_) }
-
-
-sub delete(@)
-{ my $self = shift;
- @_ ? $self->head->delete(@_) : $self->SUPER::delete;
-}
-
-
-sub body(@)
-{ my $self = shift;
-
- unless(@_)
- { my $body = $self->body;
- return defined $body ? scalar($body->lines) : [];
- }
-
- my $data = ref $_[0] eq 'ARRAY' ? shift : \@_;
- my $body = Mail::Message::Body::Lines->new(data => $data);
- $self->body($body);
-
- $body;
-}
-
-
-sub print_body(@) { shift->SUPER::body->print(@_) }
-
-
-sub bodyObject(;$) { shift->SUPER::body(@_) }
-
-
-sub remove_sig(;$)
-{ my $self = shift;
- my $lines = shift || 10;
- my $stripped = $self->decoded->stripSignature(max_lines => $lines);
- $self->body($stripped) if defined $stripped;
- $stripped;
-}
-
-
-sub tidy_body(;$)
-{ my $self = shift;
-
- my $body = $self->body or return;
- my @body = $body->lines;
-
- shift @body while @body && $body[0] =~ m/^\s*$/;
- pop @body while @body && $body[-1] =~ m/^\s*$/;
-
- return $body if $body->nrLines == @body;
- my $new = Mail::Message::Body::Lines->new(based_on => $body, data=>\@body);
- $self->body($new);
-}
-
-
-sub smtpsend(@)
-{ my ($self, %args) = @_;
- my $from = $args{MailFrom} || $ENV{MAILADDRESS} || $ENV{USER} || 'unknown';
- $args{helo} ||= delete $args{Hello};
- $args{port} ||= delete $args{Port};
- $args{smtp_debug} ||= delete $args{Debug};
-
- my $host = $args{Host};
- unless(defined $host)
- { my $hosts = $ENV{SMTPHOSTS};
- $host = (split /\:/, $hosts)[0] if defined $hosts;
- }
- $args{host} = $host;
-
- $self->send(via => 'smtp', %args);
-}
-
-
-sub as_mbox_string()
-{ my $self = shift;
- my $head = $self->head->clone;
- $head->delete('Content-Length');
-
- my $buffer = '';
- my $file = Mail::Box::FastScalar->new(\$buffer);
- $head->print($file);
- $self->body->printEscapedFrom($file);
- $buffer;
-}
-
-
-BEGIN {
- no warnings;
- *Mail::Internet::new =
- sub { my $class = shift;
- Mail::Message::Replace::MailInternet->new(@_);
- }
-}
-
-
-sub isa($)
-{ my ($thing, $class) = @_;
- return 1 if $class eq 'Mail::Internet';
- $thing->SUPER::isa($class);
-}
-
-
-sub coerce() { confess }
-
-
-1;
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailInternet.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailInternet.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1370 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Replace::MailInternet - fake Mail::Internet
-
-
-=head1 INHERITANCE
-
- Mail::Message::Replace::MailInternet
- is a Mail::Message
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- !!! BETA !!!
-
- # change
- use Mail::Internet;
- # into
- use Mail::Message::Replace::MailInternet;
- # in existing code, and the code should still work, but
- # with the Mail::Message features.
-
-
-=head1 DESCRIPTION
-
-This module is a wrapper around a L<Mail::Message|Mail::Message>, which simulates
-a L<Mail::Internet> object. The name-space of that module is hijacked
-and many methods are added.
-
-Most methods will work without any change, but you may need to have
-a look at your L<smtpsend()|Mail::Message::Replace::MailInternet/"The body"> and L<send()|Mail::Message::Replace::MailInternet/"The message"> calls.
-
-
-=head1 OVERLOADED
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"Constructors">
-
-=back
-
-$obj-E<gt>B<dup>
-
-=over 4
-
-Duplicate the message. The result will again be a L<Mail::Internet>
-compatible object.
-
-=back
-
-$obj-E<gt>B<empty>
-
-=over 4
-
-Remove all data from this object. Very dangerous!
-
-=back
-
-Mail::Message::Replace::MailInternet-E<gt>B<new>([ARG], [OPTIONS])
-
-=over 4
-
- Option Defined in Default
- Body C<undef>
- FoldLength 79
- Header C<undef>
- MailFrom C<'KEEP'>
- Modify 0
- body L<Mail::Message> undef
- body_type L<Mail::Message> L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- deleted L<Mail::Message> <false>
- field_type L<Mail::Message> undef
- head L<Mail::Message> undef
- head_type L<Mail::Message> L<Mail::Message::Replace::MailHeader|Mail::Message::Replace::MailHeader>
- labels L<Mail::Message> {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId L<Mail::Message> undef
- modified L<Mail::Message> <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted L<Mail::Message> <false>
-
-. Body ARRAY-OF-LINES
-
-=over 4
-
-Array of C<"\n"> terminated lines. If not specified, the lines will be
-read from ARG.
-
-=back
-
-. FoldLength INTEGER
-
-=over 4
-
-Number of characters permitted on any refolded header line.
-Passed to L<Mail::Message::Replace::MailHeader::new(FoldLength)|Mail::Message::Replace::MailHeader/"METHODS">.
-
-=back
-
-. Header OBJECT
-
-=over 4
-
-The L<Mail::Header> object, which is passed here, is a fake one as well...
-It is translated into a L<new(head)|Mail::Message/"Constructors">. If not given, the header will be
-parsed from the ARG.
-
-=back
-
-. MailFrom 'IGNORE'|'ERROR'|'COERCE'|'KEEP'
-
-=over 4
-
-What to do with leading "C<From >" lines in e-mail data.
-Passed to L<Mail::Message::Replace::MailHeader::new(MailFrom)|Mail::Message::Replace::MailHeader/"METHODS">.
-
-=back
-
-. Modify BOOLEAN
-
-=over 4
-
-Whether to re-fold all the incoming fields.
-Passed to L<Mail::Message::Replace::MailHeader::new(Modify)|Mail::Message::Replace::MailHeader/"METHODS">.
-
-=back
-
-. body OBJECT
-
-. body_type CLASS
-
-. deleted BOOLEAN
-
-. field_type CLASS
-
-. head OBJECT
-
-. head_type CLASS
-
-. labels ARRAY|HASH
-
-. log LEVEL
-
-. messageId STRING
-
-. modified BOOLEAN
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-I<Example:> replace traditional Mail::Internet by this wrapper
-
-
- # was
- use Mail::Internet;
- my $mi = Mail::Internet->new(@options);
-
- # becomes
- use Mail::Message::Replace::MailInternet;
- my $mi = Mail::Internet->new(@options);
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<MailFrom>([STRING])
-
-=over 4
-
-Your email address.
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<add_signature>([FILENAME])
-
-=over 4
-
-Replaced by L<sign()|Mail::Message::Replace::MailInternet/"Constructing a message">, but still usable. FILENAME is the file which
-contains the signature, which defaults to C<$ENV{HOME}/.signature>.
-
-=back
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Message::Replace::MailInternet-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Message::Replace::MailInternet-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<extract>(ARRAY or FILEHANDLE)
-
-=over 4
-
-Read header and body from an ARRAY or FILEHANDLE
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<read>(ARRAY|FILEHANDLE, OPTIONS)
-
-Mail::Message::Replace::MailInternet-E<gt>B<read>(ARRAY|FILEHANDLE, OPTIONS)
-
-=over 4
-
-Read header and body from the specified ARRAY or FILEHANDLE. When used as
-object method, L<Mail::Message::read()|Mail::Message::Construct::Read/"Constructing a message"> is called, to be MailBox compliant.
-As class method, the Mail::Internet compatible read is called. OPTIONS are
-only available in the first case.
-
- Option Defined in Default
- body_type L<Mail::Message::Construct::Read> C<undef>
- strip_status_fields L<Mail::Message::Construct::Read> <true>
-
-. body_type CLASS
-
-. strip_status_fields BOOLEAN
-
-=back
-
-$obj-E<gt>B<read_body>(ARRAY|FILEHANDLE)
-
-=over 4
-
-Read only the message's body from the ARRAY or FILEHANDLE.
-
-=back
-
-$obj-E<gt>B<read_header>(ARRAY|FILEHANDLE)
-
-=over 4
-
-Read only the message's header from the ARRAY or FILEHANDLE
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-BE WARNED: the main job for creating a reply is done by
-L<Mail::Message::reply()|Mail::Message::Construct::Reply/"Constructing a message">, which may produce a result which is compatible,
-but may be different from L<Mail::Internet>'s version.
-
- Option Defined in Default
- Bcc L<Mail::Message::Construct::Reply> undef
- Cc L<Mail::Message::Construct::Reply> <'cc' in current>
- Exclude []
- From L<Mail::Message::Construct::Reply> <'to' in current>
- Inline E<gt>
- Keep []
- Message-ID L<Mail::Message::Construct::Reply> <uniquely generated>
- ReplyAll <false>
- Subject L<Mail::Message::Construct::Reply> L<replySubject()|Mail::Message::Construct::Reply/"Constructing a message">
- To L<Mail::Message::Construct::Reply> <sender in current>
- body L<Mail::Message::Construct::Reply> undef
- group_reply L<Mail::Message::Construct::Reply> <true>
- header_template C<$ENV{HOME}/.mailhdr>
- include L<Mail::Message::Construct::Reply> C<'INLINE'>
- max_signature L<Mail::Message::Construct::Reply> C<10>
- message_type L<Mail::Message::Construct::Reply> L<Mail::Message|Mail::Message>
- postlude L<Mail::Message::Construct::Reply> undef
- prelude L<Mail::Message::Construct::Reply> undef
- quote L<Mail::Message::Construct::Reply> 'E<gt> '
- signature L<Mail::Message::Construct::Reply> undef
- strip_signature L<Mail::Message::Construct::Reply> C<qr/^--\s/>
-
-. Bcc ADDRESSES
-
-. Cc ADDRESSES
-
-. Exclude ARRAY-OF-NAMES
-
-=over 4
-
-Remove the fields witht the specified names from the produced reply message.
-
-=back
-
-. From ADDRESSES
-
-. Inline STRING
-
-=over 4
-
-Quotation STRING, which is translated into L<reply(quote)|Mail::Message::Construct::Reply/"Constructing a message">. The normal
-default of C<quote> is "E<gt> ", in stead of "E<gt>".
-
-=back
-
-. Keep ARRAY-OF-NAMES
-
-=over 4
-
-Copy all header fields with the specified NAMES from the source to the
-reply message.
-
-=back
-
-. Message-ID STRING
-
-. ReplyAll BOOLEAN
-
-=over 4
-
-Reply to the group? Translated into L<reply(group_reply)|Mail::Message::Construct::Reply/"Constructing a message">, which has
-as default the exact oposite of this option, being C<true>.
-
-=back
-
-. Subject STRING|CODE
-
-. To ADDRESSES
-
-. body BODY
-
-. group_reply BOOLEAN
-
-. header_template FILENAME|C<undef>
-
-=over 4
-
-Read the return header from the template file. When this is explicitly
-set to C<undef>, or the file does not exist, then a header will be created.
-
-=back
-
-. include 'NO'|'INLINE'|'ATTACH'
-
-. max_signature INTEGER
-
-. message_type CLASS
-
-. postlude BODY|LINES
-
-. prelude BODY|LINES
-
-. quote CODE|STRING
-
-. signature BODY|MESSAGE
-
-. strip_signature REGEXP|STRING|CODE
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Message::Replace::MailInternet-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<sign>(OPTIONS)
-
-=over 4
-
-Add a signature (a few extra lines) to the message.
-
- Option Defined in Default
- File C<undef>
- Signature ''
-
-. File FILENAME
-
-=over 4
-
-Specifies a filename where the signature is in.
-
-=back
-
-. Signature STRING|ARRAY-OF-LINES
-
-=over 4
-
-The signature in memory.
-
-=back
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<nntppost>(OPTIONS)
-
-=over 4
-
-Send an NNTP message (newsgroup message), which is equivalent to
-Mail::Transport::NNTP or L<Mail::Message::send()|Mail::Message/"The message"> with C<via 'nntp'>.
-
- Option Defined in Default
- Debug <false>
- Host <from Net::Config>
- Port 119
-
-. Debug BOOLEAN
-
-. Host HOSTNAME
-
-. Port INTEGER
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-Prints the whole message to the specified FILEHANDLE, which default to
-STDOUT. This calls L<Mail::Message::print()|Mail::Message/"The message">.
-
-=back
-
-$obj-E<gt>B<send>(TYPE, OPTIONS)
-
-=over 4
-
-Send via Mail Transfer Agents (MUA). These will be handled by various
-L<Mail::Transport::Send|Mail::Transport::Send> extensions. The C<test> TYPE is not supported.
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-See L<Mail::Message/"The message">
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<add>(LINES)
-
-=over 4
-
-Add header lines, which simply calls C<Mail::Message::Head::add()> on
-the header for each specified LINE. The last added LINE is returned.
-
-=back
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<clean_header>
-
-=over 4
-
-Not to be used, replaced by L<header()|Mail::Message::Replace::MailInternet/"The header">.
-
-=back
-
-$obj-E<gt>B<combine>(TAG, [WITH])
-
-=over 4
-
-Not implemented, because I see no use for it.
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<delete>(NAME, [INDEX]])
-
-=over 4
-
-Delete the fields with the specified NAME. The deleted fields are
-returned.
-
-BE WARNED: if no NAME is specified, the C<delete> is interpreted as
-the deletion of the message in a folder, so L<Mail::Box::Message::delete()|Mail::Message/"Flags">
-will be called. This may have no negative effect at all...
-
-Calls L<Mail::Message::Replace::MailHeader::delete()|Mail::Message::Replace::MailHeader/"Access to the header">
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<fold>([LENGTH])
-
-=over 4
-
-Fold all the fields to a certain maximum LENGTH.
-Implemented by L<Mail::Message::Replace::MailHeader::fold()|Mail::Message::Replace::MailHeader/"Simulating Mail::Header">
-
-=back
-
-$obj-E<gt>B<fold_length>([[TAG], LENGTH])
-
-=over 4
-
-Set the maximum line LENGTH. TAG is ignored.
-Implemented by L<Mail::Message::Replace::MailHeader::fold_length()|Mail::Message::Replace::MailHeader/"Simulating Mail::Header">
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<get>(NAME, [INDEX])
-
-=over 4
-
-Get all the header fields with the specified NAME. In scalar context,
-only the first fitting NAME is returned. Even when only one NAME is
-specified, multiple lines may be returned: some fields appear more than
-once in a header. Calls L<Mail::Message::Replace::MailHeader::get()|Mail::Message::Replace::MailHeader/"Access to the header">
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-Returns the head of the message, or creates an empty one if none is
-defined. The HEAD argument, which sets the header, is not available
-for L<Mail::Internet>, but is there to be compatible with the C<head>
-method of L<Mail::Message|Mail::Message>.
-
-=back
-
-$obj-E<gt>B<header>([ARRAY])
-
-=over 4
-
-Optionally reads a header from the ARRAY, and then returns those fields
-as array-ref nicely folded.
-Implemented by L<Mail::Message::Replace::MailHeader::header()|Mail::Message::Replace::MailHeader/"Simulating Mail::Header">
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<print_header>(FILEHANDLE)
-
-=over 4
-
-Calls L<Mail::Message::Head::Complete::print()|Mail::Message::Head::Complete/"Access to the header">.
-
-=back
-
-$obj-E<gt>B<replace>(TAG, LINE, [INDEX])
-
-=over 4
-
-Adds LINES to the header, but removes fields with the same name if they
-already exist. Calls L<Mail::Message::Replace::MailHeader::replace()|Mail::Message::Replace::MailHeader/"Access to the header">
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<tidy_headers>
-
-=over 4
-
-No effect anymore (always performed).
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-See L<Mail::Message/"The header">
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([ARRAY-OF-LINES|LIST-OF-LINES])
-
-=over 4
-
-Returns an array of lines, representing the body. With arguments, a
-new body will be created. In L<Mail::Internet>, the body is not an
-object but a simple array.
-
-BE WARNED: this overrules the L<Mail::Message::body()|Mail::Message/"The body"> method, which
-may cause some confusion. Use L<bodyObject()|Mail::Message::Replace::MailInternet/"The body"> to get access to that
-body's data.
-
-=back
-
-$obj-E<gt>B<bodyObject>([BODY])
-
-=over 4
-
-Calls L<Mail::Message::body()|Mail::Message/"The body">, because that C<body> method is overruled
-by the one which has a L<Mail::Internet> compatible interface.
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-See L<Mail::Message/"The body">
-
-=back
-
-$obj-E<gt>B<print_body>([FILEHANDLE])
-
-=over 4
-
-Prints the body to the specified FILEHANDLE, which defaults to STDOUT. This
-calls L<Mail::Message::Body::print()|Mail::Message::Body/"Access to the payload">.
-
-=back
-
-$obj-E<gt>B<remove_sig>([NRLINES])
-
-=over 4
-
-Remove the signature of a message with a maximum of NRLINES lines, which
-defaults to 10. The work is done on the decoded body content, by
-L<Mail::Message::Body::stripSignature()|Mail::Message::Body::Construct/"Constructing a body">.
-
-=back
-
-$obj-E<gt>B<smtpsend>(OPTIONS)
-
-=over 4
-
-This method is calling L<Mail::Message::send()|Mail::Message/"The message"> via C<smtp>, which is
-implemented in L<Mail::Transport::SMTP|Mail::Transport::SMTP>. The implementation is
-slightly different, so this method is not 100% compliant.
-
- Option Defined in Default
- Debug <false>
- Hello <helo_domain from Net::Config>
- Host C<$ENV{SMTPHOSTS} or from Net::Config>
- MailFrom C<$ENV{MAILADDRESS}> or $ENV{USER}
- Port 25
-
-. Debug BOOLEAN
-
-. Hello STRING
-
-. Host HOSTNAME
-
-=over 4
-
-Only the first detected HOSTNAME is taken, so differs from the original
-implementation.
-
-=back
-
-. MailFrom STRING
-
-=over 4
-
-Your e-mail address. This simulated L<Mail::Internet> object does not
-try to create an e-mail address from the sendmail configuration file,
-because that is generally a bad idea in environments with virtual hosts,
-as we have now-adays.
-
-=back
-
-. Port INTEGER
-
-=back
-
-$obj-E<gt>B<tidy_body>
-
-=over 4
-
-Removes blank lines from begin and end of the body.
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-See L<Mail::Message/"Flags">
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<as_mbox_string>
-
-=over 4
-
-Returns the whole message as one string, which can be included in an
-MBOX folder (while not using L<Mail::Box::Mbox|Mail::Box::Mbox>). The C<Content-Length>
-header field is removed and lines in the body which start with C<From >
-are escaped with an E<gt>.
-
-=back
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 The nasty bits
-
-
-$obj-E<gt>B<isa>(CLASS)
-
-Mail::Message::Replace::MailInternet-E<gt>B<isa>(CLASS)
-
-=over 4
-
-Of course, the C<isa()> class inheritance check should not see our
-nasty trick.
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-Mail::Message::Replace::MailInternet-E<gt>B<coerce>(MESSAGE)
-
-=over 4
-
-Coerce (adapt type) of the specified MESSAGE (anything
-L<Mail::Message::coerce()|Mail::Message/"Internals"> accepts) into an Mail::Internet simulating
-object.
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-See L<Mail::Message/"Internals">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::Replace::MailInternet-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::Replace::MailInternet-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::Replace::MailInternet-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Message::Replace::MailInternet-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-See L<Mail::Message/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-See L<Mail::Message/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Mail::Internet does not support this kind of data
-
-The ARGS data can only be a file handle or an ARRAY. Other data types
-are not supported (see L<read()|Mail::Message::Replace::MailInternet/"Constructing a message"> if you want to have more).
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message::Replace::MailInternet/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Replace::MailInternet/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Replace/MailInternet.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Replace/MailInternet.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Base64.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,63 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::TransferEnc::Base64;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::TransferEnc';
-
-use MIME::Base64;
-
-
-sub name() { 'base64' }
-
-#------------------------------------------
-
-sub check($@)
-{ my ($self, $body, %args) = @_;
- $body;
-}
-
-#------------------------------------------
-
-
-sub decode($@)
-{ my ($self, $body, %args) = @_;
-
- my $lines = decode_base64($body->string);
- unless($lines)
- { $body->transferEncoding('none');
- return $body;
- }
-
- my $bodytype
- = defined $args{result_type} ? $args{result_type}
- : $body->isBinary ? 'Mail::Message::Body::File'
- : ref $body;
-
- $bodytype->new
- ( based_on => $body
- , transfer_encoding => 'none'
- , data => $lines
- );
-}
-
-#------------------------------------------
-
-sub encode($@)
-{ my ($self, $body, %args) = @_;
-
- my $bodytype = $args{result_type} || ref $body;
-
- $bodytype->new
- ( based_on => $body
- , checked => 1
- , transfer_encoding => 'base64'
- , data => encode_base64($body->string)
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Base64.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Base64.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,278 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::TransferEnc::Base64 - encode/decode base64 message bodies
-
-
-=head1 INHERITANCE
-
- Mail::Message::TransferEnc::Base64
- is a Mail::Message::TransferEnc
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $decoded = $msg->decoded;
- my $encoded = $msg->encode(transfer => 'base64');
-
-
-=head1 DESCRIPTION
-
-Encode or decode message bodies with base64. The e-mail protocol and
-user agents can not handle binary data. Therefore, binary data -but
-even sometimes non-binary data- is encoded into ASCII, this is
-transportable.
-
-Base64 re-groups the bits of bytes, and maps them on characters. The
-data contains bytes of 8 bits (an I<octet>). These are repacked into
-groups of 6 bits, pointing in an array of characters containing
-C<[A-Za-z0-9+/]>. This way, three data bytes become 4 base64 bytes.
-The encoded data will be trailed by C<'='> characters to align on
-four bytes.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::TransferEnc::Base64-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 The Encoder
-
-
-Mail::Message::TransferEnc::Base64-E<gt>B<addTransferEncoder>(TYPE, CLASS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<create>(TYPE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-=head2 Encoding
-
-
-$obj-E<gt>B<check>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<decode>(BODY, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- result_type L<Mail::Message::TransferEnc> <type of source body>
-
-. result_type CLASS
-
-=back
-
-$obj-E<gt>B<encode>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::TransferEnc::Base64-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::TransferEnc::Base64-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::TransferEnc::Base64-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Base64 line length not padded on 4.
-
-While decoding base64 the data in a message body, a string was found which
-was not padded into a multiple of four bytes. This is illegal, and therefore
-this data is ignored.
-
-I<Error:> Decoder for transfer encoding $type does not work: $@
-
-Compiling the required transfer encoding resulted in errors, which means
-that the decoder can not be used.
-
-I<Warning:> No decoder for transfer encoding $type.
-
-A decoder for the specified type of transfer encoding is not implemented.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Base64.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Base64.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Binary.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,57 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::TransferEnc::Binary;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::TransferEnc';
-
-
-sub name() { 'binary' }
-
-#------------------------------------------
-
-sub check($@)
-{ my ($self, $body, %args) = @_;
- $body;
-}
-
-#------------------------------------------
-
-sub decode($@)
-{ my ($self, $body, %args) = @_;
- $body->transferEncoding('none');
- $body;
-}
-
-#------------------------------------------
-
-sub encode($@)
-{ my ($self, $body, %args) = @_;
-
- my @lines;
-
- my $changes = 0;
- foreach ($self->lines)
- { $changes++ if s/[\000\013]//g;
- push @lines, $_;
- }
-
- unless($changes)
- { $body->transferEncoding('none');
- return $body;
- }
-
- my $bodytype = $args{result_type} || ref($self->load);
-
- $bodytype->new
- ( based_on => $self
- , transfer_encoding => 'none'
- , data => \@lines
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Binary.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Binary.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,260 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::TransferEnc::Binary - encode/decode binary message bodies
-
-
-=head1 INHERITANCE
-
- Mail::Message::TransferEnc::Binary
- is a Mail::Message::TransferEnc
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $decoded = $msg->decoded;
- my $encoded = $msg->encode(transfer => 'binary');
-
-
-=head1 DESCRIPTION
-
-Encode or decode message bodies for binary transfer encoding. This is
-totally no encoding.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::TransferEnc::Binary-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 The Encoder
-
-
-Mail::Message::TransferEnc::Binary-E<gt>B<addTransferEncoder>(TYPE, CLASS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<create>(TYPE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-=head2 Encoding
-
-
-$obj-E<gt>B<check>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<decode>(BODY [, OPTIONS])
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<encode>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::TransferEnc::Binary-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::TransferEnc::Binary-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::TransferEnc::Binary-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Decoder for transfer encoding $type does not work: $@
-
-Compiling the required transfer encoding resulted in errors, which means
-that the decoder can not be used.
-
-I<Warning:> No decoder for transfer encoding $type.
-
-A decoder for the specified type of transfer encoding is not implemented.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/Binary.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/Binary.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/EightBit.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,62 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::TransferEnc::EightBit;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::TransferEnc';
-
-
-sub name() { '8bit' }
-
-#------------------------------------------
-
-sub check($@)
-{ my ($self, $body, %args) = @_;
- $body;
-}
-
-#------------------------------------------
-
-sub decode($@)
-{ my ($self, $body, %args) = @_;
- $body->transferEncoding('none');
- $body;
-}
-
-#------------------------------------------
-
-sub encode($@)
-{ my ($self, $body, %args) = @_;
-
- my @lines;
- my $changes = 0;
-
- foreach ($body->lines)
- { $changes++ if s/[\000\013]//g;
-
- $changes++ if length > 997;
- push @lines, substr($_, 0, 996, '')."\n"
- while length > 997;
-
- push @lines, $_;
- }
-
- unless($changes)
- { $body->transferEncoding('8bit');
- return $body;
- }
-
- my $bodytype = $args{result_type} || ref $body;
-
- $bodytype->new
- ( based_on => $body
- , transfer_encoding => '8bit'
- , data => \@lines
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/EightBit.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/EightBit.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,271 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::TransferEnc::EightBit - encode/decode 8bit message bodies
-
-
-=head1 INHERITANCE
-
- Mail::Message::TransferEnc::EightBit
- is a Mail::Message::TransferEnc
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $decoded = $msg->decoded;
- my $encoded = $msg->encode(transfer => '8bit');
-
-
-=head1 DESCRIPTION
-
-Encode or decode message bodies for 8bit transfer encoding. This is
-only very little encoding. According to the specs:
-
-RFC-2045 Section 2.8 defines legal `8bit' data:
-
- "8bit data" refers to data that is all represented as relatively
- short lines with 998 octets or less between CRLF line separation
- sequences [RFC-821]), but octets with decimal values greater than 127
- may be used. As with "7bit data" CR and LF octets only occur as part
- of CRLF line separation sequences and no NULs are allowed.
-
-As you can safely conclude: decoding of these bodies is no work
-at all.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::TransferEnc::EightBit-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 The Encoder
-
-
-Mail::Message::TransferEnc::EightBit-E<gt>B<addTransferEncoder>(TYPE, CLASS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<create>(TYPE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-=head2 Encoding
-
-
-$obj-E<gt>B<check>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<decode>(BODY [, OPTIONS])
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<encode>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::TransferEnc::EightBit-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::TransferEnc::EightBit-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::TransferEnc::EightBit-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Decoder for transfer encoding $type does not work: $@
-
-Compiling the required transfer encoding resulted in errors, which means
-that the decoder can not be used.
-
-I<Warning:> No decoder for transfer encoding $type.
-
-A decoder for the specified type of transfer encoding is not implemented.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/EightBit.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/EightBit.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/QuotedPrint.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,56 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::TransferEnc::QuotedPrint;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::TransferEnc';
-
-use MIME::QuotedPrint;
-
-
-sub name() { 'quoted-printable' }
-
-#------------------------------------------
-
-sub check($@)
-{ my ($self, $body, %args) = @_;
- $body;
-}
-
-#------------------------------------------
-
-
-sub decode($@)
-{ my ($self, $body, %args) = @_;
-
- my @lines = map decode_qp($_), $body->lines;
- my $bodytype = $args{result_type} || ref $body;
-
- $bodytype->new
- ( based_on => $body
- , transfer_encoding => 'none'
- , data => \@lines
- );
-}
-
-#------------------------------------------
-
-
-sub encode($@)
-{ my ($self, $body, %args) = @_;
-
- my @lines = map encode_qp($_), $body->lines;
- my $bodytype = $args{result_type} || ref $body;
-
- $bodytype->new
- ( based_on => $body
- , transfer_encoding => 'quoted-printable'
- , data => \@lines
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/QuotedPrint.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/QuotedPrint.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,286 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::TransferEnc::QuotedPrint - handle quoted-printable message bodies
-
-
-=head1 INHERITANCE
-
- Mail::Message::TransferEnc::QuotedPrint
- is a Mail::Message::TransferEnc
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $decoded = $msg->decoded;
- my $encoded = $msg->encode(transfer => 'quoted-printable');
-
-
-=head1 DESCRIPTION
-
-Encode and decode message bodies for quoted-printable transfer encoding.
-The Quoted-Printable encoding is intended
-to represent data that largely consists of bytes that correspond to
-printable characters in the ASCII character set. Non-printable
-characters (as defined by English Americans) are represented by a
-triplet consisting of the character "=" followed by two hexadecimal
-digits.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::TransferEnc::QuotedPrint-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 The Encoder
-
-
-Mail::Message::TransferEnc::QuotedPrint-E<gt>B<addTransferEncoder>(TYPE, CLASS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<create>(TYPE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-=head2 Encoding
-
-
-$obj-E<gt>B<check>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<decode>(BODY, OPTIONS)
-
-=over 4
-
-Decoding is tricky, and not without loss of information. Lines will
-stay separate lines, although they might have been joined before the
-encoding split them up. Characters which are not printable will be
-replaced by their octal value, and carriage returns (C<'=0D'>) at
-end of line are removed.
-
- Option Defined in Default
- result_type L<Mail::Message::TransferEnc> <type of source body>
-
-. result_type CLASS
-
-=back
-
-$obj-E<gt>B<encode>(BODY, OPTIONS)
-
-=over 4
-
-Encoding is to quoted-printable is a careful process: All characters
-outside the normal printing range, and including C<'='> are encoded.
-They are translated into a C<'='> followed by a two digit hex of the
-ascii value of the character. The same treatment is for white-spaces
-at the end of a line.
-
-The lines which are constructed which must be 76 characters max, not
-broken on encoded characters.
-
- Option Defined in Default
- result_type L<Mail::Message::TransferEnc> <type of source body>
-
-. result_type CLASS
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::TransferEnc::QuotedPrint-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::TransferEnc::QuotedPrint-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::TransferEnc::QuotedPrint-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Decoder for transfer encoding $type does not work: $@
-
-Compiling the required transfer encoding resulted in errors, which means
-that the decoder can not be used.
-
-I<Warning:> No decoder for transfer encoding $type.
-
-A decoder for the specified type of transfer encoding is not implemented.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/QuotedPrint.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/QuotedPrint.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/SevenBit.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,63 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::TransferEnc::SevenBit;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Message::TransferEnc';
-
-
-sub name() { '7bit' }
-
-#------------------------------------------
-
-sub check($@)
-{ my ($self, $body, %args) = @_;
- $body;
-}
-
-#------------------------------------------
-
-sub decode($@)
-{ my ($self, $body, %args) = @_;
- $body->transferEncoding('none');
- $body;
-}
-
-#------------------------------------------
-
-sub encode($@)
-{ my ($self, $body, %args) = @_;
-
- my @lines;
- my $changes = 0;
-
- foreach ($body->lines)
- { $changes++ if s/([^\000-\127])/chr(ord($1) & 0x7f)/ge;
- $changes++ if s/[\000\013]//g;
-
- $changes++ if length > 997;
- push @lines, substr($_, 0, 996, '')."\n"
- while length > 997;
-
- push @lines, $_;
- }
-
- unless($changes)
- { $body->transferEncoding('7bit');
- return $body;
- }
-
- my $bodytype = $args{result_type} || ref $body;
-
- $bodytype->new
- ( based_on => $body
- , transfer_encoding => '7bit'
- , data => \@lines
- );
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/SevenBit.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/SevenBit.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,272 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::TransferEnc::SevenBit - encode/decode 7bit message bodies
-
-
-=head1 INHERITANCE
-
- Mail::Message::TransferEnc::SevenBit
- is a Mail::Message::TransferEnc
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $decoded = $msg->decoded;
- my $encoded = $msg->encode(transfer => '7bit');
-
-
-=head1 DESCRIPTION
-
-Encode or decode message bodies for 7bit transfer encoding. This is
-only very little encoding. According to the specs:
-
-RFC-2045 Section 2.7 defines legal `7bit' data:
-
- "7bit data" refers to data that is all represented as relatively
- short lines with 998 octets or less between CRLF line separation
- sequences [RFC-821]. No octets with decimal values greater than 127
- are allowed and neither are NULs (octets with decimal value 0). CR
- (decimal value 13) and LF (decimal value 10) octets only occur as
- part of CRLF line separation sequences.
-
-As you can safely conclude: decoding of these bodies is no work
-at all.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::TransferEnc::SevenBit-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 The Encoder
-
-
-Mail::Message::TransferEnc::SevenBit-E<gt>B<addTransferEncoder>(TYPE, CLASS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<create>(TYPE, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"The Encoder">
-
-=back
-
-=head2 Encoding
-
-
-$obj-E<gt>B<check>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<decode>(BODY [, OPTIONS])
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-$obj-E<gt>B<encode>(BODY, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::TransferEnc/"Encoding">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::TransferEnc::SevenBit-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::TransferEnc::SevenBit-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::TransferEnc::SevenBit-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Decoder for transfer encoding $type does not work: $@
-
-Compiling the required transfer encoding resulted in errors, which means
-that the decoder can not be used.
-
-I<Warning:> No decoder for transfer encoding $type.
-
-A decoder for the specified type of transfer encoding is not implemented.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc/SevenBit.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc/SevenBit.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,72 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Message::TransferEnc;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-
-my %encoder =
- ( base64 => 'Mail::Message::TransferEnc::Base64'
- , '7bit' => 'Mail::Message::TransferEnc::SevenBit'
- , '8bit' => 'Mail::Message::TransferEnc::EightBit'
- , 'quoted-printable' => 'Mail::Message::TransferEnc::QuotedPrint'
- );
-
-#------------------------------------------
-
-
-sub create($@)
-{ my ($class, $type) = (shift, shift);
-
- my $encoder = $encoder{lc $type};
- unless($encoder)
- { $class->new(@_)->log(WARNING => "No decoder for transfer encoding $type.");
- return;
- }
-
- eval "require $encoder";
- if($@)
- { $class->new(@_)->log(ERROR =>
- "Decoder for transfer encoding $type does not work:\n$@");
- return;
- }
-
- $encoder->new(@_);
-}
-
-#------------------------------------------
-
-
-sub addTransferEncoder($$)
-{ my ($class, $type, $encoderclass) = @_;
- $encoder{lc $type} = $encoderclass;
- $class;
-}
-
-#------------------------------------------
-
-
-sub name {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub check($@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub decode($@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-sub encode($) {shift->notImplemented}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,334 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::TransferEnc - message transfer encoder/decoder
-
-
-=head1 INHERITANCE
-
- Mail::Message::TransferEnc
- is a Mail::Reporter
-
- Mail::Message::TransferEnc is extended by
- Mail::Message::TransferEnc::Base64
- Mail::Message::TransferEnc::Binary
- Mail::Message::TransferEnc::EightBit
- Mail::Message::TransferEnc::QuotedPrint
- Mail::Message::TransferEnc::SevenBit
-
-
-=head1 SYNOPSIS
-
- my Mail::Message $msg = ...;
- my $decoded = $msg->decoded;
- my $encoded = $msg->encode(transfer => 'base64');
-
-
-=head1 DESCRIPTION
-
-This class is the base for various encoders and decoders, which are
-used during transport of the message. This packages, and all which are
-derived, are invoked by the message's L<Mail::Message::decoded()|Mail::Message/"The body"> and
-L<Mail::Message::encode()|Mail::Message/"The body"> methods:
-
- my $message = $folder->message(3);
- my $decoded_body = $message->decoded;
- my $encoded_body = $message->encode(transfer => 'base64');
-
-The following coders/decoders are currently available:
-
-=over 4
-
-=item * L<Mail::Message::TransferEnc::Base64|Mail::Message::TransferEnc::Base64>
-
-C<base64> for binary information.
-
-=item * L<Mail::Message::TransferEnc::SevenBit|Mail::Message::TransferEnc::SevenBit>
-
-C<7bit> for plain old ASCII characters only.
-
-=item * L<Mail::Message::TransferEnc::EightBit|Mail::Message::TransferEnc::EightBit>
-
-C<8bit> for extended character set data, not encoded.
-
-=item * L<Mail::Message::TransferEnc::QuotedPrint|Mail::Message::TransferEnc::QuotedPrint>
-
-C<quoted-printable> encdoded extended character set data.
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Message::TransferEnc-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 The Encoder
-
-
-Mail::Message::TransferEnc-E<gt>B<addTransferEncoder>(TYPE, CLASS)
-
-=over 4
-
-Adds one new encoder to the list known by the Mail::Box suite. The
-TYPE is found in the message's header in the C<Content-Transfer-Encoding>
-field.
-
-=back
-
-$obj-E<gt>B<create>(TYPE, OPTIONS)
-
-=over 4
-
-Create a new coder/decoder based on the required type.
-
-=back
-
-$obj-E<gt>B<name>
-
-=over 4
-
-The name of the encoder. Case is not significant.
-
-=back
-
-=head2 Encoding
-
-
-$obj-E<gt>B<check>(BODY, OPTIONS)
-
-=over 4
-
-Check whether the body is correctly encoded. If so, the body reference is
-returned with the C<checked> flag set. Otherwise, a new object is created
-and returned.
-
- Option Defined in Default
- result_type <type of source body>
-
-. result_type CLASS
-
-=over 4
-
-The type of the body to be produced, when the checker decides to return
-modified data.
-
-=back
-
-=back
-
-$obj-E<gt>B<decode>(BODY [, OPTIONS])
-
-=over 4
-
-Use the encoder to decode the content of BODY. A new body is returned.
-
- Option Defined in Default
- result_type <type of source body>
-
-. result_type CLASS
-
-=over 4
-
-The type of the body to be produced, when the decoder decides to return
-modified data.
-
-=back
-
-=back
-
-$obj-E<gt>B<encode>(BODY, OPTIONS)
-
-=over 4
-
-Use the encoder to encode the content of BODY.
-
- Option Defined in Default
- result_type <type of source body>
-
-. result_type CLASS
-
-=over 4
-
-The type of the body to be produced, when the decoder decides to return
-modified data.
-
-=back
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message::TransferEnc-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message::TransferEnc-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message::TransferEnc-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Decoder for transfer encoding $type does not work: $@
-
-Compiling the required transfer encoding resulted in errors, which means
-that the decoder can not be used.
-
-I<Warning:> No decoder for transfer encoding $type.
-
-A decoder for the specified type of transfer encoding is not implemented.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/TransferEnc.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/TransferEnc.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Wrapper/SpamAssassin.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,112 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message::Wrapper::SpamAssassin;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::SpamAssassin::Message';
-
-use Carp;
-use Mail::Message::Body;
-
-#------------------------------------------
-
-
-sub new(@) # fix missing infra-structure of base element
-{ my ($class, $message, %args) = @_;
-
- $_->delete for $message->head->spamGroups('SpamAssassin');
-
- $class->SUPER::new( {message => $message} )->init(\%args);
-}
-
-sub init($) { shift }
-
-#------------------------------------------
-
-sub create_new() {croak "Should not be used"}
-
-#------------------------------------------
-
-sub get($) { $_[0]->get_header($_[1]) }
-
-sub get_header($)
-{ my ($self, $name) = @_;
- my $head = $self->get_mail_object->head;
-
- # Return all fields unfolded in list context
- return map { $_->unfoldedBody } $head->get($name)
- if wantarray;
-
- # Only one field is expected
- my $field = $head->get($name);
- defined $field ? $field->unfoldedBody : undef;
-}
-
-#------------------------------------------
-
-sub get_pristine_header($)
-{ my ($self, $name) = @_;
- my $field = $self->get_mail_object->head->get($name);
- defined $field ? $field->foldedBody : undef;
-}
-
-#------------------------------------------
-
-sub put_header($$)
-{ my ($self, $name, $value) = @_;
- my $head = $self->get_mail_object->head;
- $value =~ s/\s{2,}/ /g;
- $value =~ s/\s*$//; # will cause a refold as well
- return () unless length $value;
-
- $head->add($name => $value);
-}
-
-#------------------------------------------
-
-sub get_all_headers($)
-{ my $head = shift->get_mail_object->head;
- "$head";
-}
-
-#------------------------------------------
-
-sub replace_header($$)
-{ my $head = shift->get_mail_object->head;
- my ($name, $value) = @_;
- $head->set($name, $value);
-}
-
-#------------------------------------------
-
-sub delete_header($)
-{ my $head = shift->get_mail_object->head;
- my $name = shift;
- $head->delete($name);
-}
-
-#------------------------------------------
-
-sub get_body() {shift->get_mail_object->body->lines }
-
-#------------------------------------------
-
-sub get_pristine() { shift->get_mail_object->head->string }
-
-#------------------------------------------
-
-sub replace_body($)
-{ my ($self, $data) = @_;
- my $body = Mail::Message::Body->new(data => $data);
- $self->get_mail_object->storeBody($body);
-}
-
-#------------------------------------------
-
-sub replace_original_message($)
-{ my ($self, $lines) = @_;
- die "We will not replace the message. Use report_safe = 0\n";
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Wrapper/SpamAssassin.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message/Wrapper/SpamAssassin.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,70 +0,0 @@
-
-=head1 NAME
-
-Mail::Message::Wrapper::SpamAssassin - Connect a Mail::Message with Mail::SpamAssassin
-
-
-=head1 INHERITANCE
-
- Mail::Message::Wrapper::SpamAssassin
- is a Mail::SpamAssassin::Message
-
-
-=head1 SYNOPSIS
-
- # See Mail::Box::Search::SpamAssassin for the prefered interface
- # However, it is possible to do:
-
- my $msg = ...; # some Mail::Message object
- my $sa = Mail::Message::Wrapper::SpamAssassin->new($msg);
- my $spam = Mail::SpamAssassin->new;
- my $status = $spam->check($sa);
-
- $msg->label(spam => 1) if $status->is_spam;
- $status->rewrite_mail; # Adds spam lines to header
-
-
-=head1 DESCRIPTION
-
-The C<Mail::Message::Wrapper::SpamAssassin>
-class --sorry for the long package
-name-- is a wrapper around Mail::SpamAssassin::Message, which is an
-interface to the spam checking software of Mail::SpamAssassin.
-
-
-
-=head1 METHODS
-
-
-Mail::Message::Wrapper::SpamAssassin-E<gt>B<new>(MESSAGE, OPTIONS)
-
-=over 4
-
-Creates a wrapper around the MESSAGE. The already present fields
-from a previous run of Spam::Assassin (or probably fake lines) are
-removed first.
-
-=back
-
-
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message/Wrapper/SpamAssassin.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message/Wrapper/SpamAssassin.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,763 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Message;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Mail::Message::Part;
-use Mail::Message::Head::Complete;
-use Mail::Message::Construct;
-
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::Multipart;
-use Mail::Message::Body::Nested;
-
-use Carp;
-use Scalar::Util 'weaken';
-
-
-our $crlf_platform;
-BEGIN { $crlf_platform = $^O =~ m/win32|cygwin/i }
-
-#------------------------------------------
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->SUPER::init($args);
-
- # Field initializations also in coerce()
- $self->{MM_modified} = $args->{modified} || 0;
- $self->{MM_trusted} = $args->{trusted} || 0;
-
- # Set the header
-
- my $head;
- if(defined($head = $args->{head})) { $self->head($head) }
- elsif(my $msgid = $args->{messageId} || $args->{messageID})
- { $self->takeMessageId($msgid);
- }
-
- # Set the body
- if(my $body = $args->{body})
- { $self->{MM_body} = $body;
- $body->message($self);
- }
-
- $self->{MM_body_type} = $args->{body_type}
- if defined $args->{body_type};
-
- $self->{MM_head_type} = $args->{head_type}
- if defined $args->{head_type};
-
- $self->{MM_field_type} = $args->{field_type}
- if defined $args->{field_type};
-
- my $labels = $args->{labels} || [];
- my @labels = ref $labels eq 'ARRAY' ? @$labels : %$labels;
- push @labels, deleted => $args->{deleted} if exists $args->{deleted};
- $self->{MM_labels} = { @labels };
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub clone(@)
-{ my ($self, %args) = @_;
-
- # First clone body, which may trigger head load as well. If head is
- # triggered first, then it may be decided to be lazy on the body at
- # moment. And then the body would be triggered.
-
- my ($head, $body) = ($self->head, $self->body);
- $head = $head->clone
- unless $args{shallow} || $args{shallow_head};
-
- $body = $body->clone
- unless $args{shallow} || $args{shallow_body};
-
- my $clone = Mail::Message->new
- ( head => $head
- , body => $body
- , $self->logSettings
- );
-
- my $labels = $self->labels;
- my %labels = %$labels;
- delete $labels{deleted};
-
- $clone->{MM_labels} = \%labels;
-
- $clone->{MM_cloned} = $self;
- weaken($clone->{MM_cloned});
-
- $clone;
-}
-
-#------------------------------------------
-
-
-sub messageId() { $_[0]->{MM_message_id} || $_[0]->takeMessageId}
-sub messageID() {shift->messageId} # compatibility
-
-#------------------------------------------
-
-
-sub container() { undef } # overridden by Mail::Message::Part
-
-#------------------------------------------
-
-
-sub isPart() { 0 } # overridden by Mail::Message::Part
-
-#------------------------------------------
-
-
-sub toplevel() { shift } # overridden by Mail::Message::Part
-
-#------------------------------------------
-
-
-sub isDummy() { 0 }
-
-#------------------------------------------
-
-
-sub print(;$)
-{ my $self = shift;
- my $out = shift || select;
-
- $self->head->print($out);
- $self->body->print($out);
- $self;
-}
-
-#------------------------------------------
-
-
-sub write(;$)
-{ my $self = shift;
- my $out = shift || select;
-
- $self->head->print($out);
- $self->body->print($out);
- $self;
-}
-
-#------------------------------------------
-
-
-my $default_mailer;
-
-sub send(@)
-{ my $self = shift;
-
- require Mail::Transport::Send;
-
- my $mailer;
- $default_mailer = $mailer = shift
- if ref $_[0] && $_[0]->isa('Mail::Transport::Send');
-
- my %args = @_;
- if( ! $args{via} && defined $default_mailer )
- { $mailer = $default_mailer;
- }
- else
- { my $via = delete $args{via} || 'sendmail';
- $default_mailer = $mailer = Mail::Transport->new(via => $via, %args);
- }
-
- $mailer->send($self, %args);
-}
-
-#------------------------------------------
-
-
-sub size()
-{ my $self = shift;
- $self->head->size + $self->body->size;
-}
-
-#------------------------------------------
-
-
-sub head(;$)
-{ my $self = shift;
- return $self->{MM_head} unless @_;
-
- my $head = shift;
- unless(defined $head)
- { delete $self->{MM_head};
- return undef;
- }
-
- $self->log(INTERNAL => "wrong type of head for message $self")
- unless ref $head && $head->isa('Mail::Message::Head');
-
- $head->message($self);
-
- if(my $old = $self->{MM_head})
- { $self->{MM_modified}++ unless $old->isDelayed;
- }
-
- $self->{MM_head} = $head;
-
- $self->takeMessageId unless $head->isDelayed;
-
- $head;
-}
-
-#------------------------------------------
-
-
-sub get($)
-{ my $self = shift;
- my $field = $self->head->get(shift) || return undef;
- $field->body;
-}
-
-#------------------------------------------
-
-
-sub study($)
-{ my $head = shift->head or return;
- scalar $head->study(@_); # return only last
-}
-
-#-------------------------------------------
-
-
-sub from()
-{ my $from = shift->head->get('From') or return ();
- map {$_->addresses} $from;
-}
-
-#-------------------------------------------
-
-
-sub sender()
-{ my $self = shift;
- my $sender = $self->head->get('Sender') || $self->head->get('From')
- || return ();
-
- ($sender->addresses)[0]; # first specified address
-}
-
-#-------------------------------------------
-
-
-sub to() { map {$_->addresses} shift->head->get('To') }
-
-#-------------------------------------------
-
-
-sub cc() { map {$_->addresses} shift->head->get('Cc') }
-
-#-------------------------------------------
-
-
-sub bcc() { map {$_->addresses} shift->head->get('Bcc') }
-
-#-------------------------------------------
-
-
-#-------------------------------------------
-
-
-sub destinations()
-{ my $self = shift;
- my %to = map { (lc($_->address) => $_) }
- $self->to, $self->cc, $self->bcc;
- values %to;
-}
-
-#-------------------------------------------
-
-
-sub subject()
-{ my $subject = shift->get('subject');
- defined $subject ? $subject : '';
-}
-
-#-------------------------------------------
-
-
-sub guessTimestamp() {shift->head->guessTimestamp}
-
-#-------------------------------------------
-
-
-sub timestamp()
-{ my $head = shift->head;
- $head->recvstamp || $head->timestamp;
-}
-
-#------------------------------------------
-
-
-sub nrLines()
-{ my $self = shift;
- $self->head->nrLines + $self->body->nrLines;
-}
-
-#-------------------------------------------
-
-
-sub body(;$@)
-{ my $self = shift;
- return $self->{MM_body} unless @_;
-
- my $head = $self->head;
- $head->removeContentInfo if defined $head;
-
- my ($rawbody, %args) = @_;
- unless(defined $rawbody)
- { # Disconnect body from message.
- my $body = delete $self->{MM_body};
- $body->message(undef) if defined $body;
- return $body;
- }
-
- $self->log(INTERNAL => "wrong type of body for message $rawbody")
- unless ref $rawbody && $rawbody->isa('Mail::Message::Body');
-
- # Bodies of real messages must be encoded for safe transmission.
- # Message parts will get encoded on the moment the whole multipart
- # is transformed into a real message.
- my $body = $self->isPart ? $rawbody : $rawbody->encoded;
- $body->contentInfoTo($self->head);
-
- my $oldbody = $self->{MM_body};
- return $body if defined $oldbody && $body==$oldbody;
-
- $body->message($self);
- $body->modified(1) if defined $oldbody;
-
- $self->{MM_body} = $body;
-}
-
-#------------------------------------------
-
-
-sub decoded(@)
-{ my ($self, %args) = @_;
-
- return $self->{MB_decoded} if $self->{MB_decoded};
-
- my $body = $self->body->load or return;
- my $decoded = $body->decoded(result_type => $args{result_type});
-
- $self->{MB_decoded} = $decoded if $args{keep};
- $decoded;
-}
-
-#------------------------------------------
-
-
-sub encode(@)
-{ my $body = shift->body->load;
- $body ? $body->encode(@_) : undef;
-}
-
-#-------------------------------------------
-
-
-sub isMultipart() {shift->head->isMultipart}
-
-#-------------------------------------------
-
-
-sub isNested() {shift->body->isNested}
-
-#-------------------------------------------
-
-
-sub parts(;$)
-{ my $self = shift;
- my $what = shift || 'ACTIVE';
-
- my $body = $self->body;
- my $recurse = $what eq 'RECURSE' || ref $what;
-
- my @parts
- = $body->isNested ? $body->nested->parts($what)
- : $body->isMultipart ? $body->parts($recurse ? 'RECURSE' : ())
- : $self;
-
- ref $what eq 'CODE' ? (grep {$what->($_)} @parts)
- : $what eq 'ACTIVE' ? (grep {not $_->isDeleted } @parts)
- : $what eq 'DELETED' ? (grep { $_->isDeleted } @parts)
- : $what eq 'ALL' ? @parts
- : $recurse ? @parts
- : confess "Select parts via $what?";
-}
-
-#------------------------------------------
-
-
-sub modified(;$)
-{ my $self = shift;
-
- return $self->isModified unless @_; # compatibility 2.036
-
- my $flag = shift;
- $self->{MM_modified} = $flag;
- my $head = $self->head;
- $head->modified($flag) if $head;
- my $body = $self->body;
- $body->modified($flag) if $body;
-
- $flag;
-}
-
-#------------------------------------------
-
-
-sub isModified()
-{ my $self = shift;
- return 1 if $self->{MM_modified};
-
- my $head = $self->head;
- if($head && $head->isModified)
- { $self->{MM_modified}++;
- return 1;
- }
-
- my $body = $self->body;
- if($body && $body->isModified)
- { $self->{MM_modified}++;
- return 1;
- }
-
- 0;
-}
-
-#------------------------------------------
-
-
-sub label($;$@)
-{ my $self = shift;
- return $self->{MM_labels}{$_[0]} unless @_ > 1;
- my $return = $_[1];
-
- my %labels = @_;
- @{$self->{MM_labels}}{keys %labels} = values %labels;
- $return;
-}
-
-#------------------------------------------
-
-
-sub labels()
-{ my $self = shift;
- wantarray ? keys %{$self->{MM_labels}} : $self->{MM_labels};
-}
-
-#------------------------------------------
-
-
-sub isDeleted() { shift->label('deleted') }
-
-#-------------------------------------------
-
-
-sub delete()
-{ my $self = shift;
- my $old = $self->label('deleted');
- $old || $self->label(deleted => time);
-}
-
-#-------------------------------------------
-
-
-sub deleted(;$)
-{ my $self = shift;
-
- @_ ? $self->label(deleted => shift)
- : $self->label('deleted') # compat 2.036
-}
-
-#-------------------------------------------
-
-
-sub labelsToStatus()
-{ my $self = shift;
- my $head = $self->head;
- my $labels = $self->labels;
-
- my $status = $head->get('status') || '';
- my $newstatus
- = $labels->{seen} ? 'RO'
- : $labels->{old} ? 'O'
- : '';
-
- $head->set(Status => $newstatus)
- if $newstatus ne $status;
-
- my $xstatus = $head->get('x-status') || '';
- my $newxstatus
- = ($labels->{replied} ? 'A' : '')
- . ($labels->{flagged} ? 'F' : '');
-
- $head->set('X-Status' => $newxstatus)
- if $newxstatus ne $xstatus;
-
- $self;
-}
-
-#-------------------------------------------
-
-
-sub statusToLabels()
-{ my $self = shift;
- my $head = $self->head;
-
- if(my $status = $head->get('status'))
- { $status = $status->foldedBody;
- $self->label
- ( seen => (index($status, 'R') >= 0)
- , old => (index($status, 'O') >= 0)
- );
- }
-
- if(my $xstatus = $head->get('x-status'))
- { $xstatus = $xstatus->foldedBody;
- $self->label
- ( replied => (index($xstatus, 'A') >= 0)
- , flagged => (index($xstatus, 'F') >= 0)
- );
- }
-
- $self;
-}
-
-#------------------------------------------
-
-
-#------------------------------------------
-
-
-my $mail_internet_converter;
-my $mime_entity_converter;
-
-sub coerce($@)
-{ my ($class, $message) = @_;
-
- return bless $message, $class
- if $message->isa(__PACKAGE__);
-
- if($message->isa('MIME::Entity'))
- { unless($mime_entity_converter)
- { eval {require Mail::Message::Convert::MimeEntity};
- confess "Install MIME::Entity" if $@;
-
- $mime_entity_converter = Mail::Message::Convert::MimeEntity->new;
- }
-
- $message = $mime_entity_converter->from($message)
- or return;
- }
-
- elsif($message->isa('Mail::Internet'))
- { unless($mail_internet_converter)
- { eval {require Mail::Message::Convert::MailInternet};
- confess "Install Mail::Internet" if $@;
-
- $mail_internet_converter = Mail::Message::Convert::MailInternet->new;
- }
-
- $message = $mail_internet_converter->from($message)
- or return;
- }
-
- else
- { my $what = ref $message ? 'a'.ref($message).' object' : 'text';
- confess "Cannot coerce $what into a ". __PACKAGE__." object.\n";
- }
-
- $message->{MM_modified} ||= 0;
- bless $message, $class;
-}
-
-#------------------------------------------
-
-
-sub clonedFrom() { shift->{MM_cloned} }
-
-#------------------------------------------
-# All next routines try to create compatibility with release < 2.0
-sub isParsed() { not shift->isDelayed }
-sub headIsRead() { not shift->head->isa('Mail::Message::Delayed') }
-
-#------------------------------------------
-
-
-sub readFromParser($;$)
-{ my ($self, $parser, $bodytype) = @_;
-
- my $head = $self->readHead($parser)
- || Mail::Message::Head::Complete->new
- ( message => $self
- , field_type => $self->{MM_field_type}
- , $self->logSettings
- );
-
- my $body = $self->readBody($parser, $head, $bodytype)
- or return;
-
- $self->head($head);
- $self->storeBody($body);
- $self;
-}
-
-#------------------------------------------
-
-
-sub readHead($;$)
-{ my ($self, $parser) = (shift, shift);
-
- my $headtype = shift
- || $self->{MM_head_type} || 'Mail::Message::Head::Complete';
-
- $headtype->new
- ( message => $self
- , field_type => $self->{MM_field_type}
- , $self->logSettings
- )->read($parser);
-}
-
-#------------------------------------------
-
-
-my $mpbody = 'Mail::Message::Body::Multipart';
-my $nbody = 'Mail::Message::Body::Nested';
-my $lbody = 'Mail::Message::Body::Lines';
-
-sub readBody($$;$$)
-{ my ($self, $parser, $head, $getbodytype) = @_;
-
- my $bodytype
- = ! $getbodytype ? ($self->{MM_body_type} || $lbody)
- : ref $getbodytype ? $getbodytype->($self, $head)
- : $getbodytype;
-
- my $body;
- if($bodytype->isDelayed)
- { $body = $bodytype->new
- ( message => $self
- , $self->logSettings
- );
- }
- else
- { my $ct = $head->get('Content-Type');
- my $type = defined $ct ? lc($ct->body) : 'text/plain';
-
- # Be sure you have acceptable bodies for multiparts and nested.
- if(substr($type, 0, 10) eq 'multipart/' && !$bodytype->isMultipart)
- { $bodytype = $mpbody }
- elsif($type eq 'message/rfc822' && !$bodytype->isNested)
- { $bodytype = $nbody }
-
- $body = $bodytype->new
- ( message => $self
- , checked => $self->{MM_trusted}
- , $self->logSettings
- );
-
- $body->contentInfoFrom($head);
- }
-
- my $lines = $head->get('Lines');
- my $size = $head->guessBodySize;
-
- $body->read
- ( $parser, $head, $getbodytype,
- , $size, (defined $lines ? int $lines->body : undef)
- );
-}
-
-#------------------------------------------
-
-
-sub storeBody($)
-{ my ($self, $body) = @_;
- $self->{MM_body} = $body;
- $body->message($self);
- $body;
-}
-
-#-------------------------------------------
-
-
-sub isDelayed()
-{ my $body = shift->body;
- !$body || $body->isDelayed;
-}
-
-#------------------------------------------
-
-
-sub takeMessageId(;$)
-{ my $self = shift;
- my $msgid = (@_ ? shift : $self->get('Message-ID')) || '';
-
- if($msgid =~ m/\<([^>]*)\>/s)
- { $msgid = $1;
- $msgid =~ s/\s//gs;
- }
-
- $msgid = $self->head->createMessageId
- unless length $msgid;
-
- $self->{MM_message_id} = $msgid;
-}
-
-#------------------------------------------
-
-
-sub shortSize(;$)
-{ my $self = shift;
- my $size = shift;
- $size = $self->head->guessBodySize unless defined $size;
-
- !defined $size ? '?'
- : $size < 1_000 ? sprintf "%3d " , $size
- : $size < 10_000 ? sprintf "%3.1fK", $size/1024
- : $size < 1_000_000 ? sprintf "%3.0fK", $size/1024
- : $size < 10_000_000 ? sprintf "%3.1fM", $size/(1024*1024)
- : sprintf "%3.0fM", $size/(1024*1024);
-}
-
-#------------------------------------------
-
-
-sub shortString()
-{ my $self = shift;
- sprintf "%4s %-30.30s", $self->shortSize, $self->subject;
-}
-
-#------------------------------------------
-
-
-sub DESTROY()
-{ my $self = shift;
- return if $self->inGlobalDestruction;
-
- $self->SUPER::DESTROY;
- $self->head(undef);
- $self->body(undef);
-}
-
-#------------------------------------------
-
-
-sub destruct() { $_[0] = undef }
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Message.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,1671 +0,0 @@
-
-=head1 NAME
-
-Mail::Message - general message object
-
-
-=head1 INHERITANCE
-
- Mail::Message has extra code in
- Mail::Message::Construct
- Mail::Message::Construct::Rebuild
- Mail::Message::Construct::Text
- Mail::Message::Construct::Forward
- Mail::Message::Construct::Bounce
- Mail::Message::Construct::Read
- Mail::Message::Construct::Build
- Mail::Message::Construct::Reply
-
- Mail::Message
- is a Mail::Reporter
-
- Mail::Message is extended by
- Mail::Box::Message
- Mail::Message::Dummy
- Mail::Message::Part
- Mail::Message::Replace::MailInternet
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open(folder => 'InBox');
- my $msg = $folder->message(2); # $msg is a Mail::Message now
-
- my $subject = $msg->subject; # The message's subject
- my @cc = $msg->cc; # List of Mail::Address'es
-
- my $msg = Mail::Message->build(...);
- my $reply_msg = Mail::Message->reply(...);
- my $frwd_msg = Mail::Message->forward(...);
-
- my Mail::Message::Head $head = $msg->head;
- my Mail::Message::Body $body = $msg->decoded;
- $msg->decoded->print($outfile);
-
-
-=head1 DESCRIPTION
-
-A C<Mail::Message> object is a container for MIME-encoded message information,
-as defined by RFC2822. Everything what is not specificly related to storing
-the messages in mailboxes (folders) is implemented in this class. Methods
-which are related to folders is implemented in the L<Mail::Box::Message|Mail::Box::Message>
-extension.
-
-The main methods are L<get()|Mail::Message/"The header">, to get information from a message header
-field, and L<decoded()|Mail::Message/"The body"> to get the intended content of a message.
-But there are many more which can assist your program.
-
-Complex message handling, like construction of replies and forwards, are
-implemented in separate packages which are autoloaded into this class.
-This means you can simply use these methods as if they are part of this class.
-Those package add functionality to all kinds of message objects.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-$obj-E<gt>B<clone>(OPTIONS)
-
-=over 4
-
-Create a copy of this message. Returned is a C<Mail::Message> object.
-The head and body, the log and trace levels are taken. Labels are
-copied with the message, but the delete and modified flags are not.
-
-BE WARNED: the clone of any kind of message (or a message part)
-will B<always> be a C<Mail::Message> object. For example, a
-L<Mail::Box::Message|Mail::Box::Message>'s clone is detached from the folder of its original.
-When you use L<Mail::Box::addMessage()|Mail::Box/"The folder"> with the cloned message at hand,
-then the clone will automatically be coerced into the right message type
-to be added.
-
-See also L<Mail::Box::Message::copyTo()|Mail::Box::Message/"The message"> and L<Mail::Box::Message::moveTo()|Mail::Box::Message/"The message">.
-
- Option Defined in Default
- shallow <false>
- shallow_body <false>
- shallow_head <false>
-
-. shallow BOOLEAN
-
-=over 4
-
-When a shallow clone is made, the header and body of the message will not
-be cloned, but shared. This is quite dangerous: for instance in some
-folder types, the header fields are used to store folder flags. When
-one of both shallow clones change the flags, that will update the header
-and thereby be visible in both.
-
-There are situations where a shallow clone can be used safely. For instance,
-when L<Mail::Box::Message::moveTo()|Mail::Box::Message/"The message"> is used and you are sure that the
-original message cannot get undeleted after the move.
-
-=back
-
-. shallow_body BOOLEAN
-
-=over 4
-
-A rather safe bet, because you are not allowed to modify the body of a
-message: you may only set a new body with L<body()|Mail::Message/"The body">.
-
-=back
-
-. shallow_head BOOLEAN
-
-=over 4
-
-Only the head uses is reused, not the body. This is probably a bad choice,
-because the header fields can be updated, for instance when labels change.
-
-=back
-
-I<Example:>
-
- $copy = $msg->clone;
-
-=back
-
-Mail::Message-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- body undef
- body_type L<Mail::Message::Body::Lines|Mail::Message::Body::Lines>
- deleted <false>
- field_type undef
- head undef
- head_type L<Mail::Message::Head::Complete|Mail::Message::Head::Complete>
- labels {}
- log L<Mail::Reporter> C<'WARNINGS'>
- messageId undef
- modified <false>
- trace L<Mail::Reporter> C<'WARNINGS'>
- trusted <false>
-
-. body OBJECT
-
-=over 4
-
-Instantiate the message with a body which has been created somewhere
-before the message is constructed. The OBJECT must be a sub-class
-of Mail::Message::Body. See also L<body()|Mail::Message/"The body"> and L<storeBody()|Mail::Message/"Internals">.
-
-=back
-
-. body_type CLASS
-
-=over 4
-
-Default type of body to be created for L<readBody()|Mail::Message/"Internals">.
-
-=back
-
-. deleted BOOLEAN
-
-=over 4
-
-Is the file deleted from the start?
-
-=back
-
-. field_type CLASS
-
-. head OBJECT
-
-=over 4
-
-Instantiate the message with a head which has been created somewhere
-before the message is constructed. The OBJECT must be a (sub-)class
-of L<Mail::Message::Head|Mail::Message::Head>. See also L<head()|Mail::Message/"The header">.
-
-=back
-
-. head_type CLASS
-
-=over 4
-
-Default type of head to be created for L<readHead()|Mail::Message/"Internals">.
-
-=back
-
-. labels ARRAY|HASH
-
-=over 4
-
-Initial values of the labels. In case of L<Mail::Box::Message|Mail::Box::Message>'s, this
-shall reflect the state the message is in. For newly constructed
-L<Mail::Message|Mail::Message>'s, this may be anything you want, because L<coerce()|Mail::Message/"Internals">
-will take care of the folder specifics once the message is added to one.
-
-=back
-
-. log LEVEL
-
-. messageId STRING
-
-=over 4
-
-The id on which this message can be recognized. If none specified and
-not defined in the header --but one is needed-- there will be one assigned
-to the message to be able to pass unique message-ids between objects.
-
-=back
-
-. modified BOOLEAN
-
-=over 4
-
-Flags this message as being modified from the beginning on. Usually,
-modification is auto-detected, but there may be reasons to be extra
-explicit.
-
-=back
-
-. trace LEVEL
-
-. trusted BOOLEAN
-
-=over 4
-
-Is this message from a trusted source? If not, the content must be
-checked before use. This checking will be performed when the
-body data is decoded or used for transmission.
-
-=back
-
-=back
-
-=head2 Constructing a message
-
-
-$obj-E<gt>B<bounce>([RG-OBJECT|OPTIONS])
-
-=over 4
-
-See L<Mail::Message::Construct::Bounce/"Constructing a message">
-
-=back
-
-Mail::Message-E<gt>B<build>([MESSAGE|PART|BODY], CONTENT)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-Mail::Message-E<gt>B<buildFromBody>(BODY, [HEAD], HEADERS)
-
-=over 4
-
-See L<Mail::Message::Construct::Build/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forward>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardAttach>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardEncapsulate>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardInline>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardNo>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPostlude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardPrelude>
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<forwardSubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Forward/"Constructing a message">
-
-=back
-
-Mail::Message-E<gt>B<read>(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Read/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<rebuild>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<reply>(OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replyPrelude>([STRING|FIELD|ADDRESS|ARRAY-OF-THINGS])
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-$obj-E<gt>B<replySubject>(STRING)
-
-Mail::Message-E<gt>B<replySubject>(STRING)
-
-=over 4
-
-See L<Mail::Message::Construct::Reply/"Constructing a message">
-
-=back
-
-=head2 The message
-
-
-$obj-E<gt>B<container>
-
-=over 4
-
-If the message is a part of another message, C<container> returns the
-reference to the containing body.
-
-I<Example:>
-
- my Mail::Message $msg = ...
- return unless $msg->body->isMultipart;
- my $part = $msg->body->part(2);
-
- return unless $part->body->isMultipart;
- my $nested = $part->body->part(3);
-
- $nested->container; # returns $msg->body
- $nested->toplevel; # returns $msg
- $msg->container; # returns undef
- $msg->toplevel; # returns $msg
- $msg->isPart; # returns false
- $part->isPart; # returns true
-
-=back
-
-$obj-E<gt>B<isDummy>
-
-=over 4
-
-Dummy messages are used to fill holes in linked-list and such, where only
-a message-id is known, but not the place of the header of body data.
-
-This method is also available for L<Mail::Message::Dummy|Mail::Message::Dummy> objects,
-where this will return C<true>. On any extension of C<Mail::Message>,
-this will return C<false>.
-
-=back
-
-$obj-E<gt>B<isPart>
-
-=over 4
-
-Returns true if the message is a part of another message. This is
-the case for L<Mail::Message::Part|Mail::Message::Part> extensions of C<Mail::Message>.
-
-=back
-
-$obj-E<gt>B<messageId>
-
-=over 4
-
-Retrieve the message's id. Every message has a unique message-id. This id
-is used mainly for recognizing discussion threads.
-
-=back
-
-$obj-E<gt>B<print>([FILEHANDLE])
-
-=over 4
-
-Print the message to the FILE-HANDLE, which defaults to the selected
-filehandle, without the encapsulation sometimes required by a folder
-type, like L<write()|Mail::Message/"The message"> does.
-
-I<Example:>
-
- $message->print(\*STDERR); # to the error output
- $message->print; # to the selected file
-
- my $out = IO::File->new('out', 'w');
- $message->print($out); # no encapsulation: no folder
- $message->write($out); # with encapsulation: is folder.
-
-=back
-
-$obj-E<gt>B<send>([MAILER], OPTIONS)
-
-=over 4
-
-Transmit the message to anything outside this Perl program. MAILER
-is a L<Mail::Transport::Send|Mail::Transport::Send> object. When the MAILER is not specified, one
-will be created, and kept as default for the next messages as well.
-
-The OPTIONS are mailer specific, and a mixture of what is usable for
-the creation of the mailer object and the sending itself. Therefore, see
-for possible options L<Mail::Transport::Send::new()|Mail::Transport::Send/"METHODS"> and
-L<Mail::Transport::Send::send()|Mail::Transport::Send/"Sending mail">.
-
-I<Example:>
-
- $message->send;
-
-is short (but little less flexibile) for
-
- my $mailer = Mail::Transport::SMTP->new(@smtpopts);
- $mailer->send($message, @sendopts);
-
-See examples/send.pl in the distribution of L<Mail::Box|Mail::Box>.
-
-I<Example:>
-
- $message->send(via => 'sendmail')
-
-=back
-
-$obj-E<gt>B<size>
-
-=over 4
-
-Returns an estimated size of the whole message in bytes. In many occasions,
-the functions which process the message further, for instance L<send()|Mail::Message/"The message">
-or L<print()|Mail::Message/"The message"> will need to add/change header lines or add CR characters,
-so the size is only an estimate with a few percent margin of the real
-result.
-
-The computation assumes that each line ending is represented by one
-character (like UNIX, MacOS, and sometimes Cygwin), and not two characters
-(like Windows and sometimes Cygwin). If you write the message to file on
-a system which uses CR and LF to end a single line (all Windows versions),
-the result in that file will be at least L<nrLines()|Mail::Message/"The header"> larger than this
-method returns.
-
-=back
-
-$obj-E<gt>B<toplevel>
-
-=over 4
-
-Returns a reference to the main message, which will be the current
-message if the message is not part of another message.
-
-=back
-
-$obj-E<gt>B<write>([FILEHANDLE])
-
-=over 4
-
-Write the message to the FILE-HANDLE, which defaults to the selected
-FILEHANDLE, with all surrounding information which is needed to put
-it correctly in a folder file.
-
-In most cases, the result of C<write> will be the same as with L<print()|Mail::Message/"The message">.
-The main exception is for Mbox folder messages, which will get printed
-with their leading 'From ' line and a trailing blank. Each line of
-their body which starts with 'From ' will have an 'E<gt>' added in front.
-
-=back
-
-=head2 The header
-
-
-$obj-E<gt>B<bcc>
-
-=over 4
-
-Returns the addresses which are specified on the C<Bcc> header line (or lines)
-A list of Mail::Address objects is returned.
-C<Bcc> stands for I<Blind Carbon Copy>: destinations of the message which are
-not listed in the messages actually sent. So, this field will be empty
-for received messages, but may be present in messages you construct yourself.
-
-=back
-
-$obj-E<gt>B<cc>
-
-=over 4
-
-Returns the addresses which are specified on the C<Cc> header line (or lines)
-A list of Mail::Address objects is returned. C<Cc> stands for
-I<Carbon Copy>; the people addressed on this line receive the message
-informational, and are usually not expected to reply on its content.
-
-=back
-
-$obj-E<gt>B<date>
-
-=over 4
-
-Method has been removed for reasons of consistency. Use L<timestamp()|Mail::Message/"The header">
-or C<$msg->head->get('Date')>.
-
-=back
-
-$obj-E<gt>B<destinations>
-
-=over 4
-
-Returns a list of Mail::Address objects which contains the combined
-info of active C<To>, C<Cc>, and C<Bcc> addresses. Double addresses are
-removed if detectable.
-
-=back
-
-$obj-E<gt>B<from>
-
-=over 4
-
-Returns the addresses from the senders. It is possible to have more than
-one address specified in the C<From> field of the message, according
-to the specification. Therefore a list of Mail::Address objects is
-returned, which usually has length 1.
-
-If you need only one address from a sender, for instance to create a
-"original message by" line in constructed forwarded message body, then use
-L<sender()|Mail::Message/"The header">.
-
-I<Example:> using from() to get all sender addresses
-
-
- my @from = $message->from;
-
-=back
-
-$obj-E<gt>B<get>(FIELDNAME)
-
-=over 4
-
-Returns the value which is stored in the header field with the specified
-name. The FIELDNAME is case insensitive. The I<unfolded body> of the
-field is returned, stripped from any attributes.
-See L<Mail::Message::Field::body()|Mail::Message::Field/"Access to the body">.
-
-If the field has multiple appearances in the header, only the last
-instance is returned. If you need more complex handing of fields, then
-call L<Mail::Message::Head::get()|Mail::Message::Head/"Access to the header"> yourself. See L<study()|Mail::Message/"The header"> when you
-want to be smart, doing the better (but slower) job.
-
-I<Example:> the get() short-cut for header fields
-
-
- print $msg->get('Content-Type'), "\n";
-
-Is equivalent to:
-
- print $msg->head->get('Content-Type')->body, "\n";
-
-=back
-
-$obj-E<gt>B<guessTimestamp>
-
-=over 4
-
-Return an estimate on the time this message was sent. The data is
-derived from the header, where it can be derived from the C<date> and
-C<received> lines. For MBox-like folders you may get the date from
-the from-line as well.
-
-This method may return C<undef> if the header is not parsed or only
-partially known. If you require a time, then use the L<timestamp()|Mail::Message/"The header">
-method, described below.
-
-I<Example:> using guessTimestamp() to get a transmission date
-
-
- print "Receipt ", ($message->timestamp || 'unknown'), "\n";
-
-=back
-
-$obj-E<gt>B<head>([HEAD])
-
-=over 4
-
-Return (optionally after setting) the HEAD of this message.
-The head must be an (sub-)class of L<Mail::Message::Head|Mail::Message::Head>.
-When the head is added, status information is taken from it
-and transformed into labels. More labels can be added by the
-LABELS hash. They are added later.
-
-I<Example:>
-
- $msg->head(Mail::Message::Head->new); # set
- my $head = $msg->head; # get
-
-=back
-
-$obj-E<gt>B<nrLines>
-
-=over 4
-
-Returns the number of lines used for the whole message.
-
-=back
-
-$obj-E<gt>B<sender>
-
-=over 4
-
-Returns exactly one address, which is the originator of this message.
-The returned Mail::Address object is taken from the C<Sender> header
-field, unless that field does not exists, in which case the first
-address from the C<From> field is taken. If none of both provide
-an address, C<undef> is returned.
-
-I<Example:> using sender() to get exactly one sender address
-
-
- my $sender = $message->sender;
- print "Reply to: ", $sender->format, "\n" if defined $sender;
-
-=back
-
-$obj-E<gt>B<study>(FIELDNAME)
-
-=over 4
-
-Study the content of a field, like L<get()|Mail::Message/"The header"> does, with as main difference
-that a L<Mail::Message::Field::Full|Mail::Message::Field::Full> object is returned. These objects
-stringify to an utf8 decoded representation of the data contained in
-the field, where L<get()|Mail::Message/"The header"> does not decode.
-See L<Mail::Message::Field::study()|Mail::Message::Field/"Access to the content">.
-
-I<Example:> the study() short-cut for header fields
-
-
- print $msg->study('to'), "\n";
-
-Is equivalent to:
-
- print $msg->head->study('to'), "\n"; # and
- print $msg->head->get('to')->study, "\n";
-
-=back
-
-$obj-E<gt>B<subject>
-
-=over 4
-
-Returns the message's subject, or the empty string.
-
-I<Example:> using subject() to get the message's subject
-
-
- print $msg->subject;
-
-=back
-
-$obj-E<gt>B<timestamp>
-
-=over 4
-
-Get a good timestamp for the message, doesn't matter how much work it is.
-The value returned is compatible with the platform dependent result of
-function time().
-
-In these days, the timestamp as supplied by the message (in the C<Date>
-field) is not trustable at all: many spammers produce illegal or
-unreal dates to influence their location in the displayed folder.
-
-To start, the received headers are tried for a date (see
-L<Mail::Message::Head::Complete::recvstamp()|Mail::Message::Head::Complete/"About the body">) and only then the C<Date>
-field. In very rare cases, only with some locally produced messages,
-no stamp can be found.
-
-=back
-
-$obj-E<gt>B<to>
-
-=over 4
-
-Returns the addresses which are specified on the C<To> header line (or lines).
-A list of Mail::Address objects is returned. The people addressed
-here are the targets of the content, and should read it contents
-carefully.
-
-I<Example:> using to() to get all primar destination addresses
-
-
- my @to = $message->to;
-
-=back
-
-=head2 The body
-
-
-$obj-E<gt>B<body>([BODY])
-
-=over 4
-
-Return the body of this message. BE WARNED that this returns
-you an object which may be encoded: use decoded() to get a body
-with usable data.
-
-With options, a new BODY is set for this message. This is B<not>
-for normal use unless you understand the consequences: you change
-the message content without changing the message-ID. The right
-way to go is via
-
- $message = Mail::Message->buildFromBody($body); # or
- $message = Mail::Message->build($body); # or
- $message = $origmsg->forward(body => $body);
-
-The BODY must be an (sub-)class of L<Mail::Message::Body|Mail::Message::Body>. In this case,
-information from the specified body will be copied into the header. The
-body object will be encoded if needed, because messages written to file
-or transmitted shall not contain binary data. The converted body
-is returned.
-
-When BODY is C<undef>, the current message body will be dissected from
-the message. All relation will be cut. The body is returned, and
-can be connected to a different message.
-
-I<Example:>
-
- my $body = $msg->body;
- my @encoded = $msg->body->lines;
-
- my $new = Mail::Message::Body->new(mime_type => 'text/html');
- my $converted = $msg->body($new);
-
-=back
-
-$obj-E<gt>B<decoded>(OPTIONS)
-
-=over 4
-
-Decodes the body of this message, and returns it as a body object. If there
-was no encoding, the body object as read from file is passed on, however,
-some more work will be needed when a serious encoding is encountered.
-The OPTIONS control how the conversion takes place.
-
- Option Defined in Default
- keep <false>
- result_type <type of body>
-
-. keep BOOLEAN
-
-=over 4
-
-Controls whether the decoded result will be kept. If not, the decoding
-may be performed more than once. However, it will consume extra
-resources...
-
-=back
-
-. result_type BODYTYPE
-
-=over 4
-
-Specifies which kind of body should be used for the final result, and
-eventual intermediate conversion stages. It is not sure that this
-will be the type of the body returned. BODYTYPE extends
-L<Mail::Message::Body|Mail::Message::Body>.
-
-=back
-
-I<Example:>
-
- $message->decoded->print(\*OUT);
- $message->decoded->print;
-
- my $dec = $message->body($message->decoded);
- my $dec = $message->decoded(keep => 1); # same
-
-=back
-
-$obj-E<gt>B<encode>(OPTIONS)
-
-=over 4
-
-Encode the message to a certain format. Read the details in the
-dedicated manual page L<Mail::Message::Body::Encode|Mail::Message::Body::Encode>. The OPTIONS which
-can be specified here are those of the L<Mail::Message::Body::encode()|Mail::Message::Body::Encode/"Constructing a body">
-method.
-
-=back
-
-$obj-E<gt>B<isMultipart>
-
-=over 4
-
-Check whether this message is a multipart message (has attachments). To
-find this out, we need at least the header of the message; there is no
-need to read the body of the message to detect this.
-
-=back
-
-$obj-E<gt>B<isNested>
-
-=over 4
-
-Returns C<true> for C<message/rfc822> messages and message parts.
-
-=back
-
-$obj-E<gt>B<parts>(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])
-
-=over 4
-
-Returns the I<parts> of this message. Usually, the term I<part> is used
-with I<multipart> messages: messages which are encapsulated in the body
-of a message. To abstract this concept: this method will return you
-all header-body combinations which are stored within this message
-B<except> the multipart and message/rfc822 wrappers.
-Objects returned are C<Mail::Message>'s and L<Mail::Message::Part|Mail::Message::Part>'s.
-
-The option default to 'ALL', which will return the message itself for
-single-parts, the nested content of a message/rfc822 object, respectively
-the parts of a multipart without recursion. In case of 'RECURSE', the
-parts of multiparts will be collected recursively. This option cannot
-be combined with the other options, which you may want: it that case
-you have to test yourself.
-
-'ACTIVE' and 'DELETED' check for the deleted flag on messages and
-message parts. The FILTER is a code reference, which is called for
-each part of the messagei; each part as C<RECURSE> would return.
-
-I<Example:>
-
- my @parts = $msg->parts; # $msg not multipart: returns ($msg)
- my $parts = $msg->parts('ACTIVE'); # returns ($msg)
-
- $msg->delete;
- my @parts = $msg->parts; # returns ($msg)
- my $parts = $msg->parts('ACTIVE'); # returns ()
-
-=back
-
-=head2 Flags
-
-
-$obj-E<gt>B<delete>
-
-=over 4
-
-Flag the message to be deleted, which is a shortcut for
- $msg->label(deleted => time);
-The real deletion only takes place on a synchronization of the folder.
-See L<deleted()|Mail::Message/"Flags"> as well.
-
-The time stamp of the moment of deletion is stored as value, but that
-is not always preserved in the folder (depends on the implementation).
-When the same message is deleted more than once, the first time stamp
-will stay.
-
-I<Example:>
-
- $message->delete;
- $message->deleted(1); # exactly the same
- $message->label(deleted => 1);
- delete $message;
-
-=back
-
-$obj-E<gt>B<deleted>([BOOLEAN])
-
-=over 4
-
-Set the delete flag for this message. Without argument, the method
-returns the same as L<isDeleted()|Mail::Message/"Flags">, which is prefered. When a true
-value is given, L<delete()|Mail::Message/"Flags"> is called.
-
-I<Example:>
-
- $message->deleted(1); # delete
- $message->delete; # delete (prefered)
-
- $message->deleted(0); # undelete
-
- if($message->deleted) {...} # check
- if($message->isDeleted) {...} # check (prefered)
-
-=back
-
-$obj-E<gt>B<isDeleted>
-
-=over 4
-
-Short-cut for
- $msg->label('deleted')
-
-For some folder types, you will get the time of deletion in return. This
-depends on the implementation.
-
-I<Example:>
-
- next if $message->isDeleted;
-
- if(my $when = $message->isDeleted) {
- print scalar localtime $when;
- }
-
-=back
-
-$obj-E<gt>B<isModified>
-
-=over 4
-
-Returns whether this message is flagged as being modified. Modifications
-are changes in header lines, when a new body is set to the message
-(dangerous), or when labels change.
-
-=back
-
-$obj-E<gt>B<label>(LABEL|PAIRS)
-
-=over 4
-
-Return the value of the LABEL, optionally after setting some values. In
-case of setting values, you specify key-value PAIRS.
-
-Labels are used to store knowledge about handling of the message within
-the folder. Flags about whether a message was read, replied to, or
-scheduled for deletion.
-
-Some labels are taken from the header's C<Status> and C<X-Status> lines,
-however folder types like MH define a separate label file.
-
-I<Example:>
-
- print $message->label('seen');
- if($message->label('seen')) {...};
- $message->label(seen => 1);
-
- $message->label(deleted => 1); # same as $message->delete
-
-=back
-
-$obj-E<gt>B<labels>
-
-=over 4
-
-Returns all known labels. In SCALAR context, it returns the knowledge
-as reference to a hash. This is a reference to the original data, but
-you shall *not* change that data directly: call C<label> for
-changes!
-
-In LIST context, you get a list of names which are defined. Be warned
-that they will not all evaluate to true, although most of them will.
-
-=back
-
-$obj-E<gt>B<labelsToStatus>
-
-=over 4
-
-When the labels were changed, that may effect the C<Status> and/or
-C<X-Status> header lines of mbox messages. Read about the relation
-between these fields and the labels in the DETAILS chapter.
-
-The method will carefully only affect the result of L<modified()|Mail::Message/"Flags"> when
-there is a real change of flags, so not for each call to L<label()|Mail::Message/"Flags">.
-
-=back
-
-$obj-E<gt>B<modified>([BOOLEAN])
-
-=over 4
-
-Returns (optionally after setting) whether this message is flagged as
-being modified. See isModified().
-
-=back
-
-$obj-E<gt>B<statusToLabels>
-
-=over 4
-
-Update the labels according the status lines in the header. See the
-description in the DETAILS chapter.
-
-=back
-
-=head2 The whole message as text
-
-
-$obj-E<gt>B<file>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<lines>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef],[INDENT])
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-$obj-E<gt>B<string>
-
-=over 4
-
-See L<Mail::Message::Construct::Text/"The whole message as text">
-
-=back
-
-=head2 Internals
-
-
-$obj-E<gt>B<clonedFrom>
-
-=over 4
-
-Returns the MESSAGE which is the source of this message, which was
-created by a L<clone()|Mail::Message/"Constructors"> operation.
-
-=back
-
-Mail::Message-E<gt>B<coerce>(MESSAGE, OPTIONS)
-
-=over 4
-
-Coerce a MESSAGE into a Mail::Message. In some
-occasions, for instance where you add a message to a folder, this
-coercion is automatically called to ensure that the correct message
-type is stored.
-
-The coerced message is returned on success, otherwise C<undef>. The
-coerced message may be a reblessed version of the original message
-or a new object. In case the message has to be specialized, for
-instance from a general Mail::Message into a Mail::Box::Mbox::Message,
-no copy is needed. However, to coerce a Mail::Internet object into
-a Mail::Message, a lot of copying and converting will take place.
-
-Valid MESSAGEs which can be coerced into Mail::Message objects
-are of type
-
-=over 4
-
-=item * Any type of L<Mail::Box::Message|Mail::Box::Message>
-
-=item * MIME::Entity's, using L<Mail::Message::Convert::MimeEntity|Mail::Message::Convert::MimeEntity>
-
-=item * Mail::Internet's, using L<Mail::Message::Convert::MailInternet|Mail::Message::Convert::MailInternet>
-
-=back
-
-L<Mail::Message::Part|Mail::Message::Part>'s, which are extensions of C<Mail::Message>'s,
-can also be coerced directly from a L<Mail::Message::Body|Mail::Message::Body>.
-
-I<Example:>
-
- my $folder = Mail::Box::Mbox->new;
- my $message = Mail::Message->build(...);
-
- my $coerced = Mail::Box::Mbox::Message->coerce($message);
- $folder->addMessage($coerced);
-
-Simpler replacement for the previous two lines:
-
- my $coerced = $folder->addMessage($message);
-
-=back
-
-$obj-E<gt>B<isDelayed>
-
-=over 4
-
-Check whether the message is delayed (not yet read from file). Returns
-true or false, dependent on the body type.
-
-=back
-
-$obj-E<gt>B<readBody>(PARSER, HEAD [, BODYTYPE])
-
-=over 4
-
-Read a body of a message. The PARSER is the access to the folder's
-file, and the HEAD is already read. Information from the HEAD is used
-to create expectations about the message's length, but also to determine
-the mime-type and encodings of the body data.
-
-The BODYTYPE determines which kind of body will be made and defaults to
-the value specified by new(body_type).
-BODYTYPE may be the name of a body class, or a reference
-to a routine which returns the body's class when passed the HEAD as only
-argument.
-
-=back
-
-$obj-E<gt>B<readFromParser>(PARSER, [BODYTYPE])
-
-=over 4
-
-Read one message from file. The PARSER is opened on the file. First
-L<readHead()|Mail::Message/"Internals"> is called, and the head is stored in the message. Then
-L<readBody()|Mail::Message/"Internals"> is called, to produce a body. Also the body is added to
-the message without decodings being done.
-
-The optional BODYTYPE may be a body class or a reference to a code
-which returns a body-class based on the header.
-
-=back
-
-$obj-E<gt>B<readHead>(PARSER [,CLASS])
-
-=over 4
-
-Read a head into an object of the specified CLASS. The CLASS defaults to
-L<new(head_type)|Mail::Message/"Constructors">. The PARSER is the access to the folder's file.
-
-=back
-
-$obj-E<gt>B<recursiveRebuildPart>(PART, OPTIONS)
-
-=over 4
-
-See L<Mail::Message::Construct::Rebuild/"Internals">
-
-=back
-
-$obj-E<gt>B<storeBody>(BODY)
-
-=over 4
-
-Where the L<body()|Mail::Message/"The body"> method can be used to set and get a body, with all
-the necessary checks, this method is bluntly adding the specified body
-to the message. No conversions, not checking.
-
-=back
-
-$obj-E<gt>B<takeMessageId>([STRING])
-
-=over 4
-
-Take the message-id from the STRING, or create one when the C<undef>
-is specified. If not STRING nor C<undef> is given, the current header
-of the message is requested for the value of the C<'Message-ID'> field.
-
-Angles (if present) are removed from the id.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Message::Construct/"METHODS">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Message-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Message-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Message-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<shortSize>([VALUE])
-
-Mail::Message-E<gt>B<shortSize>([VALUE])
-
-=over 4
-
-Represent an integer VALUE representing the size of file or memory,
-(which can be large) into a short string using M and K (Megabytes
-and Kilobytes). Without VALUE, the size of the message head is used.
-
-=back
-
-$obj-E<gt>B<shortString>
-
-=over 4
-
-Convert the message header to a short string (without trailing newline),
-representing the most important facts (for debugging purposes only). For
-now, it only reports size and subject.
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-When a message is to accessible anymore by any user's reference, Perl
-will call DESTROY for final clean-up. In this case, the head and
-body are released, and de-registered for the folder. You shall not call
-this yourself!
-
-=back
-
-$obj-E<gt>B<destruct>
-
-=over 4
-
-Remove the information contained in the message object. This will be
-ignored when more than one reference to the same message object exists,
-because the method has the same effect as assigning C<undef> to the
-variable which contains the reference. Normal garbage collection will
-call L<DESTROY()|Mail::Message/"Cleanup"> when possible.
-
-This method is only provided to hide differences with messages which are
-located in folders: their L<Mail::Box::Message::destruct()|Mail::Box::Message/"Cleanup"> works quite
-differently.
-
-I<Example:> of Mail::Message destruct
-
-
- my $msg = Mail::Message->read;
- $msg->destruct;
- $msg = undef; # same
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot include forward source as $include.
-
-Unknown alternative for the L<forward(include)|Mail::Message::Construct::Forward/"Constructing a message">. Valid choices are
-C<NO>, C<INLINE>, C<ATTACH>, and C<ENCAPSULATE>.
-
-I<Error:> Cannot include reply source as $include.
-
-Unknown alternative for the C<include> option of L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. Valid
-choices are C<NO>, C<INLINE>, and C<ATTACH>.
-
-I<Error:> No address to create forwarded to.
-
-If a forward message is created, a destination address must be specified.
-
-I<Error:> No default mailer found to send message.
-
-The message L<send()|Mail::Message/"The message"> mechanism had not enough information to automatically
-find a mail transfer agent to sent this message. Specify a mailer
-explicitly using the C<via> options.
-
-I<Error:> Only build() Mail::Message's; they are not in a folder yet
-
-You may wish to construct a message to be stored in a some kind
-of folder, but you need to do that in two steps. First, create a
-normal L<Mail::Message|Mail::Message>, and then add it to the folder. During this
-L<Mail::Box::addMessage()|Mail::Box/"The folder"> process, the message will get L<coerce()|Mail::Message/"Internals">-d
-into the right message type, adding storage information and the like.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> bounce requires To, Cc, or Bcc
-
-The message L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message"> method forwards a received message off to someone
-else without modification; you must specified it's new destination.
-If you have the urge not to specify any destination, you probably
-are looking for L<reply()|Mail::Message::Construct::Reply/"Constructing a message">. When you wish to modify the content, use
-L<forward()|Mail::Message::Construct::Forward/"Constructing a message">.
-
-I<Error:> forwardAttach requires a preamble object
-
-
-I<Error:> forwardEncapsulate requires a preamble object
-
-
-I<Error:> no rebuild rule $name defined.
-
-
-
-=head1 DETAILS
-
-
-=head2 Structure of a Message
-
-A MIME-compliant message is build upon two parts: the I<header> and the
-I<body>.
-
-=head3 The header
-
-The header is a list of fields, some spanning more than one line
-(I<folded>) each telling something about the message. Information stored
-in here are for instance the sender of the message, the receivers of
-the message, when it was transported, how it was transported, etc.
-Headers can grow quite large.
-
-In MailBox, each message object manages exactly one header object
-(a L<Mail::Message::Head|Mail::Message::Head>) and one body object (a L<Mail::Message::Body|Mail::Message::Body>).
-The header contains a list of header fields, which are represented by
-L<Mail::Message::Field|Mail::Message::Field> objects.
-
-=head3 The body
-
-The body contains the "payload": the data to be transfered.
-The data can be encoded, only accessible with a specific application,
-and may use some weird character-set, like Vietnamese; the MailBox
-distribution tries to assist you with handling these e-mails without
-the need to know all the details. This additional information
-("meta-information") about the body data is stored in the header.
-The header contains more information, for instance about the message
-transport and relations to other messages.
-
-=head2 Message object implementation
-
-The general idea about the structure of a message is
-
- Mail::Message
- | |
- | `-has-one--Mail::Message::Body
- |
- `----has-one--Mail::Message::Head
- |
- `-has-many--Mail::Message::Field
-
-However: there are about 7 kinds of body objects, 3 kinds of headers and
-3 kinds of fields. You will usually not see too much of these kinds,
-because they are merely created for performance reasons and can be used
-all the same, with the exception of the multipart bodies.
-
-A multipart body is either a L<Mail::Message::Body::Multipart|Mail::Message::Body::Multipart>
-(mime type C<multipart/*>) or a L<Mail::Message::Body::Nested|Mail::Message::Body::Nested>
-(mime type C<message/rfc822>). These bodies are more complex:
-
- Mail::Message::Body::Multipart
- |
- `-has-many--Mail::Message::Part
- | |
- | `-has-one--Mail::Message::Body
- |
- `----has-one--Mail::Message::Head
-
-Before you try to reconstruct multiparts or nested messages yourself,
-you can better take a look at L<Mail::Message::Construct::Rebuild|Mail::Message::Construct::Rebuild>.
-
-=head2 Message class implementation
-
-The class structure of messages is very close to that of folders. For
-instance, a L<Mail::Box::File::Message|Mail::Box::File::Message> relates to a L<Mail::Box::File|Mail::Box::File>
-folder.
-
-As extra level of inheritance, it has a L<Mail::Message|Mail::Message>, which
-is a message without location. And there is a special case of
-message: L<Mail::Message::Part|Mail::Message::Part> is a message encapsulated in a
-multipart body.
-
-The message types are:
-
- Mail::Box::Mbox::Message Mail::Box::POP3::Message
- | Mail::Box::Dbx::Message Mail::Box::IMAP4::Message |
- | | | |
- Mail::Box::File::Message Mail::Box::Net::Message
- | |
- | Mail::Box::Maildir::Message |
- | | Mail::Box::MH::Message |
- | | | |
- | Mail::Box::Dir::Message |
- | | |
- `------------. | .-----------------'
- | | |
- Mail::Box::Message Mail::Message::Part
- | |
- | .-------------'
- | |
- Mail::Message
- |
- |
- Mail::Reporter (general base class)
-
-By far most folder features are implemented in L<Mail::Box|Mail::Box>, so
-available to all folder types. Sometimes, features which appear
-in only some of the folder types are simulated for folders that miss
-them, like sub-folder support for MBOX.
-
-Two strange other message types are defined:
-the L<Mail::Message::Dummy|Mail::Message::Dummy>, which fills holes in
-L<Mail::Box::Thread::Node|Mail::Box::Thread::Node> lists, and a L<Mail::Box::Message::Destructed|Mail::Box::Message::Destructed>,
-this is an on purpose demolished message to reduce memory consumption.
-
-=head2 Labels
-
-Labels (also named "Flags") are used to indicate some special condition on
-the message, primary targeted on organizational issues: which messages are
-already read or should be deleted. There is a very strong user relation
-to labels.
-
-The main complication is that each folder type has its own way of storing
-labels. To give an indication: MBOX folders use C<Status> and C<X-Status>
-header fields, MH uses a C<.mh-sequences> file, MAILDIR encodes the flags
-in the message's filename, and IMAP has flags as part of the protocol.
-
-Besides, some folder types can store labels with user defined names,
-where other lack that feature. Some folders have case-insensitive
-labels, other don't. Read all about the specifics in the manual page of
-the message type you actually have.
-
-=head3 Predefined labels
-
-To standardize the folder types, MailBox has defined the following labels,
-which can be used with the L<label()|Mail::Message/"Flags"> and L<labels()|Mail::Message/"Flags"> methods on all kinds
-of messages:
-
-=over 4
-
-=item * deleted
-
-This message is flagged to be deleted once the folder closes. Be very
-careful about the concept of 'delete' in a folder context : it is only a
-flag, and does not involve immediate action! This means, for instance,
-that the memory which is used by Perl to store the message is not released
-immediately (see L<destruct()|Mail::Message/"Cleanup"> if you need to).
-
-The methods L<delete()|Mail::Message/"Flags">, L<deleted()|Mail::Message/"Flags">, and L<isDeleted()|Mail::Message/"Flags"> are only
-short-cuts for managing the C<delete> label (as of MailBox 2.052).
-
-=item * draft
-
-The user has prepared this message, but is has not been send (yet). This
-flag is not automatically added to a message by MailBox, and has only
-a meaning in user applications.
-
-=item * flagged
-
-Messages can be I<flagged> for some purpose, for instance as result of
-a search for spam in a folder. The L<Mail::Box::messages()|Mail::Box/"The messages"> method
-can be used to collect all these flagged messages from the folder.
-
-Probably it is more useful to use an understandable name (like C<spam>)
-for these selections, however these self-defined labels can not stored
-in all folder types.
-
-=item * old
-
-The message was already in the folder when it was opened the last time,
-so was not recently added to the folder. This flag will never automatically
-be set by MailBox, because it would probably conflict with the user's
-idea of what is old.
-
-=item * passed
-
-Not often used or kept, this flag indicates that the message was bounced
-or forwarded to someone else.
-
-=item * replied
-
-The user (or application) has sent a message back to the sender of
-the message, as response of this one. This flag is automatically
-set if you use L<reply()|Mail::Message::Construct::Reply/"Constructing a message">, but not with L<forward()|Mail::Message::Construct::Forward/"Constructing a message"> or L<bounce()|Mail::Message::Construct::Bounce/"Constructing a message">.
-
-=item * seen
-
-When this flag is set, the receiver of the message has consumed the message.
-A mail user agent (MUA) will set this flag when the user has opened the
-message once.
-
-=back
-
-=head3 Status and X-Status fields
-
-Mbox folders have no special means of storing information about messages
-(except the message separator line), and therefore have to revert to
-adding fields to the message header when something special comes up.
-This feature is also enabled for POP3, although whether that works
-depends on the POP server.
-
-All applications which can handle mbox folders support the C<Status> and
-C<X-Status> field convensions. The following encoding is used:
-
- Flag Field Label
- R Status => seen (Read)
- O Status => old (not recent)
- A X-Status => replied (Answered)
- F X-Status => flagged
-
-There is no special flag for C<deleted>, which most other folders support:
-messages flagged to be deleted will never be written to a folder file when
-it is closed.
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Message.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Message.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Reporter.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,240 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Reporter;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Carp;
-use Scalar::Util 'dualvar';
-
-
-my @levelname = (undef, qw(DEBUG NOTICE PROGRESS WARNING ERROR NONE INTERNAL));
-
-my %levelprio = (ERRORS => 5, WARNINGS => 4, NOTICES => 2);
-for(my $l = 1; $l < @levelname; $l++)
-{ $levelprio{$levelname[$l]} = $l;
- $levelprio{$l} = $l;
-}
-
-sub new(@)
-{ my $class = shift;
-#confess "Parameter list has odd length: @_" if @_ % 2;
- (bless {}, $class)->init({@_});
-}
-
-my($default_log, $default_trace, $trace_callback);
-sub init($)
-{ my ($self, $args) = @_;
- $self->{MR_log} = $levelprio{$args->{log} || $default_log};
- $self->{MR_trace} = $levelprio{$args->{trace} || $default_trace};
- $self;
-}
-
-#------------------------------------------
-
-
-sub _trace_warn($$$)
-{ my ($who, $level, $text) = @_;
- warn "$level: $text\n";
-}
-
-sub defaultTrace(;$$)
-{ my $thing = shift;
-
- return ($default_log, $default_trace)
- unless @_;
-
- my $level = shift;
- my $prio = $thing->logPriority($level)
- or croak "Unknown trace-level $level.";
-
- if( ! @_)
- { $default_log = $default_trace = $prio;
- $trace_callback = \&_trace_warn;
- }
- elsif(ref $_[0])
- { $default_log = $thing->logPriority('NONE');
- $default_trace = $prio;
- $trace_callback = shift;
- }
- else
- { $default_log = $prio;
- $default_trace = $thing->logPriority(shift);
- $trace_callback = \&_trace_warn;
- }
-
- ($default_log, $default_trace);
-}
-
-__PACKAGE__->defaultTrace('WARNINGS');
-
-#------------------------------------------
-
-
-sub trace(;$$)
-{ my $self = shift;
-
- return $self->logPriority($self->{MR_trace})
- unless @_;
-
- my $level = shift;
- my $prio = $levelprio{$level}
- or croak "Unknown trace-level $level.";
-
- $self->{MR_trace} = $prio;
-}
-
-#------------------------------------------
-
-
-# Implementation detail: the Mail::Box::Parser::C code avoids calls back
-# to Perl by checking the trace-level itself. In the perl code of this
-# module however, just always call the log() method, and let it check
-# whether or not to display it.
-
-sub log(;$@)
-{ my $thing = shift;
-
- if(ref $thing) # instance call
- { return $thing->logPriority($thing->{MR_log})
- unless @_;
-
- my $level = shift;
- my $prio = $levelprio{$level}
- or croak "Unknown log-level $level";
-
- return $thing->{MR_log} = $prio
- unless @_;
-
- my $text = join '', @_;
- $trace_callback->($thing, $level, $text)
- if $prio >= $thing->{MR_trace};
-
- push @{$thing->{MR_report}[$prio]}, $text
- if $prio >= $thing->{MR_log};
- }
- else # class method
- { my $level = shift;
- my $prio = $levelprio{$level}
- or croak "Unknown log-level $level";
-
- $trace_callback->($thing, $level, join('', at _))
- if $prio >= $default_trace;
- }
-
- $thing;
-}
-
-
-#------------------------------------------
-
-
-sub report(;$)
-{ my $self = shift;
- my $reports = $self->{MR_report} || return ();
-
- if(@_)
- { my $level = shift;
- my $prio = $levelprio{$level}
- or croak "Unknown report level $level.";
-
- return $reports->[$prio] ? @{$reports->[$prio]} : ();
- }
-
- my @reports;
- for(my $prio = 1; $prio < @$reports; $prio++)
- { next unless $reports->[$prio];
- my $level = $levelname[$prio];
- push @reports, map { [ $level, $_ ] } @{$reports->[$prio]};
- }
-
- @reports;
-}
-
-#-------------------------------------------
-
-
-sub addReport($)
-{ my ($self, $other) = @_;
- my $reports = $other->{MR_report} || return ();
-
- for(my $prio = 1; $prio < @$reports; $prio++)
- { push @{$self->{MR_report}[$prio]}, @{$reports->[$prio]}
- if exists $reports->[$prio];
- }
- $self;
-}
-
-#-------------------------------------------
-
-
-sub reportAll(;$)
-{ my $self = shift;
- map { [ $self, @$_ ] } $self->report(@_);
-}
-
-#-------------------------------------------
-
-
-sub errors(@) {shift->report('ERRORS')}
-
-#-------------------------------------------
-
-
-sub warnings(@) {shift->report('WARNINGS')}
-
-#-------------------------------------------
-
-
-sub notImplemented(@)
-{ my $self = shift;
- my $package = ref $self || $self;
- my $sub = (caller 1)[3];
-
- $self->log(ERROR => "Package $package does not implement $sub.");
- confess "Please warn the author, this shouldn't happen.";
-}
-
-#------------------------------------------
-
-
-sub logPriority($)
-{ my $level = $levelprio{$_[1]} or return undef;
- dualvar $level, $levelname[$level];
-}
-
-#-------------------------------------------
-
-
-sub logSettings()
-{ my $self = shift;
- (log => $self->{MR_log}, trace => $self->{MR_trace});
-}
-
-#-------------------------------------------
-
-
-sub AUTOLOAD(@)
-{ my $thing = shift;
- our $AUTOLOAD;
- my $class = ref $thing || $thing;
- (my $method = $AUTOLOAD) =~ s/^.*\:\://;
-
- $Carp::MaxArgLen=20;
- confess "Method $method() is not defined for a $class.\n";
-}
-
-#-------------------------------------------
-
-
-my $global_destruction;
-END {$global_destruction++}
-sub inGlobalDestruction() {$global_destruction}
-
-#-------------------------------------------
-
-
-sub DESTROY {shift}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Reporter.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Reporter.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,368 +0,0 @@
-
-=head1 NAME
-
-Mail::Reporter - base-class and error reporter for Mail::Box
-
-
-
-=head1 SYNOPSIS
-
- $folder->log(WARNING => 'go away');
- print $folder->trace; # current level
- $folder->trace('PROGRESS'); # set level
- print $folder->errors;
- print $folder->report('PROGRESS');
-
-
-=head1 DESCRIPTION
-
-The C<Mail::Reporter> class is the base class for all classes, except
-L<Mail::Message::Field::Fast|Mail::Message::Field::Fast> because it would become slow... This
-base class is used during initiation of the objects, and for configuring
-and logging error messages.
-
-
-
-=head1 METHODS
-
-The C<Mail::Reporter> class is the base for nearly all other
-objects. It can store and report problems, and contains the general
-constructor L<new()|Mail::Reporter/"Constructors">.
-
-=head2 Constructors
-
-
-Mail::Reporter-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-This error container is also the base constructor for all modules, (as long
-as there is no need for an other base object) The constructor always accepts
-the following OPTIONS related to error reports.
-
- Option Defined in Default
- log C<'WARNINGS'>
- trace C<'WARNINGS'>
-
-. log LEVEL
-
-=over 4
-
-Log messages which have a priority higher or equal to the specified
-level are stored internally and can be retrieved later. The global
-default for this option can be changed with L<defaultTrace()|Mail::Reporter/"Error handling">.
-
-Known levels are C<INTERNAL>, C<ERRORS>, C<WARNINGS>, C<PROGRESS>,
-C<NOTICES> C<DEBUG>, and C<NONE>. The C<PROGRESS> level relates to
-the reading and writing of folders. C<NONE> will cause only C<INTERNAL>
-errors to be logged.
-By the way: C<ERROR> is an alias for C<ERRORS>, as C<WARNING> is an alias
-for C<WARNINGS>, and C<NOTICE> for C<NOTICES>.
-
-=back
-
-. trace LEVEL
-
-=over 4
-
-Trace messages which have a level higher or equal to the specified level
-are directly printed using warn. The global default for this option can
-be changed with L<defaultTrace()|Mail::Reporter/"Error handling">.
-
-=back
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-By default, produce a nice warning if the sub-classes cannot resolve
-a method.
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-Add the report from other OBJECT to the report of this object. This is
-useful when complex actions use temporary objects which are not returned
-to the main application but where the main application would like to know
-about any problems.
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Reporter-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-Reports the default log and trace level which is used for object as list
-of two elements. When not explicitly set, both are set to C<WARNINGS>.
-
-This method has three different uses. When one argument is specified, that
-LEVEL is set for both loglevel as tracelevel.
-
-With two arguments, the second determines which configuration you like. If
-the second argument is a CODE reference, you install a CALLBACK. The loglevel
-will be set to NONE, and all warnings produced in your program will get
-passed to the CALLBACK function. That function will get the problem level,
-the object or class which reports the problem, and the problem text passed
-as arguments.
-
-In any case two values are returned: the first is the log level, the
-second represents the trace level. Both are special variables: in numeric
-context they deliver a value (the internally used value), and in string
-context the string name. Be warned that the string is always in singular
-form!
-
-I<Example:> setting loglevels
-
-
- my ($loglevel, $tracelevel) = Mail::Reporter->defaultTrace;
- Mail::Reporter->defaultTrace('NOTICES');
-
- my ($l, $t) = Mail::Reporter->defaultTrace('WARNINGS', 'DEBUG');
- print $l; # prints "WARNING" (no S!)
- print $l+0; # prints "4"
- print "Auch" if $l >= $self->logPriority('ERROR');
-
- Mail::Reporter->defaultTrace('NONE'); # silence all reports
-
- $folder->defaultTrace('DEBUG'); # Still set as global default!
- $folder->trace('DEBUG'); # local default
-
-I<Example:> installing a callback
-
-
- Mail::Reporter->defaultTrace
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-Equivalent to
-
- $folder->report('ERRORS')
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Reporter-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-As instance method this function has three different purposes. Without
-any argument, it returns one scalar containing the number which is internally
-used to represent the current log level, and the textual representation of
-the string at the same time. See Scalar::Util method C<dualvar> for
-an explanation.
-
-With one argument, a new level of logging detail is set (specify a number
-of one of the predefined strings). With more arguments, it is a report
-which may need to be logged or traced.
-
-As class method, only a message can be passed. The global configuration
-value set with L<defaultTrace()|Mail::Reporter/"Error handling"> is used to decide whether the message is
-shown or ignored.
-
-Each log-entry has a LEVEL and a text string which will
-be constructed by joining the STRINGS. If there is no newline, it will
-be added.
-
-I<Example:>
-
- print $message->log; # may print "NOTICE"
- print $message->log +0; # may print "3"
- $message->log('ERRORS'); # sets a new level, returns the numeric value
-
- $message->log(WARNING => "This message is too large.");
- $folder ->log(NOTICE => "Cannot read from file $filename.");
- $manager->log(DEBUG => "Hi there!", reverse sort @l);
-
- Mail::Message->log(ERROR => 'Unknown');
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Reporter-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-One error level (log or trace) has more than one representation: a
-numeric value and one or more strings. For instance, C<4>, C<'WARNING'>,
-and C<'WARNINGS'> are all the same. You can specify any of these,
-and in return you get a dualvar (see Scalar::Util method C<dualvar>)
-back, which contains the number and the singular form.
-
-The higher the number, the more important the message.
-Only messages about C<INTERNAL> problems are more important than C<NONE>.
-
-I<Example:>
-
- my $r = Mail::Reporter->logPriority('WARNINGS');
- my $r = Mail::Reporter->logPriority('WARNING'); # same
- my $r = Mail::Reporter->logPriority(4); # same, deprecated
- print $r; # prints 'WARNING' (no S!)
- print $r + 0; # prints 4
- if($r < Mail::Reporter->logPriority('ERROR')) {..} # true
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-Returns a list of C<(key => value)> pairs which can be used to initiate
-a new object with the same log-settings as this one.
-
-I<Example:>
-
- $head->new($folder->logSettings);
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-A special case of L<log()|Mail::Reporter/"Error handling">, which logs a C<INTERNAL>-error
-and then croaks. This is used by extension writers.
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-Get logged reports, as list of strings. If a LEVEL is specified, the log
-for that level is returned.
-
-In case no LEVEL is specified, you get all messages each as reference
-to a tuple with level and message.
-
-I<Example:>
-
- my @warns = $message->report('WARNINGS');
- # previous indirectly callable with
- my @warns = $msg->warnings;
-
- print $folder->report('ERRORS');
-
- if($folder->report('DEBUG')) {...}
-
- my @reports = $folder->report;
- foreach (@reports) {
- my ($level, $text) = @$_;
- print "$level report: $text";
- }
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-Report all messages which were produced by this object and all the objects
-which are maintained by this object. This will return a list of triplets,
-each containing a reference to the object which caught the report, the
-level of the report, and the message.
-
-I<Example:>
-
- my $folder = Mail::Box::Manager->new->open(folder => 'inbox');
- my @reports = $folder->reportAll;
- foreach (@reports) {
- my ($object, $level, $text) = @$_;
-
- if($object->isa('Mail::Box')) {
- print "Folder $object: $level: $message";
- } elsif($object->isa('Mail::Message') {
- print "Message ".$object->seqnr.": $level: $message";
- }
- }
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-Change the trace LEVEL of the object. When no arguments are specified, the
-current level is returned only. It will be returned in one scalar which
-contains both the number which is internally used to represent the level,
-and the string which represents it. See L<logPriority()|Mail::Reporter/"Error handling">.
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-Equivalent to
-
- $folder->report('WARNINGS')
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-Cleanup the object.
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-Returns whether the program is breaking down. This is used in L<DESTROY()|Mail::Reporter/"Cleanup">,
-where during global destructions references cannot be used.
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Reporter.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Reporter.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Fetch.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,289 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Server::IMAP4::Fetch;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-use Date::Parse;
-use Digest::MD5 qw/md5_base64/;
-
-
-sub new($)
-{ my ($class, $part, %args) = @_;
-
- my $head = $part->head;
- my $body = $part->body;
-
- my $type = $body->type;
-
- my $self = bless
- { type => $type->body
- , typeattr => [ $type->attributes ]
- , charset => $body->charset
- , bodylines => $body->nrLines
- , bodysize => $body->size
- }, $class;
-
- $self->{headbegin} = ($head->fileLocation)[0];
- @{$self}{qw/bodybegin bodyend/} = $body->fileLocation;
-
- # The fields use the defined() check, to avoid accidental expensive
- # stringification by the field objects.
-
- my ($field, $value);
- $self->{date} = $field->unfoldedBody
- if defined($field = $head->get('Date'));
-
- $self->{subject} = $field->unfoldedBody
- if defined($field = $head->get('Subject'));
-
- $self->{description} = $field->unfoldedBody
- if defined($field = $head->get('Content-Description'));
-
- $self->{language} = $field->unfoldedBody
- if defined($field = $head->get('Content-Language'));
-
- $self->{filename} = $value
- if defined($value = $body->dispositionFilename);
-
- $self->{bodyMD5} = md5_base64($body->string)
- if $args{md5checksums};
-
- if(defined($field = $body->transferEncoding))
- { my $tf = $field->unfoldedBody;
- $self->{transferenc} = $tf unless $tf eq 'none';
- }
-
-# Should become:
-# $self->{disposition} = [ $field->body, $field->study->attributes ]
- if(defined($field = $body->disposition))
- { my $how = $field->body;
- $how = $body->isText ? 'inline' : 'attachment' if $how eq 'none';
- $self->{disposition} = [ $how, $field->attributes ];
- }
- else
- { $self->{disposition} = [ ($body->isText ? 'inline' : 'attachment') ];
- }
-
- my $id = $head->get('Content-Message-ID') || $head->get("Message-ID");
- if(defined $id)
- { my $msgid = $id->unfoldedBody;
- $msgid =~ s/^\<*/</;
- $msgid =~ s/\>*$/>/;
- $self->{messageid} = $msgid if length $msgid;
- }
-
- foreach my $addr ( qw/to from sender reply-to cc bcc/ )
- { my $addrs = $head->study($addr) or next;
- foreach my $group ($addrs->groups)
- { my @addrs = map { [ $_->phrase, $_->username, $_->domain ] }
- $group->addresses;
-
- push @{$self->{$addr}}, [ $group->name, @addrs ];
- }
- }
-
- if($body->isMultipart)
- { $self->{parts} = [ map { $class->new($_) } $body->parts ];
- }
- elsif($body->isNested)
- { $self->{nest} = $class->new($body->nested);
- }
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub headLocation() { @{ (shift) }{ qw/headbegin bodybegin/ } }
-sub bodyLocation() { @{ (shift) }{ qw/bodybegin bodyend/ } }
-sub partLocation() { @{ (shift) }{ qw/headbegin bodyend/ } }
-
-#------------------------------------------
-
-
-sub fetchBody($)
-{ my ($self, $extended) = @_;
-
- my $type = uc $self->{type};
- my ($mediatype, $subtype) = split m[/], $type;
-
- if($self->{parts})
- { # Multipart message
- # WARNING: no blanks between part descriptions
- my $parts = join '', map {$_->fetchBody($extended)} @{$self->{parts}};
- my @fields = (\$parts, $subtype || 'MIXED');
-
- if($extended) # only included when any valid info
- { my @attr; # don't know what to include here
- my @disp; # don't know about this either
-
- push @fields, \@attr, \@disp, $self->{language}
- if @attr || @disp || defined $self->{language};
- }
-
- return $self->_imapList(@fields);
- }
-
- #
- # Simple message
- #
-
- my @fields = ( ($mediatype || 'TEXT')
- , ($subtype || 'PLAIN')
- , $self->{typeattr}
- , $self->{messageid}
- , $self->{description}
- , uc($self->{transferenc} || '8BIT')
- , \($self->{bodysize})
- );
-
- if(my $nest = $self->{nest})
- { # type MESSAGE (message/rfc822 encapsulated)
- push @fields, \$nest->fetchEnvelope,
- , \$nest->fetchBody($extended);
- }
-
- push @fields, \$self->{bodylines};
-
- if( $extended
- && ($self->{bodyMD5} || $self->{disposition} || $self->{language})
- )
- { push @fields, @{$self}{ qw/bodyMD5 disposition language/ };
- }
-
- $self->_imapList(@fields);
-}
-
-#------------------------------------------
-
-
-sub fetchEnvelope()
-{ my $self = shift;
- my @fields = ($self->{date}, $self->{subject});
-
- foreach my $addr ( qw/from sender reply-to to cc bcc/ )
- { unless($self->{$addr})
- { push @fields, undef; # NIL
- next;
- }
-
- # For now, group information is ignored... RFC2060 is very
- # unclear about it... and seems incompatible with RFC2822
- my $addresses = '';
- foreach my $group (@{$self->{$addr}})
- { my ($name, @addr) = @$group;
-
- # addr_adl is obsoleted by rfc2822
- $addresses .= $self->_imapList($_->[0], undef, $_->[1], $_->[2])
- foreach @addr;
- }
-
- push @fields, \$addresses;
- }
-
- push @fields, $self->{'in-reply-to'}, $self->{messageid};
-
- $self->_imapList(@fields);
-}
-
-#------------------------------------------
-
-
-sub fetchSize() { shift->{bodysize} }
-
-#------------------------------------------
-
-
-sub part(;$)
-{ my $self = shift;
- my $nr = shift or return $self;
-
- my @nrs = split /\./, $nr;
- while(@nrs)
- { my $take = shift @nrs;
- if(exists $self->{nest} && $take==1)
- { $self = $self->{nest} }
- elsif(exists $self->{parts} && @{$self->{parts}} >= $take)
- { $self = $self->{parts}[$take-1] }
- else { return undef }
- }
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub printStructure(;$$)
-{ my $self = shift;
-
- my $fh = @_ ? shift : select;
- my $number = @_ ? shift : '';
-
- my $buffer; # only filled if filehandle==undef
- open $fh, '>', \$buffer unless defined $fh;
-
- my $type = $self->{type};
- my $subject = $self->{subject} || '';
- my $text = "$number $type: $subject\n";
-
- my $hbegin = $self->{headbegin} || 0;
- my $bbegin = $self->{bodybegin} || '?';
- my $bodyend = $self->{bodyend} || '?';
- my $size = defined $self->{bodysize} ? $self->{bodysize} : '?';
- my $lines = defined $self->{bodylines} ? $self->{bodylines} : '?';
-
- $text .= ' ' x (length($number) + 1);
- $text .= "@ $hbegin-$bbegin-$bodyend, $size bytes, $lines lines\n";
-
- ref $fh eq 'GLOB' ? (print $fh $text) : $fh->print($text);
-
- if($self->{nest})
- { $self->{nest}->printStructure($fh, length($number) ? $number.'.1' :'1');
- }
- elsif($self->{parts})
- { my $count = 1;
- $number .= '.' if length $number;
- $_->printStructure($fh, $number.$count++)
- foreach @{$self->{parts}};
- }
-
- $buffer;
-}
-
-#------------------------------------------
-
-
-# Concatenate the elements of a list, as the IMAP protocol does.
-# ARRAYS are included a sublist, and normal strings get quoted.
-# Pass a ref-scalar if something needs to be included without
-# quoting.
-
-sub _imapList(@)
-{ my $self = shift;
- my @f;
-
- foreach (@_)
- { if(ref $_ eq 'ARRAY') { push @f, $self->_imapList(@$_) }
- elsif(ref $_ eq 'SCALAR') { push @f, ${$_} }
- elsif(!defined $_) { push @f, 'NIL' }
- else
- { my $copy = $_;
- $copy =~ s/\\/\\\\/g;
- $copy =~ s/\"/\\"/g;
- push @f, qq#"$_"#;
- }
- }
-
- local $" = ' ';
- "(@f)";
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Fetch.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Fetch.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,166 +0,0 @@
-
-=head1 NAME
-
-Mail::Server::IMAP4::Fetch - message info for IMAP protocol speed-up
-
-
-
-=head1 SYNOPSIS
-
- my $imap = Mail::Server::IMAP4::Fetch->new($msg);
- print $imap->fetchBody(1); # for FETCH BODYSTRUCTURE
- print $imap->fetchBody; # for FETCH BODY
- print $imap->fetchEnvelope; # for FETCH ENVELOPE
- print $imap->fetchSize;
-
-
-=head1 DESCRIPTION
-
-Create a new object hierarchy, which contains information to capture
-the most important details about the message. The object can be used
-to speed-up IMAP-server implementations, as L<Mail::Box::Netzwert>.
-
-The object used here is a simplified representation of a
-L<Mail::Box::Message|Mail::Box::Message> object. It does not maintain headers and does
-not refer to the folder. It only works with messages stored in a file.
-Therefore, this object can be frozen by L<Storable> if you want to.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Server::IMAP4::Fetch-E<gt>B<new>(MESSAGE|PART, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- md5checksums 0
-
-. md5checksums BOOLEAN
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<bodyLocation>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<headLocation>
-
-=over 4
-
-=back
-
-$obj-E<gt>B<partLocation>
-
-=over 4
-
-=back
-
-=head2 IMAP Commands
-
-
-$obj-E<gt>B<fetchBody>(EXTENDED)
-
-=over 4
-
-Returns one string, representing the message's structure as defined by
-the IMAP protocol. The boolean argument indicates whether you like to
-have the EXTENDED information, as the imap command 'FETCH BODYSTRUCTURE'
-defines or the limited information of 'FETCH BODY'.
-
-=back
-
-$obj-E<gt>B<fetchEnvelope>
-
-=over 4
-
-Returns a string representation of some header information.
-
-=back
-
-$obj-E<gt>B<fetchSize>
-
-=over 4
-
-Returns the size of the message body.
-
-=back
-
-$obj-E<gt>B<part>([PARTNR])
-
-=over 4
-
-The partnummer is a list of dot-separated positive integers, numbering
-(nested) parts in multi-part message bodies. By default, the info of
-the main message is returned.
-
-I<Example:>
-
- my $partinfo = $msg->info->part('1.2.1');
- print $msg->info->part('3.3')->fetchBody;
-
-=back
-
-$obj-E<gt>B<printStructure>([FILEHANDLE|undef, [NUMBER]])
-
-=over 4
-
-Print the structure of the fetch data to the specified FILEHANDLE or the
-selected filehandle. When explicitly C<undef> is specified as handle,
-then the output will be returned as string.
-Only a limited set of the information is displayed.
-
-I<Example:>
-
- my $imap = ...;
- $imap->printStructure(\*OUTPUT);
- $imap->printStructure;
- my $struct = $imap->printStructure(undef);
-
-=back
-
-=head2 Internals
-
-
-
-
-
-=head1 DETAILS
-
-See
-
-=over 4
-
-=item RFC2060: "Internet Message Access Protocol IMAP4v1" section 7.4.2
-
-=item RFC2045: "MIME Part One: Format of Internet Message Bodies".
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Fetch.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Fetch.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/List.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,118 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Server::IMAP4::List;
-use vars '$VERSION';
-$VERSION = '2.062';
-
-
-sub new($)
-{ my ($class, %args) = @_;
-
- my $self = bless {}, $class;
-
- my $user = $self->{MSIL_user} = $args{user};
- $self->{MSIL_folders} = $args{folders};
- $self->{MSIL_inbox} = $args{inbox};
- $self->{MSIL_delim} = exists $args{delimiter} ? $args{delimiter} : '/';
- $self;
-}
-
-#------------------------------------------
-
-
-sub delimiter(;$)
-{ my $delim = shift->{MSIL_delim};
- ref $delim ? $delim->(shift) : $delim;
-}
-
-#------------------------------------------
-
-
-sub user() { shift->{MSIL_user} }
-
-#------------------------------------------
-
-
-sub folders()
-{ my $self = shift;
- $self->{MSIL_folders} || $self->user->topfolder;
-}
-
-#------------------------------------------
-
-
-sub inbox()
-{ my $self = shift;
- $self->{MSIL_inbox} || $self->user->inbox;
-}
-
-#------------------------------------------
-
-
-sub list($$)
-{ my ($self, $base, $pattern) = @_;
-
- return [ '(\Noselect)', $self->delimiter($base), '' ]
- if $pattern eq '';
-
- my $delim = $self->delimiter($base);
- my @path = split $delim, $base;
- my $folder = $self->folders;
-
- while(@path && defined $folder)
- { $folder = $folder->folder(shift @path);
- }
- defined $folder or return ();
-
- my @pattern = split $delim, $pattern;
- return $self->_list($folder, $delim, @pattern);
-}
-
-sub _list($$@)
-{ my ($self, $folder, $delim) = (shift, shift, shift);
-
- if(!@_)
- { my @flags;
- push @flags, '\Noselect'
- if $folder->onlySubfolders || $folder->deleted;
-
- push @flags, '\Noinferiors' unless $folder->inferiors;
- my $marked = $folder->marked;
- push @flags, ($marked ? '\Marked' : '\Unmarked')
- if defined $marked;
-
- local $" = ' ';
-
- # This is not always correct... should compose the name from the
- # parts... but in nearly all cases, the following is sufficient.
- my $name = $folder->fullname;
- for($name)
- { s/^=//;
- s![/\\]!$delim!g;
- }
- return [ "(@flags)", $delim, $name ];
- }
-
- my $pat = shift;
- if($pat eq '%')
- { my $subs = $folder->subfolders
- or return $self->_list($folder, $delim);
- return map { $self->_list($_, $delim, @_) } $subs->sorted;
- }
-
- if($pat eq '*')
- { my @own = $self->_list($folder, $delim, @_);
- my $subs = $folder->subfolders or return @own;
- return @own, map { $self->_list($_, $delim, '*', @_) } $subs->sorted;
- }
-
- $folder = $folder->find(subfolders => $pat) or return ();
- $self->_list($folder, $delim, @_);
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/List.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/List.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,199 +0,0 @@
-
-=head1 NAME
-
-Mail::Server::IMAP4::List - folder related IMAP4 answers
-
-
-
-=head1 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
-
-
-=head1 DESCRIPTION
-
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Server::IMAP4::List-E<gt>B<new>(USER)
-
-=over 4
-
-Create a (temporary) object to handle the LIST requests for
-a certain user, based upon a set of folders. The data is kept by
-L<Mail::Box::Identity|Mail::Box::Identity> and L<Mail::Box::Collection|Mail::Box::Collection> objects, which
-mean that the folders will not be opened to answer these questions.
-
- Option Defined in Default
- delimeter '/'
- folders <from user>
- inbox <from user>
- user <undef>
-
-. delimeter STRING|CODE
-
-=over 4
-
-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 L<delimiter()|Mail::Server::IMAP4::List/"Attributes"> for an example.
-
-=back
-
-. folders OBJECT
-
-=over 4
-
-You need to specify either a set of folders explicitly or via the
-user. Some L<Mail::Box::Identity|Mail::Box::Identity> OBJECT is needed.
-
-=back
-
-. inbox BOOLEAN
-
-=over 4
-
-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
-C<$user->inbox> is defined.
-
-=back
-
-. user OBJECT
-
-=over 4
-
-A L<Mail::Box::Manage::User|Mail::Box::Manage::User> OBJECT, representing the user who's folders
-must get reported.
-
-=back
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<delimiter>([FOLDERNAME])
-
-=over 4
-
-Returns the delimiter string. The foldername is only required when a
-CODE reference was specified at initiation.
-
-I<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
-
-=back
-
-$obj-E<gt>B<folders>
-
-=over 4
-
-Returns the L<Mail::Box::Identity|Mail::Box::Identity> of the toplevel folder.
-
-=back
-
-$obj-E<gt>B<inbox>
-
-=over 4
-
-Returns the L<Mail::Box|Mail::Box> or filename of the INBOX.
-
-=back
-
-$obj-E<gt>B<user>
-
-=over 4
-
-Returns the L<Mail::Box::Manage::User|Mail::Box::Manage::User> object, if defined.
-
-=back
-
-=head2 IMAP Commands
-
-
-$obj-E<gt>B<list>(BASE, PATTERN)
-
-=over 4
-
-IMAP's LIST command. The request must be partially decoded, the answer
-will need to be encoded.
-
-I<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<
-
-=back
-
-
-
-
-=head1 DETAILS
-
-See
-
-=over 4
-=item RFC2060: "Internet Message Access Protocol IMAP4v1"
-
-sections 6.3.8 (LIST question) and 7.2.2 (LIST answer)
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/List.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/List.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Search.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,18 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Server::IMAP4::Search;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Box::Search';
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $self->notImplemented;
-}
-
-#-------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Search.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Search.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,285 +0,0 @@
-
-=head1 NAME
-
-Mail::Server::IMAP4::Search - select messages within a IMAP folder (not completed)
-
-
-=head1 INHERITANCE
-
- Mail::Server::IMAP4::Search
- is a Mail::Box::Search
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- use Mail::Box::Manager;
- my $mgr = Mail::Box::Manager->new;
- my $folder = $mgr->open('imap4:Inbox');
-
- my $filter = Mail::Server::IMAP4::Search->new
- ( ...to be defined...
- );
-
- my @msgs = $filter->search($folder);
- if($filter->search($message)) {...}
-
-
-=head1 DESCRIPTION
-
-THIS PACKAGES IS NOT IMPLEMENTED YET... (it's waiting for a volunteer)
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Server::IMAP4::Search-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- binaries L<Mail::Box::Search> <false>
- decode L<Mail::Box::Search> <true>
- delayed L<Mail::Box::Search> <true>
- deleted L<Mail::Box::Search> <false>
- deliver L<Mail::Box::Search> undef
- in L<Mail::Box::Search> C<'BODY'>
- label L<Mail::Box::Search> undef
- limit L<Mail::Box::Search> C<0>
- log L<Mail::Reporter> C<'WARNINGS'>
- logical L<Mail::Box::Search> C<'REPLACE'>
- multiparts L<Mail::Box::Search> <true>
- trace L<Mail::Reporter> C<'WARNINGS'>
-
-. binaries BOOLEAN
-
-. decode BOOLEAN
-
-. delayed BOOLEAN
-
-. deleted BOOLEAN
-
-. deliver undef|CODE|'DELETE'
-
-. in 'HEAD'|'BODY'|'MESSAGE'
-
-. label STRING
-
-. limit NUMBER
-
-. log LEVEL
-
-. logical 'REPLACE'|'AND'|'OR'|'NOT'|'AND NOT'|'OR NOT'
-
-. multiparts BOOLEAN
-
-. trace LEVEL
-
-=back
-
-=head2 Searching
-
-
-$obj-E<gt>B<inBody>(PART, BODY)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<inHead>(PART, HEAD)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<search>(FOLDER|THREAD|MESSAGE|ARRAY-OF-MESSAGES)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-$obj-E<gt>B<searchPart>(PART)
-
-=over 4
-
-See L<Mail::Box::Search/"Searching">
-
-=back
-
-=head2 The Results
-
-
-$obj-E<gt>B<printMatch>([FILEHANDLE], HASH)
-
-=over 4
-
-See L<Mail::Box::Search/"The Results">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Server::IMAP4::Search-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Server::IMAP4::Search-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Server::IMAP4::Search-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4/Search.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4/Search.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,19 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Server::IMAP4;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Server';
-
-use Mail::Server::IMAP4::List;
-use Mail::Server::IMAP4::Fetch;
-use Mail::Server::IMAP4::Search;
-use Mail::Transport::IMAP4;
-
-
-#-------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,226 +0,0 @@
-
-=head1 NAME
-
-Mail::Server::IMAP4 - IMAP4 server implementation (not completed)
-
-
-=head1 INHERITANCE
-
- Mail::Server::IMAP4
- is a Mail::Server
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- !!!Partially implemented!!!!
- my $server = Mail::Server::IMAP4->new($msg);
-
-
-=head1 DESCRIPTION
-
-This module is a place-holder, which can be used to grow code which
-is needed to implement a full IMAP4 server.
-
-Although the server is not implemented, parts of this server are
-already available.
-
-=over 4
-
-=item * L<Mail::Server::IMAP4::Fetch|Mail::Server::IMAP4::Fetch>
-
-used to capture "FETCH" related information from a message, and produce
-server-side FETCH answers.
-
-=item * L<Mail::Server::IMAP4::List|Mail::Server::IMAP4::List>
-
-produce LIST reponses about existing folders. This works
-in combination with a L<Mail::Box::Manage::User|Mail::Box::Manage::User> object.
-
-=item * L<Mail::Server::IMAP4::Search|Mail::Server::IMAP4::Search>
-
-
-the SEARCH request. Not implemented yet... looking for a volunteer.
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Server::IMAP4-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Server::IMAP4-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Server::IMAP4-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Server::IMAP4-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-See
-
-=over 4
-
-=item RFC2060: "Internet Message Access Protocol IMAP4v1"
-=back
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server/IMAP4.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server/IMAP4.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,11 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Server;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Server.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,212 +0,0 @@
-
-=head1 NAME
-
-Mail::Server - Base class for email servers in MailBox
-
-
-=head1 INHERITANCE
-
- Mail::Server
- is a Mail::Reporter
-
- Mail::Server is extended by
- Mail::Server::IMAP4
-
-
-=head1 SYNOPSIS
-
- my $server = Mail::Server::IMAP4->new($msg);
- my $server = Mail::Server::POP3->new($msg);
-
-
-=head1 DESCRIPTION
-
-This module is a place-holder, logical in the class hierarchy. On the
-moment, no full server has been implemented, but some parts of IMAP4
-exist.
-
-Servers:
-
-=over 4
-
-=item * L<Mail::Server::IMAP4|Mail::Server::IMAP4>
-
-
-Partial IMAP4 implementation.
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Server-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Reporter/"Constructors">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Server-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Server-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Server-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-=head1 DETAILS
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Server.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Server.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Exim.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,58 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport::Exim;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport::Send';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{via} = 'exim';
-
- $self->SUPER::init($args) or return;
-
- $self->{MTS_program}
- = $args->{proxy}
- || ( -x '/usr/sbin/exim4' ? '/usr/sbin/exim4' : undef)
- || $self->findBinary('exim', '/usr/exim/bin')
- || return;
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub trySend($@)
-{ my ($self, $message, %args) = @_;
-
- my $from = $args{from} || $message->sender;
- $from = $from->address if ref $from && $from->isa('Mail::Address');
- my @to = map {$_->address} $self->destinations($message, $args{to});
-
- my $program = $self->{MTS_program};
- if(open(MAILER, '|-')==0)
- { { exec $program, '-i', '-f', $from, @to; } # {} to avoid warning
- $self->log(NOTICE => "Errors when opening pipe to $program: $!");
- exit 1;
- }
-
- $self->putContent($message, \*MAILER, undisclosed => 1);
-
- unless(close MAILER)
- { $self->log(ERROR => "Errors when closing Exim mailer $program: $!");
- $? ||= $!;
- return 0;
- }
-
- 1;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Exim.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Exim.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,322 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::Exim - transmit messages using external Exim program
-
-
-=head1 INHERITANCE
-
- Mail::Transport::Exim
- is a Mail::Transport::Send
- is a Mail::Transport
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $sender = Mail::Transport::Exim->new(...);
- $sender->send($message);
-
-
-=head1 DESCRIPTION
-
-Implements mail transport using the external C<'Exim'> program.
-When instantiated, the mailer will look for the binary in specific system
-directories, and the first version found is taken.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::Exim-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-If you have Exim installed in a non-standard location, you will need to
-specify the path, using L<new(proxy)|Mail::Transport/"METHODS">.
-
- Option Defined in Default
- executable L<Mail::Transport> C<undef>
- hostname L<Mail::Transport> C<'localhost'>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password L<Mail::Transport> undef
- port L<Mail::Transport> undef
- proxy L<Mail::Transport> undef
- retry L<Mail::Transport> <false>
- timeout L<Mail::Transport> C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username L<Mail::Transport> undef
- via L<Mail::Transport> C<'exim'>
-
-. executable FILENAME
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. timeout SECONDS
-
-. trace LEVEL
-
-. username STRING
-
-. via CLASS|NAME
-
-=back
-
-=head2 Sending mail
-
-
-$obj-E<gt>B<destinations>(MESSAGE, [ADDRESS|ARRAY-OF-ADDRESSES])
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<putContent>(MESSAGE, FILEHANDLE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<send>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<trySend>(MESSAGE, OPTIONS)
-
-=over 4
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::Exim-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::Exim-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::Exim-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Errors when closing Exim mailer $program: $!
-
-The Exim mail transfer agent did start, but was not able to handle the message
-correctly.
-
-I<Warning:> Message has no destination
-
-It was not possible to figure-out where the message is intended to go
-to.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Resent group does not specify a destination
-
-The message which is sent is the result of a bounce (for instance
-created with L<Mail::Message::bounce()|Mail::Message::Construct::Bounce/"Constructing a message">), and therefore starts with a
-C<Received> header field. With the C<bounce>, the new destination(s)
-of the message are given, which should be included as C<Resent-To>,
-C<Resent-Cc>, and C<Resent-Bcc>.
-
-The C<To>, C<Cc>, and C<Bcc> header information is only used if no
-C<Received> was found. That seems to be the best explanation of the RFC.
-
-As alternative, you may also specify the C<to> option to some of the senders
-(for instance L<Mail::Transport::SMTP::send(to)|Mail::Transport::Send/"Sending mail"> to overrule any information
-found in the message itself about the destination.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Exim.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Exim.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/IMAP4.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,512 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Transport::IMAP4;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport::Receive';
-
-use Digest::HMAC_MD5; # only availability check for CRAM_MD5
-use Mail::IMAPClient;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- my $imap = $args->{imap_client} || 'Mail::IMAPClient';
- if(ref $imap)
- { $args->{port} = $imap->Port;
- $args->{hostname} = $imap->Server;
- $args->{username} = $imap->User;
- $args->{password} = $imap->Password;
- }
- else
- { $args->{port} ||= 143;
- }
-
- $args->{via} = 'imap4';
-
- $self->SUPER::init($args) or return;
-
- $self->authentication($args->{authenticate} || 'AUTO');
- $self->{MTI_domain} = $args->{domain};
-
- unless(ref $imap)
- { $imap = $self->createImapClient($imap) or return undef;
- }
-
- $self->imapClient($imap) or return undef;
- $self->login or return undef;
-}
-
-#------------------------------------------
-
-
-sub url()
-{ my $self = shift;
- my ($host, $port, $user, $pwd) = $self->remoteHost;
- my $name = $self->folderName;
- "imap4://$user:$pwd\@$host:$port$name";
-}
-
-#------------------------------------------
-
-
-our $ntml_installed;
-
-sub authentication(@)
-{ my ($self, @types) = @_;
-
- unless(defined $ntml_installed)
- { eval "require Authen::NTML";
- die "NTML errors:\n$@" if $@ && $@ !~ /Can't locate/;
- $ntml_installed = ! $@;
- }
-
- # What the client wants to use to login
-
- unless(@types)
- { @types = exists $self->{MTI_auth} ? @{$self->{MTI_auth}} : 'AUTO';
- }
-
- if(@types == 1 && $types[0] eq 'AUTO')
- { @types = ('CRAM-MD5', ($ntml_installed ? 'NTLM' : ()), 'PLAIN');
- }
-
- $self->{MTI_auth} = \@types;
-
- my @clientside;
- foreach my $auth (@types)
- { push @clientside
- , ref $auth eq 'ARRAY' ? $auth
- : $auth eq 'NTLM' ? [NTLM => \&Authen::NTLM::ntlm ]
- : [$auth => undef];
- }
-
- my %clientside = map { ($_->[0] => $_) } @clientside;
-
- # What does the server support? in its order of preference.
-
- my $imap = $self->imapClient or return ();
- my @serverside = map { m/^AUTH=(\w+)/ ? uc($1) : () }
- $imap->capability;
-
- my @auth;
- if(@serverside) # server list auth capabilities
- { @auth = map { $clientside{$_->[0]} ? delete $clientside{$_->[0]} : () }
- @serverside;
- }
- @auth = @clientside unless @auth; # fallback to client's preference
-
- @auth;
-}
-
-#------------------------------------------
-
-
-sub domain(;$)
-{ my $self = shift;
- return $self->{MTI_domain} = shift if @_;
- $self->{MTI_domain} || ($self->remoteHost)[0];
-}
-
-#------------------------------------------
-
-
-#------------------------------------------
-
-
-sub imapClient(;$)
-{ my $self = shift;
- @_ ? ($self->{MTI_client} = shift) : $self->{MTI_client};
-}
-
-#------------------------------------------
-
-
-sub createImapClient($)
-{ my ($self, $class) = @_;
-
- my ($host, $port) = $self->remoteHost;
-
- my $debug_level = $self->logPriority('DEBUG')+0;
- my @debug;
- if($self->log <= $debug_level || $self->trace <= $debug_level)
- { tie *dh, 'Mail::IMAPClient::Debug', $self;
- @debug = (Debug => 1, Debug_fh => \*dh);
- }
-
- my $client = $class->new
- ( Server => $host, Port => $port
- , User => undef, Password => undef # disable auto-login
- , Uid => 1 # Safer
- , Peek => 1 # Don't set \Seen automaticly
- , @debug
- );
-
- $self->log(ERROR => $@), return undef if $@;
- $client;
-}
-
-#------------------------------------------
-
-
-sub login(;$)
-{ my $self = shift;
- my $imap = $self->imapClient;
-
- return $self if $imap->IsAuthenticated;
-
- my ($interval, $retries, $timeout) = $self->retry;
-
- my ($host, $port, $username, $password) = $self->remoteHost;
- unless(defined $username)
- { $self->log(ERROR => "IMAP4 requires a username and password");
- return;
- }
- unless(defined $password)
- { $self->log(ERROR => "IMAP4 username $username requires a password");
- return;
- }
-
- while(1)
- {
- foreach my $auth ($self->authentication)
- { my ($mechanism, $challange) = @$auth;
-
- $imap->User(undef);
- $imap->Password(undef);
- $imap->Authmechanism(undef); # disable auto-login
- $imap->Authcallback(undef);
-
- unless($imap->connect)
- { $self->log(ERROR => "IMAP cannot connect to $host: "
- , $imap->LastError);
- return undef;
- }
-
- if($mechanism eq 'NTLM')
- { Authen::NTLM::ntlm_reset();
- Authen::NTLM::ntlm_user($username);
- Authen::NTLM::ntlm_domain($self->domain);
- Authen::NTLM::ntlm_password($password);
- }
-
- $imap->User($username);
- $imap->Password($password);
- $imap->Authmechanism($mechanism) unless $mechanism eq 'PLAIN';
- $imap->Authcallback($challange) if defined $challange;
-
- if($imap->login)
- {
- $self->log(NOTICE =>
- "IMAP4 authenication $mechanism to $username\@$host:$port successful");
- return $self;
- }
- }
-
- $self->log(ERROR => "Couldn't contact to $username\@$host:$port")
- , return undef if $retries > 0 && --$retries == 0;
-
- sleep $interval if $interval;
- }
-
- undef;
-}
-
-#------------------------------------------
-
-
-sub folder(;$)
-{ my $self = shift;
- return $self->{MTI_folder} unless @_;
-
- my $name = shift;
- return $name if $name eq ($self->{MTI_folder} || '/');
-
- my $imap = $self->imapClient or return;
- $imap->select($name) or return;
- $self->{MTI_folder} = $name;
- $imap;
-}
-
-#------------------------------------------
-
-
-sub folders(;$)
-{ my $self = shift;
- my $imap = $self->imapClient or return ();
- my @top = @_ && $_[0] eq '/' ? () : shift;
- $imap->folders(@top);
-}
-
-#------------------------------------------
-
-
-sub ids($)
-{ my $self = shift;
- my $imap = $self->imapClient or return ();
- $imap->messages;
-}
-
-#------------------------------------------
-
-
-# Explanation in Mail::Box::IMAP4::Message chapter DETAILS
-
-my %flags2labels =
- ( # Standard IMAP4 labels
- '\Seen' => [seen => 1]
- , '\Answered' => [replied => 1]
- , '\Flagged' => [flagged => 1]
- , '\Deleted' => [deleted => 1]
- , '\Draft' => [draft => 1]
- , '\Recent' => [old => 0]
-
- # For the Netzwert extension (Mail::Box::Netzwert), some labels were
- # added. You'r free to support them as well.
- , '\Spam' => [spam => 1]
- );
-
-my %labels2flags;
-while(my ($k, $v) = each %flags2labels)
-{ $labels2flags{$v->[0]} = [ $k => $v->[1] ];
-}
-
-# where IMAP4 supports requests for multiple flags at once, we here only
-# request one set of flags a time (which will be slower)
-
-sub getFlags($$)
-{ my ($self, $id) = @_;
- my $imap = $self->imapClient or return ();
- my $labels = $self->flagsToLabels(SET => $imap->flags($id));
-
- # Add default values for missing flags
- foreach my $s (values %flags2labels)
- { $labels->{$s->[0]} = not $s->[1]
- unless exists $labels->{$s->[0]};
- }
-
- $labels;
-}
-
-#------------------------------------------
-
-
-sub listFlags() { keys %flags2labels }
-
-#------------------------------------------
-
-
-# Mail::IMAPClient can only set one value a time, however we do more...
-sub setFlags($@)
-{ my ($self, $id) = (shift, shift);
-
- my $imap = $self->imapClient or return ();
- my (@set, @unset, @nonstandard);
-
- while(@_)
- { my ($label, $value) = (shift, shift);
- if(my $r = $labels2flags{$label})
- { my $flag = $r->[0];
- $value = $value ? $r->[1] : !$r->[1];
- # exor can not be used, because value may be string
- $value ? (push @set, $flag) : (push @unset, $flag);
- }
- else
- { push @nonstandard, ($label => $value);
- }
- }
-
- $imap->set_flag($_, $id) foreach @set;
- $imap->unset_flag($_, $id) foreach @unset;
-
- @nonstandard;
-}
-
-#------------------------------------------
-
-
-sub labelsToFlags(@)
-{ my $thing = shift;
- my @set;
- if(@_==1)
- { my $labels = shift;
- while(my ($label, $value) = each %$labels)
- { if(my $r = $labels2flags{$label})
- { push @set, $r->[0] if ($value ? $r->[1] : !$r->[1]);
- }
- }
- }
- else
- { while(@_)
- { my ($label, $value) = (shift, shift);
- if(my $r = $labels2flags{$label})
- { push @set, $r->[0] if ($value ? $r->[1] : !$r->[1]);
- }
- }
- }
-
- join " ", sort @set;
-}
-
-#------------------------------------------
-
-
-sub flagsToLabels($@)
-{ my ($thing, $what) = (shift, shift);
- my %labels;
-
- my $clear = $what eq 'CLEAR';
-
- foreach my $f (@_)
- { if(my $lab = $flags2labels{$f})
- { $labels{$lab->[0]} = $clear ? not($lab->[1]) : $lab->[1];
- }
- else
- { (my $lab = $f) =~ s,^\\,,;
- $labels{$lab}++;
- }
- }
-
- if($what eq 'REPLACE')
- { my %found = map { ($_ => 1) } @_;
- foreach my $f (keys %flags2labels)
- { next if $found{$f};
- my $lab = $flags2labels{$f};
- $labels{$lab->[0]} = not $lab->[1];
- }
- }
-
- wantarray ? %labels : \%labels;
-}
-
-#------------------------------------------
-
-
-sub getFields($@)
-{ my ($self, $id) = (shift, shift);
- my $imap = $self->imapClient or return ();
- my $parsed = $imap->parse_headers($id, @_) or return ();
-
- my @fields;
- while(my($n,$c) = each %$parsed)
- { push @fields, map { Mail::Message::Field::Fast->new($n, $_) } @$c;
- }
-
- @fields;
-}
-
-#------------------------------------------
-
-
-sub getMessageAsString($)
-{ my $imap = shift->imapClient or return;
- my $uid = ref $_[0] ? shift->unique : shift;
- $imap->message_string($uid);
-}
-
-#------------------------------------------
-
-
-sub fetch($@)
-{ my ($self, $msgs, @info) = @_;
- return () unless @$msgs;
- my $imap = $self->imapClient or return ();
-
- my %msgs = map { ($_->unique => {message => $_} ) } @$msgs;
- my $lines = $imap->fetch( [keys %msgs], @info );
-
- # It's a pity that Mail::IMAPClient::fetch_hash cannot be used for
- # single messages... now I had to reimplement the decoding...
- while(@$lines)
- { my $line = shift @$lines;
- next unless $line =~ /\(.*?UID\s+(\d+)/i;
- my $id = $+;
- my $info = $msgs{$id} or next; # wrong uid
-
- if($line =~ s/^[^(]* \( \s* //x )
- { while($line =~ s/(\S+) # field
- \s+
- (?: # value
- \" ( (?:\\.|[^"])+ ) \"
- | \( ( (?:\\.|[^)])+ ) \)
- | (\w+)
- )//xi)
- { $info->{uc $1} = $+;
- }
-
- if( $line =~ m/^\s* (\S+) [ ]*$/x )
- { # Text block expected
- my ($key, $value) = (uc $1, '');
- while(@$lines)
- { my $extra = shift @$lines;
- $extra =~ s/\r\n$/\n/;
- last if $extra eq ")\n";
- $value .= $extra;
- }
- $info->{$key} = $value;
- }
- }
-
- }
-
- values %msgs;
-}
-
-#------------------------------------------
-
-
-sub appendMessage($$)
-{ my ($self, $message, $foldername) = @_;
- my $imap = $self->imapClient or return ();
-
- $imap->append_string
- ( $foldername, $message->string
- , $self->labelsToFlags($message->labels)
- );
-}
-
-#------------------------------------------
-
-
-sub destroyDeleted()
-{ my $imap = shift->imapClient or return ();
- $imap->expunge;
-}
-
-#------------------------------------------
-
-
-sub deleteFolder($)
-{ my $imap = shift->imapClient or return ();
- $imap->delete(shift);
-}
-
-#------------------------------------------
-
-
-sub DESTROY()
-{ my $self = shift;
- my $imap = $self->imapClient;
-
- $self->SUPER::DESTROY;
- $imap->logout if defined $imap;
-}
-
-#------------------------------------------
-
-# Tied filehandle translates IMAP's debug system into Mail::Reporter
-# calls.
-sub Mail::IMAPClient::Debug::TIEHANDLE($)
-{ my ($class, $logger) = @_;
- bless \$logger, $class;
-}
-
-sub Mail::IMAPClient::Debug::PRINT(@)
-{ my $logger = ${ (shift) };
- $logger->log(DEBUG => @_);
-}
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/IMAP4.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/IMAP4.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,599 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::IMAP4 - proxy to Mail::IMAPClient
-
-
-=head1 INHERITANCE
-
- Mail::Transport::IMAP4
- is a Mail::Transport::Receive
- is a Mail::Transport
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $imap = Mail::Transport::IMAP4->new(...);
- my $message = $imap->receive($id);
- $imap->send($message);
-
-
-=head1 DESCRIPTION
-
-****** UNDER DEVELOPMENT *****, please help testing
-
-The IMAP4 protocol is quite complicated: it is feature rich and allows
-verious asynchronous actions. The main document describing IMAP is
-rfc3501 (which obsoleted the original specification of protocol 4r1
-in rfc2060 in March 2003).
-
-This package, as part of MailBox, does not implement the actual
-protocol itself but uses Mail::IMAPClient to do the work. The task
-for this package is to hide as many differences between that module's
-interface and the common L<Mail::Box|Mail::Box> folder types. Multiple
-L<Mail::Box::IMAP4|Mail::Box::IMAP4> folders can share one L<Mail::Transport::IMAP4|Mail::Transport::IMAP4>
-connection.
-
-
-
-=head1 METHODS
-
-
-$obj-E<gt>B<url>
-
-=over 4
-
-Represent this imap4 connection as URL.
-
-=back
-
-=head2 Constructors
-
-
-Mail::Transport::IMAP4-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create the IMAP connection to the server. IMAP servers can handle
-multiple folders for a single user, which means that connections
-may get shared. This is sharing is hidden for the user.
-
-When an C<imap_client> is specified, then the options C<hostname>,
-C<port>, C<username>, and C<password> are extracted from it.
-
- Option Defined in Default
- authenticate C<'AUTO'>
- domain <server_name>
- executable L<Mail::Transport> C<undef>
- hostname L<Mail::Transport> C<'localhost'>
- imap_client L<Mail::IMAPClient|Mail::IMAPClient>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password L<Mail::Transport> undef
- port L<Mail::Transport> 143
- proxy L<Mail::Transport> undef
- retry L<Mail::Transport> <false>
- timeout L<Mail::Transport> C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username L<Mail::Transport> undef
- via L<Mail::Transport> C<'imap'>
-
-. authenticate TYPE|ARRAY-OF-TYPES
-
-=over 4
-
-Authenthication method to L<login()|Mail::Transport::IMAP4/"Protocol [internals]">, which will be passed to
-L<Mail::IMAPClient> method authenticate(). See the latter method for
-the available types.
-
-=back
-
-. domain WINDOWS_DOMAIN
-
-=over 4
-
-Used for NTLM authentication.
-
-=back
-
-. executable FILENAME
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. imap_client OBJECT|CLASS
-
-=over 4
-
-When an OBJECT is supplied, that client will be used for the implementation
-of the IMAP4 protocol. Information about server and such are extracted from
-the OBJECT to have the accessors to produce correct results. The OBJECT
-shall be a L<Mail::IMAPClient|Mail::IMAPClient>.
-
-When a CLASS is given, an object of that type is created for you. The created
-object can be retreived via L<imapClient()|Mail::Transport::IMAP4/"Protocol [internals]">, and than configured as
-defined by L<Mail::IMAPClient|Mail::IMAPClient>.
-
-=back
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. timeout SECONDS
-
-. trace LEVEL
-
-. username STRING
-
-. via CLASS|NAME
-
-=back
-
-=head2 Receiving mail
-
-
-$obj-E<gt>B<receive>([UNIQUE-MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Transport::Receive/"Receiving mail">
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-=head2 Attributes
-
-
-$obj-E<gt>B<authentication>(['AUTO'|TYPE|LIST-OF-TYPES])
-
-=over 4
-
-Returned is a list of pairs (ref arrays) each describing one possible
-way to contact the server. Each pair contains a mechanism name and
-a challange callback (which may be C<undef>).
-
-The settings are used by L<login()|Mail::Transport::IMAP4/"Protocol [internals]"> to get server access. The initial
-value origins from L<new(authenticate)|Mail::Transport::IMAP4/"METHODS">, but may be changed later.
-
-Available basic TYPES are C<CRAM-MD5>, C<NTLM>, and C<PLAIN>. With
-C<AUTO>, all available types will be tried. When the Authen::NTLM
-is not installed, the C<NTLM> option will silently be skipped. Be warned
-that, because of C<PLAIN>, erroneous username/password combinations will
-be passed readible as last attempt!
-
-The C<NTLM> authentication requires Authen::NTLM to be installed. Other
-methods may be added later. Besides, you may also specify a CODE
-reference which implements some authentication.
-
-An ARRAY as TYPE can be used to specify both mechanism as callback. When
-no array is used, callback of the pair is set to C<undef>. See
-L<Mail::IMAPClient/authenticate> for the gory details.
-
-I<Example:>
-
- $transporter->authentication('CRAM-MD5', [MY_AUTH => \&c], 'PLAIN');
-
- foreach my $pair ($transporter->authentication)
- { my ($mechanism, $challange) = @$pair;
- ...
- }
-
-=back
-
-$obj-E<gt>B<domain>([DOMAIN])
-
-=over 4
-
-Used in NTLM authentication to define the Windows domain which is
-accessed. Initially set by L<new(domain)|Mail::Transport::IMAP4/"METHODS"> and defaults to the
-server's name.
-
-=back
-
-=head2 Exchanging Information
-
-
-=head2 Protocol [internals]
-
-The follow methods handle protocol internals, and should not be used
-by a normal user of this class.
-
-$obj-E<gt>B<appendMessage>(MESSAGE, FOLDERNAME)
-
-=over 4
-
-Write the message to the server.
-
-=back
-
-$obj-E<gt>B<createImapClient>(CLASS)
-
-=over 4
-
-Create an object of CLASS, which extends L<Mail::IMAPClient>.
-
-=back
-
-$obj-E<gt>B<deleteFolder>(NAME)
-
-=over 4
-
-Remove one folder.
-
-=back
-
-$obj-E<gt>B<destroyDeleted>
-
-=over 4
-
-Command the server to delete for real all messages which are flagged to
-be deleted.
-
-=back
-
-$obj-E<gt>B<fetch>(ARRAY-OF-MESSAGES, INFO)
-
-=over 4
-
-Get some INFO about the MESSAGES from the server. The specified messages
-shall extend L<Mail::Box::Net::Message|Mail::Box::Net::Message>, Returned is a list
-of hashes, each info about one result. The contents of the hash
-differs per INFO, but at least a C<message> field will be present, to
-relate to the message in question.
-
-The right folder should be selected before this method is called. When
-the connection was lost, C<undef> is returned. Without any
-messages, and empty array is returned. The retrieval is done by
-L<Mail::IMAPClient|Mail::IMAPClient> method C<fetch()>, which is then
-parsed.
-
-=back
-
-$obj-E<gt>B<flagsToLabels>(WHAT|FLAGS)
-
-Mail::Transport::IMAP4-E<gt>B<flagsToLabels>(WHAT|FLAGS)
-
-=over 4
-
-In SCALAR context, a hash with labels is returned. In LIST context, pairs
-are returned.
-
-The WHAT parameter can be C<'SET'>, C<'CLEAR'>, or C<'REPLACE'>. With the
-latter, all standard imap flags do not appear in the list will be ignored:
-their value may either by set or cleared. See L<getFlags()|Mail::Transport::IMAP4/"Protocol [internals]">
-
-Unknown flags in LIST are stripped from their backslash and lower-cased.
-For instance, '\SomeWeirdFlag' will become `someweirdflag => 1'.
-
-I<Example:> translating IMAP4 flags into MailBox flags
-
-
- my @flags = ('\Seen', '\Flagged');
- my $labels = Mail::Transport::IMAP4->flags2labels(SET => @flags);
-
-=back
-
-$obj-E<gt>B<folder>([FOLDERNAME])
-
-=over 4
-
-Be sure that the specific FOLDER is the current one selected.
-If the folder is already selected, no IMAP traffic will be produced.
-The imap connection is returned on succes
-
-=back
-
-$obj-E<gt>B<folders>([FOLDERNAME])
-
-=over 4
-
-Returns a list of folder names which are sub-folders of the specified
-FOLDERNAME. Without FOLDERNAME, the top-level foldernames are returned.
-
-=back
-
-$obj-E<gt>B<getFields>(UID, NAME, [NAME, ...])
-
-=over 4
-
-Get the records with the specified NAMES from the header. The header
-fields are returned as list of L<Mail::Message::Field::Fast|Mail::Message::Field::Fast> objects.
-When the name is C<ALL>, the whole header is returned.
-
-=back
-
-$obj-E<gt>B<getFlags>(FOLDER, ID)
-
-=over 4
-
-Returns the values of all flags which are related to the message with the
-specified ID. These flags are translated into the names which are
-standard for the MailBox suite.
-
-A HASH is returned. Names which do not appear will also provide
-a value in the returned: the negative for the value is it was present.
-
-=back
-
-$obj-E<gt>B<getMessageAsString>(MESSAGE|UID)
-
-=over 4
-
-Returns the whole text of the specified message: the head and the body.
-
-=back
-
-$obj-E<gt>B<ids>
-
-=over 4
-
-Returns a list of UIDs which are defined by the IMAP server.
-
-=back
-
-$obj-E<gt>B<imapClient>
-
-=over 4
-
-Returns the object which implements the IMAP4 protocol, an instance
-of a Mail::IMAPClient, which is logged-in and ready to use.
-
-If the contact to the server was still present or could be established,
-an Mail::IMAPClient object is returned. Else, C<undef> is returned and
-no further actions should be tried on the object.
-
-=back
-
-$obj-E<gt>B<labelsToFlags>(HASH|PAIRS)
-
-Mail::Transport::IMAP4-E<gt>B<labelsToFlags>(HASH|PAIRS)
-
-=over 4
-
-Convert MailBox labels into IMAP flags. Returned is a string. Unsupported
-labels are ignored.
-
-=back
-
-$obj-E<gt>B<listFlags>
-
-=over 4
-
-Returns all predefined flags as list.
-
-=back
-
-$obj-E<gt>B<login>
-
-=over 4
-
-Establish a new connection to the IMAP4 server, using username and password.
-
-=back
-
-$obj-E<gt>B<setFlags>(ID, LABEL, VALUE, [LABEL, VALUE], ...)
-
-=over 4
-
-Change the flags on the message which are represented by the label. The
-value which can be related to the label will be lost, because IMAP only
-defines a boolean value, where MailBox labels can contain strings.
-
-Returned is a list of LABEL=>VALUE pairs which could not be send to
-the IMAP server. These values may be cached in a different way.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::IMAP4-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::IMAP4-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::IMAP4-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-The connection is cleanly terminated when the program is
-terminated.
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot connect to $host:$port for IMAP4: $!
-
-
-I<Error:> IMAP cannot connect to $host: $@
-
-
-I<Notice:> IMAP4 authenication $mechanism to $host:$port successful
-
-
-I<Error:> IMAP4 requires a username and password
-
-
-I<Error:> IMAP4 username $username requires a password
-
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> module Authen::NTLM is not installed
-
-You try to establish an IMAP4 connection which explicitly uses NTLM
-authentication, but the optional Authen::NTLM, which implements this is
-not installed on your system.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/IMAP4.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/IMAP4.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Mailx.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,97 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport::Mailx;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport::Send';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{via} = 'mailx';
-
- $self->SUPER::init($args) or return;
-
- $self->{MTM_program}
- = $args->{proxy}
- || $self->findBinary('mailx')
- || $self->findBinary('Mail')
- || $self->findBinary('mail')
- || return;
-
- $self->{MTM_style}
- = defined $args->{style} ? $args->{style}
- : $^O =~ m/linux|freebsd|bsdos|netbsd|openbsd/ ? 'BSD'
- : 'RFC822';
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub _try_send_bsdish($$)
-{ my ($self, $message, $args) = @_;
-
- my @options = ('-s' => $message->subject);
-
- { local $" = ',';
- my @cc = map {$_->format} $message->cc;
- push @options, ('-c' => "@cc") if @cc;
-
- my @bcc = map {$_->format} $message->bcc;
- push @options, ('-b' => "@bcc") if @bcc;
- }
-
- my @to = map {$_->format} $message->to;
- my $program = $self->{MTM_program};
-
- if((open MAILER, '|-')==0)
- { close STDOUT;
- { exec $program, @options, @to }
- $self->log(NOTICE => "Cannot start contact to $program: $!");
- exit 1;
- }
-
- $self->putContent($message, \*MAILER, body_only => 1);
-
- my $msgid = $message->messageId;
-
- if(close MAILER) { $self->log(PROGRESS => "Message $msgid send.") }
- else
- { $self->log(ERROR => "Sending via mailx mailer $program failed: $! ($?)");
- return 0;
- }
-
- 1;
-}
-
-sub trySend($@)
-{ my ($self, $message, %args) = @_;
-
- return $self->_try_send_bsdish($message, \%args)
- if $self->{MTM_style} eq 'BSD';
-
- my $program = $self->{MTM_program};
- unless(open MAILER, '|-', $program, '-t')
- { $self->log(NOTICE => "Cannot start contact to $program: $!");
- return 0;
- }
-
- $self->putContent($message, \*MAILER);
-
- unless(close MAILER)
- { $self->log(ERROR => "Sending via mailx mailer $program failed: $! ($?)");
- return 0;
- }
-
- 1;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Mailx.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Mailx.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,345 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::Mailx - transmit messages using external mailx program
-
-
-=head1 INHERITANCE
-
- Mail::Transport::Mailx
- is a Mail::Transport::Send
- is a Mail::Transport
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $sender = Mail::Transport::Mailx->new(...);
- $sender->send($message);
-
-
-=head1 DESCRIPTION
-
-Implements mail transport using the external programs C<'mailx'>,
-C<Mail>, or C<'mail'>. When instantiated, the mailer will look for
-any of these binaries in specific system directories, and the first
-program found is taken.
-
-B<WARNING: There are many security issues with mail and mailx. DO NOT USE
-these commands to send messages which contains data derived from any
-external source!!!>
-
-Under Linux, freebsd, and bsdos the C<mail>, C<Mail>, and C<mailx> names are
-just links to the same binary. The implementation is very primitive, pre-MIME
-standard, what may cause many headers to be lost. For these platforms (and
-probably for other platforms as well), you can better not use this transport
-mechanism.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::Mailx-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- executable L<Mail::Transport> C<undef>
- hostname L<Mail::Transport> C<'localhost'>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password L<Mail::Transport> undef
- port L<Mail::Transport> undef
- proxy L<Mail::Transport> undef
- retry L<Mail::Transport> <false>
- style <autodetect>
- timeout L<Mail::Transport> C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username L<Mail::Transport> undef
- via L<Mail::Transport> C<'mailx'>
-
-. executable FILENAME
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. style 'BSD'|'RFC822'
-
-=over 4
-
-There are two version of the C<mail> program. The newest accepts
-RFC822 messages, and automagically collect information about where
-the message is to be send to. The BSD style mail command predates
-MIME, and expects lines which start with a C<'~'> (tilde) to specify
-destinations and such. This field is autodetect, however on some
-platforms both versions of C<mail> can live (like various Linux
-distributions).
-
-=back
-
-. timeout SECONDS
-
-. trace LEVEL
-
-. username STRING
-
-. via CLASS|NAME
-
-=back
-
-=head2 Sending mail
-
-
-$obj-E<gt>B<destinations>(MESSAGE, [ADDRESS|ARRAY-OF-ADDRESSES])
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<putContent>(MESSAGE, FILEHANDLE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<send>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<trySend>(MESSAGE, OPTIONS)
-
-=over 4
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::Mailx-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::Mailx-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::Mailx-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Message has no destination
-
-It was not possible to figure-out where the message is intended to go
-to.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Resent group does not specify a destination
-
-The message which is sent is the result of a bounce (for instance
-created with L<Mail::Message::bounce()|Mail::Message::Construct::Bounce/"Constructing a message">), and therefore starts with a
-C<Received> header field. With the C<bounce>, the new destination(s)
-of the message are given, which should be included as C<Resent-To>,
-C<Resent-Cc>, and C<Resent-Bcc>.
-
-The C<To>, C<Cc>, and C<Bcc> header information is only used if no
-C<Received> was found. That seems to be the best explanation of the RFC.
-
-As alternative, you may also specify the C<to> option to some of the senders
-(for instance L<Mail::Transport::SMTP::send(to)|Mail::Transport::Send/"Sending mail"> to overrule any information
-found in the message itself about the destination.
-
-I<Error:> Sending via mailx mailer $program failed: $! ($?)
-
-Mailx (in some shape: there are many different implementations) did start
-accepting messages, but did not succeed sending it.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Mailx.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Mailx.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/POP3.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,426 +0,0 @@
-
-use strict;
-use warnings;
-
-package Mail::Transport::POP3;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport::Receive';
-
-use IO::Socket ();
-use Socket qw/$CRLF/;
-
-use Digest::MD5 ();
-
-
-sub init($)
-{ my ($self, $args) = @_;
- $args->{via} = 'pop3';
- $args->{port} ||= 110;
-
- $self->SUPER::init($args) or return;
-
- $self->{MTP_auth} = $args->{authenticate} || 'AUTO';
- return unless $self->socket; # establish connection
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub ids(;@)
-{ my $self = shift;
- return unless $self->socket;
- wantarray ? @{$self->{MTP_n2uidl}} : $self->{MTP_n2uidl};
-}
-
-#------------------------------------------
-
-
-sub messages()
-{ my $self = shift;
-
- $self->log(ERROR =>"Cannot get the messages of pop3 via messages()."), return ()
- if wantarray;
-
- $self->{MTP_messages};
-}
-
-#------------------------------------------
-
-
-sub folderSize() { shift->{MTP_total} }
-
-#------------------------------------------
-
-
-sub header($;$)
-{ my ($self, $uidl) = (shift, shift);
- return unless $uidl;
- my $bodylines = shift || 0;;
-
- my $socket = $self->socket or return;
- my $n = $self->id2n($uidl) or return;
-
- $self->sendList($socket, "TOP $n $bodylines$CRLF");
-}
-
-#------------------------------------------
-
-
-sub message($;$)
-{ my ($self, $uidl) = @_;
- return unless $uidl;
-
- my $socket = $self->socket or return;
- my $n = $self->id2n($uidl) or return;
- my $message = $self->sendList($socket, "RETR $n$CRLF");
-
- return unless $message;
-
- # Some POP3 servers add a trailing empty line
- pop @$message if @$message && $message->[-1] =~ m/^[\012\015]*$/;
-
- $self->{MTP_fetched}{$uidl} = undef # mark this ID as fetched
- unless exists $self->{MTP_nouidl};
-
- $message;
-}
-
-#------------------------------------------
-
-
-sub messageSize($)
-{ my ($self, $uidl) = @_;
- return unless $uidl;
-
- my $list;
- unless($list = $self->{MTP_n2length})
- { my $socket = $self->socket or return;
- my $raw = $self->sendList($socket, "LIST$CRLF") or return;
- my @n2length;
- foreach (@$raw)
- { m#^(\d+) (\d+)#;
- $n2length[$1] = $2;
- }
- $self->{MTP_n2length} = $list = \@n2length;
- }
-
- my $n = $self->id2n($uidl) or return;
- $list->[$n];
-}
-
-#------------------------------------------
-
-
-sub deleted($@)
-{ my $dele = shift->{MTP_dele} ||= {};
- (shift) ? @$dele{ @_ } = () : delete @$dele{ @_ };
-}
-
-
-#------------------------------------------
-
-
-sub deleteFetched()
-{ my $self = shift;
- $self->deleted(1, keys %{$self->{MTP_fetched}});
-}
-
-#------------------------------------------
-
-
-sub disconnect()
-{ my $self = shift;
-
- my $quit;
- if($self->{MTP_socket}) # can only disconnect once
- { if(my $socket = $self->socket)
- { my $dele = $self->{MTP_dele} || {};
- while(my $uidl = each %$dele)
- { my $n = $self->id2n($uidl) or next;
- $self->send($socket, "DELE $n$CRLF") or last;
- }
-
- $quit = $self->send($socket, "QUIT$CRLF");
- close $socket;
- }
- }
-
- delete @$self{ qw(
- MTP_socket
- MTP_dele
- MTP_uidl2n
- MTP_n2uidl
- MTP_n2length
- MTP_fetched
- ) };
-
- OK($quit);
-}
-
-#------------------------------------------
-
-
-sub fetched(;$)
-{ my $self = shift;
- return if exists $self->{MTP_nouidl};
- $self->{MTP_fetched};
-}
-
-#------------------------------------------
-
-
-sub id2n($;$) { shift->{MTP_uidl2n}{shift()} }
-
-#------------------------------------------
-
-
-#------------------------------------------
-
-
-sub socket(;$)
-{ my $self = shift;
-
- my $socket = $self->_connection;
- return $socket if defined $socket;
-
- if(exists $self->{MTP_nouidl})
- { $self->log(ERROR =>
- "Can not re-connect reliably to server which doesn't support UIDL");
- return;
- }
-
- return unless $socket = $self->login;
- return unless $self->status( $socket );
-
-# Save socket in the object and return it
-
- $self->{MTP_socket} = $socket;
-}
-
-#------------------------------------------
-
-
-sub send($$)
-{ my $self = shift;
- my $socket = shift;
- my $response;
-
- if(eval {print $socket @_})
- { $response = <$socket>;
- $self->log(ERROR => "Cannot read POP3 from socket: $!")
- unless defined $response;
- }
- else
- { $self->log(ERROR => "Cannot write POP3 to socket: $@");
- }
- $response;
-}
-
-#------------------------------------------
-
-
-sub sendList($$)
-{ my $self = shift;
- my $socket = shift;
- my $response = $self->send($socket, @_) or return;
-
- return unless OK($response);
-
- my @list;
- local $_;
- while(<$socket>)
- { last if m#^\.\r?\n#s;
- s#^\.##;
- push @list, $_;
- }
-
- \@list;
-}
-
-#------------------------------------------
-
-sub DESTROY()
-{ my $self = shift;
- $self->SUPER::DESTROY;
- $self->disconnect if $self->{MTP_socket}; # only do if not already done
-}
-
-#------------------------------------------
-
-sub OK($;$) { substr(shift || '', 0, 3) eq '+OK' }
-
-#------------------------------------------
-
-sub _connection(;$)
-{ my $self = shift;
-
- my $socket = $self->{MTP_socket};
- defined $socket or return undef;
-
- # Check if we (still) got a connection
- eval {print $socket "NOOP$CRLF"};
- if($@ || ! <$socket> )
- { delete $self->{MTP_socket};
- return undef;
- }
-
- $socket;
-}
-
-#------------------------------------------
-
-
-sub login(;$)
-{ my $self = shift;
-
-# Check if we can make a TCP/IP connection
-
- local $_; # make sure we don't spoil $_ for the outside world
- my ($interval, $retries, $timeout) = $self->retry;
- my ($host, $port, $username, $password) = $self->remoteHost;
- unless($username && $password)
- { $self->log(ERROR => "POP3 requires a username and password.");
- return;
- }
-
- my $socket = eval {IO::Socket::INET->new("$host:$port")};
- unless($socket)
- { $self->log(ERROR => "Cannot connect to $host:$port for POP3: $!");
- return;
- }
-
-# Check if it looks like a POP server
-
- my $connected;
- my $authenticate = $self->{MTP_auth};
- my $welcome = <$socket>;
- unless(OK($welcome))
- { $self->log(ERROR =>
- "Server at $host:$port does not seem to be talking POP3.");
- return;
- }
-
-# Check APOP login if automatic or APOP specifically requested
-
- if($authenticate eq 'AUTO' || $authenticate eq 'APOP')
- { if($welcome =~ m#^\+OK .*(<\d+\.\d+\@[^>]+>)#)
- { my $md5 = Digest::MD5::md5_hex($1.$password);
- my $response = $self->send($socket, "APOP $username $md5$CRLF");
- $connected = OK($response) if $response;
- }
- }
-
-# Check USER/PASS login if automatic and failed or LOGIN specifically requested
-
- unless($connected)
- { if($authenticate eq 'AUTO' || $authenticate eq 'LOGIN')
- { my $response = $self->send($socket, "USER $username$CRLF")
- or return;
-
- if(OK($response))
- { $response = $self->send($socket, "PASS $password$CRLF")
- or return;
- $connected = OK($response);
- }
- }
- }
-
-# If we're still not connected now, we have an error
-
- unless($connected)
- { $self->log(ERROR => $authenticate eq 'AUTO' ?
- "Could not authenticate using any login method" :
- "Could not authenticate using '$authenticate' method");
- return;
- }
-
- $socket;
-}
-
-#------------------------------------------
-
-
-sub status($;$)
-{ my ($self,$socket) = @_;
-
-# Check if we can do a STAT
-
- my $stat = $self->send($socket, "STAT$CRLF") or return;
- if($stat =~ m#^\+OK (\d+) (\d+)#)
- { @$self{qw(MTP_messages MTP_total)} = ($1,$2);
- }
- else
- { delete $self->{MTP_messages};
- delete $self->{MTP_size};
- $self->log(ERROR => "POP3 Could not do a STAT");
- return;
- }
-
-# Check if we can do a UIDL
-
- my $uidl = $self->send($socket, "UIDL$CRLF") or return;
- $self->{MTP_nouidl} = undef;
- delete $self->{MTP_uidl2n}; # lose the reverse lookup: UIDL -> number
- if(OK($uidl))
- { my @n2uidl;
- $n2uidl[$self->{MTP_messages}] = undef; # optimization, sets right size
-
- local $_; # protect global $_
- while(<$socket>)
- { last if substr($_, 0, 1) eq '.';
- s#\r?\n$##;
- $n2uidl[$1] = $2 if m#^(\d+) (.+)#;
- }
-
- shift @n2uidl; # make message 1 into index 0
- $self->{MTP_n2uidl} = \@n2uidl;
- delete $self->{MTP_n2length};
- delete $self->{MTP_nouidl};
- }
-
-# We can't do UIDL, we need to fake it
-
- else
- { my $list = $self->send($socket, "LIST$CRLF") or return;
- my @n2length;
- my @n2uidl;
- if(OK($list))
- { my $messages = $self->{MTP_messages};
- my ($host, $port) = $self->remoteHost;
- $n2length[$messages] = $n2uidl[$messages] = undef; # optimization
- while(<$socket>)
- { last if substr($_, 0, 1) eq '.';
- m#^(\d+) (\d+)#;
- $n2length[$1] = $2;
- $n2uidl[$1] = "$host:$port:$1"; # fake UIDL, for id only
- }
- shift @n2length; shift @n2uidl; # make 1st message in index 0
- }
- $self->{MTP_n2length} = \@n2length;
- $self->{MTP_n2uidl} = \@n2uidl;
- }
-
- my $i = 1;
- my %uidl2n;
- foreach(@{$self->{MTP_n2uidl}})
- { $uidl2n{$_} = $i++;
- }
- $self->{MTP_uidl2n} = \%uidl2n;
- 1;
-}
-
-#------------------------------------------
-
-
-sub url(;$)
-{ my ($host, $port, $user, $pwd) = shift->remoteHost;
- "pop3://$user:$pwd\@$host:$port";
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/POP3.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/POP3.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,546 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::POP3 - receive messages via POP3
-
-
-=head1 INHERITANCE
-
- Mail::Transport::POP3
- is a Mail::Transport::Receive
- is a Mail::Transport
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $receiver = Mail::Transport::POP3->new(...);
- my $message = $receiver->receive($id);
-
-
-=head1 DESCRIPTION
-
-Receive messages via the POP3 protocol from one remote server, as specified
-in rfc1939. This object hides much of the complications in the protocol and
-recovers broken connections automatically. Although it is part of the
-MailBox distribution, this object can be used separately.
-
-You probably should B<not use this> module, but L<Mail::Box::POP3|Mail::Box::POP3>. This
-module is the interface to POP3, whereas L<Mail::Box::POP3|Mail::Box::POP3> hides the
-protocol weirdness and works as any other mail folder.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::POP3-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-Create a new pop3 server connection. One object can only handle one
-connection: for a single user to one single server. If the server
-could not be reached, or when the login fails, this instantiating C<new>
-will return C<undef>.
-
- Option Defined in Default
- authenticate C<'AUTO'>
- executable L<Mail::Transport> C<undef>
- hostname L<Mail::Transport> C<'localhost'>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password L<Mail::Transport> undef
- port L<Mail::Transport> C<110>
- proxy L<Mail::Transport> undef
- retry L<Mail::Transport> <false>
- timeout L<Mail::Transport> C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username L<Mail::Transport> undef
- via L<Mail::Transport> C<'sendmail'>
-
-. authenticate 'LOGIN'|'APOP'|'AUTO'
-
-=over 4
-
-Authenthication method. The standard defines two methods, named LOGIN and
-APOP. The first sends the username and password in plain text to the server
-to get permission, the latter encrypts this data using MD5. When AUTO is
-used, first APOP is tried, and then LOGIN.
-
-=back
-
-. executable FILENAME
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. timeout SECONDS
-
-. trace LEVEL
-
-. username STRING
-
-. via CLASS|NAME
-
-=back
-
-=head2 Receiving mail
-
-
-$obj-E<gt>B<receive>([UNIQUE-MESSAGE-ID])
-
-=over 4
-
-See L<Mail::Transport::Receive/"Receiving mail">
-
-=back
-
-=head2 Exchanging information
-
-
-$obj-E<gt>B<deleteFetched>
-
-=over 4
-
-Mark all messages that have been fetched with L<message()|Mail::Transport::POP3/"Exchanging information"> for deletion.
-See L<fetched()|Mail::Transport::POP3/"Exchanging information">.
-
-=back
-
-$obj-E<gt>B<deleted>(BOOLEAN, ID's)
-
-=over 4
-
-Either mark the specified message(s) to be deleted on the remote server or
-unmark them for deletion (if the first parameter is false). Deletion of
-messages will take place B<only> when the connection is specifically
-disconnected or the last reference to the object goes out of scope.
-
-=back
-
-$obj-E<gt>B<disconnect>
-
-=over 4
-
-Break contact with the server, if that (still) exists. Returns true if
-successful. Please note that even if the disconnect was not successful,
-all knowledge of messages etc. will be removed from the object: the object
-basically has reverted to the state in which it was before anything was done
-with the mail box.
-
-=back
-
-$obj-E<gt>B<fetched>
-
-=over 4
-
-Returns a reference to a list of ID's that have been fetched using
-L<message()|Mail::Transport::POP3/"Exchanging information">. This can be used to update a database of messages that
-were fetched (but maybe not yet deleted) from the mailbox.
-
-Please note that if the POP3 server did not support the UIDL command, this
-method will always return undef because it is not possibly to reliably
-identify messages between sessions (other than looking at the contents of
-the messages themselves).
-
-See also L<deleteFetched()|Mail::Transport::POP3/"Exchanging information">.
-
-=back
-
-$obj-E<gt>B<folderSize>
-
-=over 4
-
-Returns the total number of octets used by the mailbox on the remote server.
-
-=back
-
-$obj-E<gt>B<header>(ID, [BODYLINES])
-
-=over 4
-
-Returns a reference to an array which contains the header of the message
-with the specified ID. C<undef> is returned if something has gone wrong.
-
-The optional integer BODYLINES specifies the number of lines from the body
-which should be added, by default none.
-
-I<Example:>
-
- my $ref_lines = $pop3->header($uidl);
- print @$ref_lines;
-
-=back
-
-$obj-E<gt>B<id2n>(ID)
-
-=over 4
-
-Translates the unique ID of a message into a sequence number which
-represents the message as long a this connection to the POP3 server
-exists. When the message has been deleted for some reason, C<undef>
-is returned.
-
-=back
-
-$obj-E<gt>B<ids>
-
-=over 4
-
-Returns a list (in list context) or a reference to a list (in scalar context)
-of all ID's which are known by the server on this moment.
-
-=back
-
-$obj-E<gt>B<message>(ID)
-
-=over 4
-
-Returns a reference to an array which contains the lines of the
-message with the specified ID. Returns C<undef> if something has gone
-wrong.
-
-I<Example:>
-
- my $ref_lines = $pop3->message($uidl);
- print @$ref_lines;
-
-=back
-
-$obj-E<gt>B<messageSize>(ID)
-
-=over 4
-
-Returns the size of the message which is indicated by the ID, in octets.
-If the message has been deleted on the remote server, this will return
-C<undef>.
-
-=back
-
-$obj-E<gt>B<messages>
-
-=over 4
-
-Returns (in scalar context only) the number of messages that are known
-to exist in the mailbox.
-
-=back
-
-=head2 Protocol internals
-
-The follow methods handle protocol internals, and should not be used
-by a normal user of this class.
-
-$obj-E<gt>B<login>
-
-=over 4
-
-Establish a new connection to the POP3 server, using username and password.
-
-=back
-
-$obj-E<gt>B<send>(SOCKET, data)
-
-=over 4
-
-Send data to the indicated socket and return the first line read from
-that socket. Logs an error if either writing to or reading from socket failed.
-
-This method does B<not> attempt to reconnect or anything: if reading or
-writing the socket fails, something is very definitely wrong.
-
-=back
-
-$obj-E<gt>B<sendList>(SOCKET, COMMAND)
-
-=over 4
-
-Sends the indicated COMMAND to the specified socket, and retrieves the
-response. It returns a reference to an array with all the lines that
-were reveived after the first C<+OK> line and before the end-of-message
-delimiter (a single dot on a line). Returns C<undef>
-whenever something has gone wrong.
-
-=back
-
-$obj-E<gt>B<socket>
-
-=over 4
-
-Returns a connection to the POP3 server. If there was no connection yet,
-it will be created transparently. If the connection with the POP3 server
-was lost, it will be reconnected and the assures that internal
-state information (STAT and UIDL) is up-to-date in the object.
-
-If the contact to the server was still present, or could be established,
-an IO::Socket::INET object is returned. Else, C<undef> is returned and
-no further actions should be tried on the object.
-
-=back
-
-$obj-E<gt>B<status>(SOCKET)
-
-=over 4
-
-Update the current status of folder on the remote POP3 server.
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<url>
-
-=over 4
-
-Represent this pop3 connection as URL.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::POP3-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::POP3-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::POP3-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Cannot connect to $host:$port for POP3: $!
-
-Unsuccesful in connecting to the remote POP3 server.
-
-I<Error:> Cannot get the messages of pop3 via messages()
-
-It is not possible to retreive all messages on a remote POP3 folder
-at once: each shall be taken separately. The POP3 folder will hide this
-for you.
-
-I<Error:> Cannot re-connect reliably to server which doesn't support UIDL.
-
-The connection to the remote POP3 was lost, and cannot be re-established
-because the server's protocol implementation lacks the necessary information.
-
-I<Error:> Cannot read POP3 from socket: $!
-
-It is not possible to read the success status of the previously given POP3
-command. Connection lost?
-
-I<Error:> Cannot write POP3 to socket: $@
-
-It is not possible to send a protocol command to the POP3 server. Connection
-lost?
-
-I<Error:> Could not authenticate using '$some' method.
-
-The authenication method to get access to the POP3 server did not result in
-a connection. Maybe you need a different authentication protocol, or your
-username with password are invalid.
-
-I<Error:> Could not authenticate using any login method.
-
-No authentication method was explicitly prescribed, so both AUTH and APOP were
-tried. However, both failed. There are other authentication methods, which
-are not defined by the main POP3 RFC rfc1939. These protocols are not
-implemented yet. Please contribute your implementation.
-
-I<Error:> POP3 Could not do a STAT
-
-For some weird reason, the server does not respond to the STAT call.
-
-I<Error:> POP3 requires a username and password.
-
-No username and/or no password specified for this POP3 folder, although
-these are obligatory parts in the protocol.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Error:> Server at $host:$port does not seem to be talking POP3.
-
-The remote server did not respond to an initial exchange of messages as is
-expected by the POP3 protocol. The server has probably a different
-service on the specified port.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/POP3.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/POP3.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Qmail.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,53 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport::Qmail;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport::Send';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{via} = 'qmail';
-
- $self->SUPER::init($args) or return;
-
- $self->{MTM_program}
- = $args->{proxy}
- || $self->findBinary('qmail-inject', '/var/qmail/bin')
- || return;
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub trySend($@)
-{ my ($self, $message, %args) = @_;
-
- my $program = $self->{MTM_program};
- if(open(MAILER, '|-')==0)
- { { exec $program; }
- $self->log(NOTICE => "Errors when opening pipe to $program: $!");
- exit 1;
- }
-
- $self->putContent($message, \*MAILER, undisclosed => 1);
-
- unless(close MAILER)
- { $self->log(ERROR => "Errors when closing Qmail mailer $program: $!");
- $? ||= $!;
- return 0;
- }
-
- 1;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Qmail.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Qmail.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,318 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::Qmail - transmit messages using external Qmail program
-
-
-=head1 INHERITANCE
-
- Mail::Transport::Qmail
- is a Mail::Transport::Send
- is a Mail::Transport
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $sender = Mail::Transport::Qmail->new(...);
- $sender->send($message);
-
-
-=head1 DESCRIPTION
-
-Implements mail transport using the external programs C<'qmail-inject'>,
-part of the qmail mail-delivery system.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::Qmail-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- executable L<Mail::Transport> C<undef>
- hostname L<Mail::Transport> C<'localhost'>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password L<Mail::Transport> undef
- port L<Mail::Transport> undef
- proxy L<Mail::Transport> C<'qmail-inject'>
- retry L<Mail::Transport> <false>
- timeout L<Mail::Transport> C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username L<Mail::Transport> undef
- via L<Mail::Transport> C<'qmail'>
-
-. executable FILENAME
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. timeout SECONDS
-
-. trace LEVEL
-
-. username STRING
-
-. via CLASS|NAME
-
-=back
-
-=head2 Sending mail
-
-
-$obj-E<gt>B<destinations>(MESSAGE, [ADDRESS|ARRAY-OF-ADDRESSES])
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<putContent>(MESSAGE, FILEHANDLE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<send>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<trySend>(MESSAGE, OPTIONS)
-
-=over 4
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::Qmail-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::Qmail-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::Qmail-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Errors when closing Qmail mailer $program: $!
-
-The Qmail mail transfer agent did start, but was not able to handle the
-message for some specific reason.
-
-I<Warning:> Message has no destination
-
-It was not possible to figure-out where the message is intended to go
-to.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Resent group does not specify a destination
-
-The message which is sent is the result of a bounce (for instance
-created with L<Mail::Message::bounce()|Mail::Message::Construct::Bounce/"Constructing a message">), and therefore starts with a
-C<Received> header field. With the C<bounce>, the new destination(s)
-of the message are given, which should be included as C<Resent-To>,
-C<Resent-Cc>, and C<Resent-Bcc>.
-
-The C<To>, C<Cc>, and C<Bcc> header information is only used if no
-C<Received> was found. That seems to be the best explanation of the RFC.
-
-As alternative, you may also specify the C<to> option to some of the senders
-(for instance L<Mail::Transport::SMTP::send(to)|Mail::Transport::Send/"Sending mail"> to overrule any information
-found in the message itself about the destination.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Qmail.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Qmail.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Receive.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,15 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport::Receive;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport';
-
-
-sub receive(@) {shift->notImplemented}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Receive.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Receive.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,263 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::Receive - receive messages
-
-
-=head1 INHERITANCE
-
- Mail::Transport::Receive
- is a Mail::Transport
- is a Mail::Reporter
-
- Mail::Transport::Receive is extended by
- Mail::Transport::IMAP4
- Mail::Transport::POP3
-
-
-=head1 SYNOPSIS
-
- my $receiver = Mail::Transport::POP3->new(...);
- my $message = $receiver->receive($id);
-
-
-=head1 DESCRIPTION
-
-Each object which extends L<Mail::Transport::Receive|Mail::Transport::Receive> implement
-a protocol which can get messages into your application. The internals
-of each implementation can differ quite a lot, so have a look at each
-separate manual page as well.
-
-Current message receivers:
-
-=over 4
-
-=item * L<Mail::Transport::POP3|Mail::Transport::POP3>
-
-Implements the POP3 protocol. See also L<Mail::Box::POP3|Mail::Box::POP3>.
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::Receive-E<gt>B<new>(OPTIONS)
-
-=over 4
-
-See L<Mail::Transport/"METHODS">
-
-=back
-
-=head2 Receiving mail
-
-
-$obj-E<gt>B<receive>([UNIQUE-MESSAGE-ID])
-
-=over 4
-
-Receive one message from the remote server. Some receivers will provide
-the next message automatically, other are random access and use the
-specified ID.
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::Receive-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::Receive-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::Receive-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Avoid program abuse: specify an absolute path for $exec.
-
-Specifying explicit locations for executables of email transfer agents
-should only be done with absolute file names, to avoid various pontential
-security problems.
-
-I<Warning:> Executable $exec does not exist.
-
-The explicitly indicated mail transfer agent does not exists. The normal
-settings are used to find the correct location.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Receive.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Receive.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/SMTP.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,179 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport::SMTP;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport::Send';
-
-use Net::SMTP;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- my $hosts = $args->{hostname};
- unless($hosts)
- { require Net::Config;
- $hosts = $Net::Config::NetConfig{smtp_hosts};
- undef $hosts unless @$hosts;
- $args->{hostname} = $hosts;
- }
-
- $args->{via} ||= 'smtp';
- $args->{port} ||= '25';
-
- $self->SUPER::init($args) or return;
-
- my $helo = $args->{helo}
- || eval { require Net::Config; $Net::Config::inet_domain }
- || eval { require Net::Domain; Net::Domain::hostfqdn() };
-
- $self->{MTS_net_smtp_opts}
- = { Hello => $helo
- , Debug => ($args->{smtp_debug} || 0)
- };
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub trySend($@)
-{ my ($self, $message, %args) = @_;
-
- # From whom is this message.
- my $from = $args{from} || $message->sender || '<>';
- $from = $from->address if ref $from && $from->isa('Mail::Address');
-
- # Who are the destinations.
- if(defined $args{To})
- { $self->log(WARNING =>
- "Use option `to' to overrule the destination: `To' would refer to a field");
- }
-
- my @to = map {$_->address} $self->destinations($message, $args{to});
-
- unless(@to)
- { $self->log(NOTICE =>
- 'No addresses found to send the message to, no connection made');
- return 1;
- }
-
- # Prepare the header
- my @header;
- require IO::Lines;
- my $lines = IO::Lines->new(\@header);
- $message->head->printUndisclosed($lines);
-
- #
- # Send
- #
-
- if(wantarray)
- { # In LIST context
- my $server;
- return (0, 500, "Connection Failed", "CONNECT", 0)
- unless $server = $self->contactAnyServer;
-
- return (0, $server->code, $server->message, 'FROM', $server->quit)
- unless $server->mail($from);
-
- foreach (@to)
- { next if $server->to($_);
-# must we be able to disable this?
-# next if $args{ignore_erroneous_destinations}
- return (0, $server->code, $server->message,"To $_",$server->quit);
- }
-
- $server->data;
- $server->datasend($_) foreach @header;
- my $bodydata = $message->body->file;
-
- if(ref $bodydata eq 'GLOB') { $server->datasend($_) while <$bodydata> }
- else { while(my $l = $bodydata->getline) { $server->datasend($l) } }
-
- return (0, $server->code, $server->message, 'DATA', $server->quit)
- unless $server->dataend;
-
- return ($server->quit, $server->code, $server->message, 'QUIT',
- $server->code);
- }
-
- # in SCALAR context
- my $server;
- return 0 unless $server = $self->contactAnyServer;
-
- $server->quit, return 0
- unless $server->mail($from);
-
- foreach (@to)
- {
- next if $server->to($_);
-# must we be able to disable this?
-# next if $args{ignore_erroneous_destinations}
- $server->quit;
- return 0;
- }
-
- $server->data;
- $server->datasend($_) foreach @header;
- my $bodydata = $message->body->file;
-
- if(ref $bodydata eq 'GLOB') { $server->datasend($_) while <$bodydata> }
- else { while(my $l = $bodydata->getline) { $server->datasend($l) } }
-
- $server->quit, return 0
- unless $server->dataend;
-
- $server->quit;
-}
-
-#------------------------------------------
-
-
-sub contactAnyServer()
-{ my $self = shift;
-
- my ($enterval, $count, $timeout) = $self->retry;
- my ($host, $port, $username, $password) = $self->remoteHost;
- my @hosts = ref $host ? @$host : $host;
-
- foreach my $host (@hosts)
- { my $server = $self->tryConnectTo
- ( $host, Port => $port,
- , %{$self->{MTS_net_smtp_opts}}, Timeout => $timeout
- );
-
- defined $server or next;
-
- $self->log(PROGRESS => "Opened SMTP connection to $host.");
-
- if(defined $username)
- { if($server->auth($username, $password))
- { $self->log(PROGRESS => "$host: Authentication succeeded.");
- }
- else
- { $self->log(ERROR => "Authentication failed.");
- return undef;
- }
- }
-
- return $server;
- }
-
- undef;
-}
-
-#------------------------------------------
-
-
-sub tryConnectTo($@)
-{ my ($self, $host) = (shift, shift);
- Net::SMTP->new($host, @_);
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/SMTP.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/SMTP.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,421 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::SMTP - transmit messages without external program
-
-
-=head1 INHERITANCE
-
- Mail::Transport::SMTP
- is a Mail::Transport::Send
- is a Mail::Transport
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $sender = Mail::Transport::SMTP->new(...);
- $sender->send($message);
-
- $message->send(via => 'smtp');
-
-
-=head1 DESCRIPTION
-
-This module implements transport of C<Mail::Message> objects by negotiating
-to the destination host directly by using the SMTP protocol, without help of
-C<sendmail>, C<mail>, or other programs on the local host.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::SMTP-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- executable L<Mail::Transport> C<undef>
- helo <from Net::Config>
- hostname L<Mail::Transport> <from Net::Config>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password undef
- port L<Mail::Transport> C<25>
- proxy L<Mail::Transport> <from Net::Config>
- retry L<Mail::Transport> <false>
- smtp_debug <false>
- timeout 120
- trace L<Mail::Reporter> C<'WARNINGS'>
- username undef
- via L<Mail::Transport> C<'smtp'>
-
-. executable FILENAME
-
-. helo HOST
-
-=over 4
-
-The fully qualified name of the sender's host (your system) which
-is used for the greeting message to the receiver. If not specified,
-Net::Config or else Net::Domain are questioned to find it.
-When even these do not supply a valid name, the name of the domain in the
-C<From> line of the message is assumed.
-
-=back
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-=over 4
-
-The password to be used with the new(username) to log in to the remote
-server.
-
-=back
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. smtp_debug BOOLEAN
-
-=over 4
-
-Simulate transmission: the SMTP protocol output will be sent to your
-screen.
-
-=back
-
-. timeout SECONDS
-
-=over 4
-
-The number of seconds to wait for a valid response from the server before
-failing.
-
-=back
-
-. trace LEVEL
-
-. username STRING
-
-=over 4
-
-Use SASL authentication to contact the remote SMTP server (RFC2554).
-This username in combination with new(password) is passed as arguments
-to Net::SMTP method auth. Other forms of authentication are not
-supported by Net::SMTP. The C<username> can also be specified as an
-Authen::SASL object.
-
-=back
-
-. via CLASS|NAME
-
-=back
-
-=head2 Sending mail
-
-
-$obj-E<gt>B<destinations>(MESSAGE, [ADDRESS|ARRAY-OF-ADDRESSES])
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<putContent>(MESSAGE, FILEHANDLE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<send>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<trySend>(MESSAGE, OPTIONS)
-
-=over 4
-
-Try to send the MESSAGE once. This may fail, in which case this
-method will return C<false>. In list context, the reason for failure
-can be caught: in list context C<trySend> will return a list of
-five values:
-
- (success, error code, error text, error location, quit success)
-
-Success and quit success are booleans. The error code and -text are
-protocol specific codes and texts. The location tells where the
-problem occurred.
-
- Option Defined in Default
- from E<lt> E<gt>
- to []
-
-. from ADDRESS
-
-=over 4
-
-Your own identification. This may be fake. If not specified, it is
-taken from L<Mail::Message::sender()|Mail::Message/"The header">, which means the content of the
-C<Sender> field of the message or the first address of the C<From>
-field. This defaults to "E<lt> E<gt>", which represents "no address".
-
-=back
-
-. to ADDRESS|[ADDRESSES]
-
-=over 4
-
-Alternative destinations. If not specified, the C<To>, C<Cc> and C<Bcc>
-fields of the header are used. An address is a string or a Mail::Address
-object.
-
-=back
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<contactAnyServer>
-
-=over 4
-
-Creates the connection to the SMTP server. When more than one hostname
-was specified, the first which accepts a connection is taken. An
-IO::Socket::INET object is returned.
-
-=back
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<tryConnectTo>(HOST, OPTIONS)
-
-=over 4
-
-Try to establish a connection to deliver SMTP to the specified HOST. The
-OPTIONS are passed to the C<new> method of Net::SMTP.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::SMTP-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::SMTP-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::SMTP-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Message has no destination
-
-It was not possible to figure-out where the message is intended to go
-to.
-
-I<Notice:> No addresses found to send the message to, no connection made
-
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Resent group does not specify a destination
-
-The message which is sent is the result of a bounce (for instance
-created with L<Mail::Message::bounce()|Mail::Message::Construct::Bounce/"Constructing a message">), and therefore starts with a
-C<Received> header field. With the C<bounce>, the new destination(s)
-of the message are given, which should be included as C<Resent-To>,
-C<Resent-Cc>, and C<Resent-Bcc>.
-
-The C<To>, C<Cc>, and C<Bcc> header information is only used if no
-C<Received> was found. That seems to be the best explanation of the RFC.
-
-As alternative, you may also specify the C<to> option to some of the senders
-(for instance L<Mail::Transport::SMTP::send(to)|Mail::Transport::Send/"Sending mail"> to overrule any information
-found in the message itself about the destination.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/SMTP.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/SMTP.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Send.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,105 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport::Send;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport';
-
-use Carp;
-use File::Spec;
-use Errno 'EAGAIN';
-
-
-sub new(@)
-{ my $class = shift;
- return $class->SUPER::new(@_)
- if $class ne __PACKAGE__;
-
- require Mail::Transport::Sendmail;
- Mail::Transport::Sendmail->new(@_);
-}
-
-#------------------------------------------
-
-
-sub send($@)
-{ my ($self, $message, %args) = @_;
-
- unless($message->isa('Mail::Message')) # avoid rebless.
- { $message = Mail::Message->coerce($message);
- confess "Unable to coerce object into Mail::Message."
- unless defined $message;
- }
-
- return 1 if $self->trySend($message, %args);
- return 0 unless $?==EAGAIN;
-
- my ($interval, $retry) = $self->retry;
- $interval = $args{interval} if exists $args{interval};
- $retry = $args{retry} if exists $args{retry};
-
- while($retry!=0)
- { sleep $interval;
- return 1 if $self->trySend($message, %args);
- return 0 unless $?==EAGAIN;
- $retry--;
- }
-
- 0;
-}
-
-#------------------------------------------
-
-
-sub trySend($@)
-{ my $self = shift;
- $self->log(ERROR => "Transporters of type ".ref($self). " cannot send.");
-}
-
-#------------------------------------------
-
-
-sub putContent($$@)
-{ my ($self, $message, $fh, %args) = @_;
-
- if($args{body_only}) { $message->body->print($fh) }
- elsif($args{undisclosed}) { $message->Mail::Message::print($fh) }
- else
- { $message->head->printUndisclosed($fh);
- $message->body->print($fh);
- }
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub destinations($;$)
-{ my ($self, $message, $overrule) = @_;
- my @to;
-
- if(defined $overrule) # Destinations overruled by user.
- { my @addr = ref $overrule eq 'ARRAY' ? @$overrule : ($overrule);
- @to = map { ref $_ && $_->isa('Mail::Address') ? ($_)
- : Mail::Address->parse($_) } @addr;
- }
- elsif(my @rgs = $message->head->resentGroups)
- { @to = $rgs[0]->destinations;
- $self->log(WARNING => "Resent group does not specify a destination"), return ()
- unless @to;
- }
- else
- { @to = $message->destinations;
- $self->log(WARNING => "Message has no destination"), return ()
- unless @to;
- }
-
- @to;
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Send.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Send.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,419 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::Send - send a message
-
-
-=head1 INHERITANCE
-
- Mail::Transport::Send
- is a Mail::Transport
- is a Mail::Reporter
-
- Mail::Transport::Send is extended by
- Mail::Transport::Exim
- Mail::Transport::Mailx
- Mail::Transport::Qmail
- Mail::Transport::SMTP
- Mail::Transport::Sendmail
-
-
-=head1 SYNOPSIS
-
- my $message = Mail::Message->new(...);
-
- # Some extensions implement sending:
- $message->send;
- $message->send(via => 'sendmail');
-
- my $sender = Mail::Transport::SMTP->new(...);
- $sender->send($message);
-
-
-=head1 DESCRIPTION
-
-Send a message to the destinations as specified in the header. The
-C<Mail::Transport::Send> module is capable of autodetecting which of the
-following modules work on your system; you may simply call C<send>
-without C<via> options to get a message transported.
-
-=over 4
-
-=item * L<Mail::Transport::Sendmail|Mail::Transport::Sendmail>
-
-Use sendmail to process and deliver the mail. This requires the
-C<sendmail> program to be installed on your system. Whether this
-is an original sendmail, or a replacement from Postfix does matter.
-
-=item * L<Mail::Transport::Exim|Mail::Transport::Exim>
-
-Use C<exim> to distribute the message.
-
-=item * L<Mail::Transport::Qmail|Mail::Transport::Qmail>
-
-Use C<qmail-inject> to distribute the message.
-
-=item * L<Mail::Transport::SMTP|Mail::Transport::SMTP>
-
-In this case, Perl is handling mail transport on its own. This is less
-desired but more portable than sending with sendmail or qmail.
-The advantage is that this sender is environment independent, and easier to
-configure. However, there is no daemon involved which means that your
-program will wait until the message is delivered, and the message is
-lost when your program is interrupted during delivery (which may
-take hours to complete).
-
-=item * L<Mail::Transport::Mailx|Mail::Transport::Mailx>
-
-Use the external C<mail>, C<mailx>, or C<Mail> programs to send the
-message. Usually, the result is poor, because some versions of these
-programs do not support MIME headers. Besides, these programs are
-known to have exploitable security breaches.
-
-=back
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::Send-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- executable L<Mail::Transport> C<undef>
- hostname L<Mail::Transport> C<'localhost'>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password L<Mail::Transport> undef
- port L<Mail::Transport> undef
- proxy L<Mail::Transport> undef
- retry L<Mail::Transport> <false>
- timeout L<Mail::Transport> C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username L<Mail::Transport> undef
- via L<Mail::Transport> C<'sendmail'>
-
-. executable FILENAME
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. timeout SECONDS
-
-. trace LEVEL
-
-. username STRING
-
-. via CLASS|NAME
-
-=back
-
-=head2 Sending mail
-
-
-$obj-E<gt>B<destinations>(MESSAGE, [ADDRESS|ARRAY-OF-ADDRESSES])
-
-=over 4
-
-Determine the destination for this message. If a valid ADDRESS is defined,
-this is used to overrule the addresses within the message. If the ADDRESS
-is C<undef> it is ignored.
-
-If no ADDRESS is specified, the message is scanned for resent groups
-(see L<Mail::Message::Head::Complete::resentGroups()|Mail::Message::Head::Complete/"Access to the header">). The addresses
-found in the first (is latest added) group are used. If no resent groups
-are found, the normal C<To>, C<Cc>, and C<Bcc> lines are taken.
-
-=back
-
-$obj-E<gt>B<putContent>(MESSAGE, FILEHANDLE, OPTIONS)
-
-=over 4
-
-Print the content of the MESSAGE to the FILEHANDLE.
-
- Option Defined in Default
- body_only <false>
- undisclosed <false>
-
-. body_only BOOLEAN
-
-=over 4
-
-Print only the body of the message, not the whole.
-
-=back
-
-. undisclosed BOOLEAN
-
-=over 4
-
-Do not print the C<Bcc> and C<Resent-Bcc> lines. Default false, which
-means that they are not printed.
-
-=back
-
-=back
-
-$obj-E<gt>B<send>(MESSAGE, OPTIONS)
-
-=over 4
-
-Transmit the MESSAGE, which may be anything what can be coerced into a
-L<Mail::Message|Mail::Message>, so including Mail::Internet and MIME::Entity
-messages. It returns true when the transmission was successfully completed.
-
- Option Defined in Default
- interval L<new(interval)|Mail::Transport/"METHODS">
- retry L<new(retry)|Mail::Transport/"METHODS">
- to C<undef>
-
-. interval SECONDS
-
-. retry INTEGER
-
-. to STRING
-
-=over 4
-
-Overrules the destination(s) of the message, which is by default taken
-from the (Resent-)To, (Resent-)Cc, and (Resent-)Bcc.
-
-=back
-
-=back
-
-$obj-E<gt>B<trySend>(MESSAGE, OPTIONS)
-
-=over 4
-
-Try to send the message. This will return true if successful, and
-false in case some problems where detected. The C<$?> contains
-the exit status of the command which was started.
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::Send-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::Send-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::Send-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Message has no destination
-
-It was not possible to figure-out where the message is intended to go
-to.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Resent group does not specify a destination
-
-The message which is sent is the result of a bounce (for instance
-created with L<Mail::Message::bounce()|Mail::Message::Construct::Bounce/"Constructing a message">), and therefore starts with a
-C<Received> header field. With the C<bounce>, the new destination(s)
-of the message are given, which should be included as C<Resent-To>,
-C<Resent-Cc>, and C<Resent-Bcc>.
-
-The C<To>, C<Cc>, and C<Bcc> header information is only used if no
-C<Received> was found. That seems to be the best explanation of the RFC.
-
-As alternative, you may also specify the C<to> option to some of the senders
-(for instance L<Mail::Transport::SMTP::send(to)|Mail::Transport::Send/"Sending mail"> to overrule any information
-found in the message itself about the destination.
-
-I<Error:> Transporters of type $class cannot send.
-
-The L<Mail::Transport|Mail::Transport> object of the specified type can not send messages,
-but only receive message.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Send.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Send.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Sendmail.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,58 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport::Sendmail;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Transport::Send';
-
-use Carp;
-
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $args->{via} = 'sendmail';
-
- $self->SUPER::init($args) or return;
-
- $self->{MTS_program}
- = $args->{proxy}
- || $self->findBinary('sendmail')
- || return;
-
- $self->{MTS_opts} = $args->{sendmail_options} || [];
- $self;
-}
-
-#------------------------------------------
-
-
-sub trySend($@)
-{ my ($self, $message, %args) = @_;
-
- my $program = $self->{MTS_program};
- if(open(MAILER, '|-')==0)
- { my $options = $args{sendmail_options} || [];
-
- # {} to avoid warning
- { exec $program, '-ti', @{$self->{MTS_opts}}, @$options; }
-
- $self->log(NOTICE => "Errors when opening pipe to $program: $!");
- exit 1;
- }
-
- $self->putContent($message, \*MAILER, undisclosed => 1);
-
- unless(close MAILER)
- { $self->log(NOTICE => "Errors when closing sendmail mailer $program: $!");
- $? ||= $!;
- return 0;
- }
-
- 1;
-}
-
-#------------------------------------------
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Sendmail.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport/Sendmail.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,339 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport::Sendmail - transmit messages using external Sendmail program
-
-
-=head1 INHERITANCE
-
- Mail::Transport::Sendmail
- is a Mail::Transport::Send
- is a Mail::Transport
- is a Mail::Reporter
-
-
-=head1 SYNOPSIS
-
- my $sender = Mail::Transport::Sendmail->new(...);
- $sender->send($message);
-
-
-=head1 DESCRIPTION
-
-Implements mail transport using the external C<'Sendmail'> program.
-When instantiated, the mailer will look for the binary in specific system
-directories, and the first version found is taken.
-
-Some people use Postfix as MTA. Postfix can be installed as replacement
-for Sendmail: is provides a program with the same name and options. So,
-this module supports postfix as well.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport::Sendmail-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- executable L<Mail::Transport> C<undef>
- hostname L<Mail::Transport> C<'localhost'>
- interval L<Mail::Transport> C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password L<Mail::Transport> undef
- port L<Mail::Transport> undef
- proxy L<Mail::Transport> undef
- retry L<Mail::Transport> <false>
- sendmail_options []
- timeout L<Mail::Transport> C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username L<Mail::Transport> undef
- via L<Mail::Transport> C<'sendmail'>
-
-. executable FILENAME
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-. interval SECONDS
-
-. log LEVEL
-
-. password STRING
-
-. port INTEGER
-
-. proxy PATH
-
-. retry NUMBER|undef
-
-. sendmail_options ARRAY
-
-=over 4
-
-Add to the command-line of the started sendmail MTU a list of
-separate words. So say C< [ '-f', $file ] > and not C< [ "-f $file" ] >,
-because the latter will be taken by sendmail as one word only.
-
-=back
-
-. timeout SECONDS
-
-. trace LEVEL
-
-. username STRING
-
-. via CLASS|NAME
-
-=back
-
-=head2 Sending mail
-
-
-$obj-E<gt>B<destinations>(MESSAGE, [ADDRESS|ARRAY-OF-ADDRESSES])
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<putContent>(MESSAGE, FILEHANDLE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<send>(MESSAGE, OPTIONS)
-
-=over 4
-
-See L<Mail::Transport::Send/"Sending mail">
-
-=back
-
-$obj-E<gt>B<trySend>(MESSAGE, OPTIONS)
-
-=over 4
-
- Option Defined in Default
- sendmail_options undef
-
-. sendmail_options ARRAY
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-See L<Mail::Transport/"Server connection">
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport::Sendmail-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport::Sendmail-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport::Sendmail-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Error:> Errors when closing sendmail mailer $program: $!
-
-The was no problem starting the sendmail mail transfer agent, but for
-some specific reason the message could not be handled correctly.
-
-I<Warning:> Message has no destination
-
-It was not possible to figure-out where the message is intended to go
-to.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-I<Warning:> Resent group does not specify a destination
-
-The message which is sent is the result of a bounce (for instance
-created with L<Mail::Message::bounce()|Mail::Message::Construct::Bounce/"Constructing a message">), and therefore starts with a
-C<Received> header field. With the C<bounce>, the new destination(s)
-of the message are given, which should be included as C<Resent-To>,
-C<Resent-Cc>, and C<Resent-Bcc>.
-
-The C<To>, C<Cc>, and C<Bcc> header information is only used if no
-C<Received> was found. That seems to be the best explanation of the RFC.
-
-As alternative, you may also specify the C<to> option to some of the senders
-(for instance L<Mail::Transport::SMTP::send(to)|Mail::Transport::Send/"Sending mail"> to overrule any information
-found in the message itself about the destination.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport/Sendmail.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport/Sendmail.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pm
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport.pm 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pm 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,121 +0,0 @@
-use strict;
-use warnings;
-
-package Mail::Transport;
-use vars '$VERSION';
-$VERSION = '2.062';
-use base 'Mail::Reporter';
-
-use Carp;
-use File::Spec;
-
-
-my %mailers =
- ( exim => '::Exim'
- , mail => '::Mailx'
- , mailx => '::Mailx'
- , pop => '::POP3'
- , pop3 => '::POP3'
- , postfix => '::Sendmail'
- , qmail => '::Qmail'
- , sendmail => '::Sendmail'
- , smtp => '::SMTP'
- );
-
-#------------------------------------------
-
-
-sub new(@)
-{ my $class = shift;
-
- return $class->SUPER::new(@_)
- unless $class eq __PACKAGE__ || $class eq "Mail::Transport::Send";
-
- #
- # auto restart by creating the right transporter.
- #
-
- my %args = @_;
- my $via = lc($args{via} || '')
- or croak "No transport protocol provided";
-
- $via = 'Mail::Transport'.$mailers{$via}
- if exists $mailers{$via};
-
- eval "require $via";
- return undef if $@;
-
- $via->new(@_);
-}
-
-sub init($)
-{ my ($self, $args) = @_;
-
- $self->SUPER::init($args);
-
- $self->{MT_hostname}
- = defined $args->{hostname} ? $args->{hostname} : 'localhost';
-
- $self->{MT_port} = $args->{port};
- $self->{MT_username} = $args->{username};
- $self->{MT_password} = $args->{password};
- $self->{MT_interval} = $args->{interval} || 30;
- $self->{MT_retry} = $args->{retry} || -1;
- $self->{MT_timeout} = $args->{timeout} || 120;
- $self->{MT_proxy} = $args->{proxy};
-
- if(my $exec = $args->{executable} || $args->{proxy})
- { $self->{MT_exec} = $exec;
-
- $self->log(WARNING => "Avoid program abuse: specify an absolute path for $exec.")
- unless File::Spec->file_name_is_absolute($exec);
-
- unless(-x $exec)
- { $self->log(WARNING => "Executable $exec does not exist.");
- return undef;
- }
- }
-
- $self;
-}
-
-#------------------------------------------
-
-
-sub remoteHost()
-{ my $self = shift;
- @$self{ qw/MT_hostname MT_port MT_username MT_password/ };
-}
-
-#------------------------------------------
-
-
-sub retry()
-{ my $self = shift;
- @$self{ qw/MT_interval MT_retry MT_timeout/ };
-}
-
-#------------------------------------------
-
-
-my @safe_directories
- = qw(/usr/local/bin /usr/bin /bin /sbin /usr/sbin /usr/lib);
-
-sub findBinary($@)
-{ my ($self, $name) = (shift, shift);
-
- return $self->{MT_exec}
- if exists $self->{MT_exec};
-
- foreach (@_, @safe_directories)
- { my $fullname = File::Spec->catfile($_, $name);
- return $fullname if -x $fullname;
- }
-
- undef;
-}
-
-#------------------------------------------
-
-
-1;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pm (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport.pm)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pod
===================================================================
--- packages/libmail-box-perl/trunk/lib/Mail/Transport.pod 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pod 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,369 +0,0 @@
-
-=head1 NAME
-
-Mail::Transport - base class for message exchange
-
-
-=head1 INHERITANCE
-
- Mail::Transport
- is a Mail::Reporter
-
- Mail::Transport is extended by
- Mail::Transport::Receive
- Mail::Transport::Send
-
-
-=head1 SYNOPSIS
-
- my $message = Mail::Message->new(...);
-
- # Some extensions implement sending:
- $message->send;
- $message->send(via => 'sendmail');
-
- my $sender = Mail::Transport::SMTP->new(...);
- $sender->send($message);
-
- # Some extensions implement receiving:
- my $receiver = Mail::Transport::POP3->new(...);
- $message = $receiver->receive;
-
-
-=head1 DESCRIPTION
-
-Objects which extend C<Mail::Transport> implement sending and/or
-receiving of messages, using various protocols.
-
-L<Mail::Transport::Send|Mail::Transport::Send> extends this class, and offers general
-functionality for send protocols, like SMTP. L<Mail::Transport::Receive|Mail::Transport::Receive>
-also extends this class, and offers receive method. Some transport
-protocols will implement both sending and receiving.
-
-
-
-=head1 METHODS
-
-
-=head2 Constructors
-
-
-Mail::Transport-E<gt>B<new>(OPTIONS)
-
-=over 4
-
- Option Defined in Default
- executable C<undef>
- hostname C<'localhost'>
- interval C<30>
- log L<Mail::Reporter> C<'WARNINGS'>
- password undef
- port undef
- proxy undef
- retry <false>
- timeout C<120>
- trace L<Mail::Reporter> C<'WARNINGS'>
- username undef
- via C<'sendmail'>
-
-. executable FILENAME
-
-=over 4
-
-If you specify an executable, the module does not need to search the
-system directories to figure-out where the client lives. Using this
-decreases the flexible usage of your program: moving your program
-to other systems may involve changing the path to the executable,
-which otherwise would work auto-detect and unmodified.
-
-=back
-
-. hostname HOSTNAME|ARRAY-OF-HOSTNAMES
-
-=over 4
-
-The host on which the server runs. Some protocols accept an array
-of alternatives for this option.
-
-=back
-
-. interval SECONDS
-
-=over 4
-
-The time between tries to contact the remote server for sending or
-receiving a message in SECONDS. This number must be larger than 0.
-
-=back
-
-. log LEVEL
-
-. password STRING
-
-=over 4
-
-Some protocols require a password to be given, usually in combination
-with a password.
-
-=back
-
-. port INTEGER
-
-=over 4
-
-The port number behind which the service is hiding on the remote server.
-
-=back
-
-. proxy PATH
-
-=over 4
-
-The name of the proxy software (the protocol handler). This must be
-the name (preferable the absolute path) of your mail delivery
-software.
-
-=back
-
-. retry NUMBER|undef
-
-=over 4
-
-The number of retries before the sending will fail. If C<undef>, the
-number of retries is unlimited.
-
-=back
-
-. timeout SECONDS
-
-=over 4
-
-SECONDS till time-out while establishing the connection to a remote server.
-
-=back
-
-. trace LEVEL
-
-. username STRING
-
-=over 4
-
-Some protocols require a user to login.
-
-=back
-
-. via CLASS|NAME
-
-=over 4
-
-Which CLASS (extending C<Mail::Transport>) will transport the data.
-Some predefined NAMEs avoid long class names: C<mail> and C<mailx>
-are handled by the L<Mail::Transport::Mailx|Mail::Transport::Mailx> module, C<sendmail>
-and C<postfix> belong to L<Mail::Transport::Sendmail|Mail::Transport::Sendmail>, and C<smtp>
-is implemented in L<Mail::Transport::SMTP|Mail::Transport::SMTP>. The C<pop> or C<pop3>
-protocol implementation can be found in L<Mail::Transport::POP3|Mail::Transport::POP3>.
-
-=back
-
-=back
-
-=head2 Server connection
-
-
-$obj-E<gt>B<findBinary>(NAME [, DIRECTORIES])
-
-=over 4
-
-Look for a binary with the specified NAME in the directories which
-are defined to be safe. The list of standard directories is followed
-by the optional DIRECTORIES. The full pathname is returned.
-
-You may specify L<new(proxy)|Mail::Transport/"METHODS">, which specifies the absolute name
-of the binary to be used.
-
-=back
-
-$obj-E<gt>B<remoteHost>
-
-=over 4
-
-Returns the hostname, port number, username and password to be used to
-establish the connection to the server for sending or receiving mail.
-
-=back
-
-$obj-E<gt>B<retry>
-
-=over 4
-
-Returns the retry interval, retry count, and timeout for the connection.
-
-=back
-
-=head2 Error handling
-
-
-$obj-E<gt>B<AUTOLOAD>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<addReport>(OBJECT)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-Mail::Transport-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<errors>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<log>([LEVEL [,STRINGS]])
-
-Mail::Transport-E<gt>B<log>([LEVEL [,STRINGS]])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logPriority>(LEVEL)
-
-Mail::Transport-E<gt>B<logPriority>(LEVEL)
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<logSettings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<notImplemented>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<report>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<reportAll>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<trace>([LEVEL])
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-$obj-E<gt>B<warnings>
-
-=over 4
-
-See L<Mail::Reporter/"Error handling">
-
-=back
-
-=head2 Cleanup
-
-
-$obj-E<gt>B<DESTROY>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-$obj-E<gt>B<inGlobalDestruction>
-
-=over 4
-
-See L<Mail::Reporter/"Cleanup">
-
-=back
-
-
-
-=head1 DIAGNOSTICS
-
-I<Warning:> Avoid program abuse: specify an absolute path for $exec.
-
-Specifying explicit locations for executables of email transfer agents
-should only be done with absolute file names, to avoid various pontential
-security problems.
-
-I<Warning:> Executable $exec does not exist.
-
-The explicitly indicated mail transfer agent does not exists. The normal
-settings are used to find the correct location.
-
-I<Error:> Package $package does not implement $method.
-
-Fatal error: the specific package (or one of its superclasses) does not
-implement this method where it should. This message means that some other
-related classes do implement this method however the class at hand does
-not. Probably you should investigate this and probably inform the author
-of the package.
-
-
-
-
-
-
-=head1 REFERENCES
-
-See the MailBox website at L<http://perl.overmeer.net/mailbox/> for more details.
-
-=head1 COPYRIGHTS
-
-Distribution version 2.062.
-Written by Mark Overmeer (mark at overmeer.net). See the ChangeLog for
-other contributors.
-
-Copyright (c) 2001-2003 by the author(s). All rights reserved.
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/lib/Mail/Transport.pod (from rev 1522, packages/libmail-box-perl/trunk/lib/Mail/Transport.pod)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/test.pl
===================================================================
--- packages/libmail-box-perl/trunk/test.pl 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/test.pl 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,245 +0,0 @@
-#!/usr/bin/perl
-
-use warnings;
-use strict;
-
-use File::Spec;
-use File::Basename;
-
-use lib qw/tests lib/;
-
-use Config;
-use Tools; # test tools
-use Mail::Reporter; # to avoid 'too late for INIT'
-
-use IO::Dir;
-use Test::Harness qw($verbose);
-
-# we use Test::More without a plan here, but we don't want
-# Test::Builder to mess with the exit code
-Test::More->builder->no_ending(1);
-
-chdir 'tests' ##### CHANGE DIR TO tests
- or die "Cannot go to test scripts directory: $!\n";
-
-$verbose = 0;
-if(@ARGV && $ARGV[0] eq '-v')
-{ $verbose = 1;
- shift @ARGV;
-}
-
-my $select_tests;
-if(@ARGV)
-{ my $pat = join '|', @ARGV;
- $select_tests = qr/$pat/o;
-}
-
-# The versions of the following packages are reported to help understanding
-# the environment in which the tests are run. This is certainly not a
-# full list of all installed modules.
-my @show_versions = defined $select_tests ? ()
- : qw/Mail::Box Mail::Box::Parser::C
- User::Identity Object::Realize::Later MIME::Types
- Test::Harness Encode
- /;
-
-my $skip_tests = -f 'skiptests';
-sub package_of($);
-sub testnames($);
-sub run_in_harness(@);
-sub report();
-sub dl_format($@);
-
-warn <<'WARN' unless $select_tests;
-
-*
-* Testing MailBox
-WARN
-
-if($skip_tests)
-{ warn <<'WARN';
-* Tests are disabled, because you said so when the Makefile was created.
-* remove the file "skiptests" if you want to run them.
-*
-WARN
- exit 0;
-}
-
-warn <<'WARN' unless $select_tests;
-*
-* Sometimes installing MailBox breaks because of the huge size
-* of the whole package. Simply restarting the installation is in
-* most cases enough to solve the problems. You may require a new
-* version of ExtUtils::MakeMaker.
-*
-* On *Windows* you will get a large number of failing tests, but they
-* are usually harmless. Please help me to get rit of them.
-*
-
-WARN
-
-warn "Running on $^O ($Config{archname} $Config{osvers}), with Perl $]\n";
-
-foreach my $package (@show_versions)
-{ eval "require $package";
-
- my $report
- = !$@ ? "version ". ($package->VERSION || 'unknown')
- : $@ =~ m/^Can't locate/ ? "not installed"
- : "reports error";
-
- warn "$package $report\n";
-}
-warn "\n";
-
-#
-# Get all the test-sets.
-#
-
-my $testdir = '.';
-my $setdir = IO::Dir->new($testdir);
-die "Cannot open directory $testdir: $!"
- unless $setdir;
-
-my @sets = sort grep { /^\d/ && -d File::Spec->catfile($testdir, $_) }
- $setdir->read;
-
-$setdir->close;
-
-my (%success, %skipped);
-my $tests_run = 0;
-
-foreach my $set (@sets)
-{
- my $script = File::Spec->catfile($testdir, $set, 'Definition.pm');
-
- eval "require '$script'";
- if($@)
- { warn "Errors while requiring $script:\n$@";
- next;
- }
-
- my $package = package_of $set;
-
- if(my $reason = $package->skip)
- { $skipped{$set} = $reason;
- printf "%-15s -- %s\n", $set, $reason;
- next;
- }
-
- my @tests = testnames $set;
- @tests = grep { $_ =~ $select_tests } @tests
- if defined $select_tests;
-
- if(@tests)
- { printf "%-15.15s -- %d %s %s\n", $set, scalar @tests,
- (@tests==1 ? "script; " : "scripts;"), $package->name;
- }
- elsif(defined $select_tests) { ; } # silence
- else
- { printf "%-15.15s -- skip all tests for %s\n", $set, $package->name;
- }
-
- next unless @tests;
-
- $success{$set} = run_in_harness @tests;
- $tests_run += @tests;
-}
-
-my $critical = $tests_run ? report : 0;
-exit $critical;
-
-#
-# PACKAGE_OF SET
-# Returns the name of the package which contains details about the test-set.
-#
-
-sub package_of($) { "MailBox::Test::$_[0]::Definition" }
-
-#
-# TESTNAMES SET
-# Returns a list of all the test for a certain test-set.
-#
-
-sub testnames($)
-{ my $set = shift;
- my $dirname = File::Spec->catdir($testdir, $set);
-
- my $dir = IO::Dir->new($dirname)
- or return ();
-
- sort
- map { File::Spec->catfile($dirname, $_) }
- grep /\.t$/, $dir->read;
-}
-
-#
-# RUN_IN_HARNESS @files
-# Run the specified test files in a harness, but then the MailBox
-# way doin things.
-#
-
-sub run_in_harness(@)
-{ my @files = @_;
- return 1 unless @files;
-
- my ($tot, $failed) = Test::Harness::_run_all_tests(@files);
- Test::Harness::_all_ok($tot);
-}
-
-#
-# PRINT_REPORT
-#
-
-sub report()
-{
- print "--- Test report\n";
-
- my @success = sort grep {$success{$_}} keys %success;
-
- local $" = ', ';
- dl_format(Success => @success) if @success;
-
- my @failed;
- my $critical = 0;
-
- foreach my $set (sort grep {not $success{$_}} keys %success)
- { push @failed, $set;
-
- my $package = package_of $set;
- if($package->critical)
- { $failed[-1] .= '(*)';
- $critical++;
- }
- }
-
- dl_format(Failure => @failed) if @failed;
- print " Marked (*) are critical errors.\n" if $critical;
-
- my @skipped = sort keys %skipped;
- dl_format(Skipped => @skipped) if @skipped;
-
- $critical;
-}
-
-#
-# DL_FORMAT DT, DD-LIST
-# Print in an HTML description-list fashion, with $" between the elements.
-#
-
-sub dl_format($@)
-{ my $line = (shift) . ': ';
- my $elem = shift;
-
- while(defined $elem)
- { $elem .= $" if @_;
- if(length($line) + length($elem) > 72)
- { print "$line\n";
- $line = " ";
- }
- $line .= $elem;
- $elem = shift;
- }
-
- print "$line\n" if $line =~ /[^ ]/;
-}
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/test.pl (from rev 1522, packages/libmail-box-perl/trunk/test.pl)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/13body/40multip.t
===================================================================
--- packages/libmail-box-perl/trunk/tests/13body/40multip.t 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/tests/13body/40multip.t 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,255 +0,0 @@
-#!/usr/bin/perl -T
-#
-# Test processing of multipart message bodies.
-#
-
-use strict;
-use warnings;
-
-use lib qw(. .. tests);
-use Tools;
-
-use Test::More tests => 29;
-use IO::Scalar;
-
-use Mail::Message::Body::Lines;
-use Mail::Message::Body::Multipart;
-use Mail::Message::Head::Complete;
-
-my $body = Mail::Message::Body::Multipart->new
- ( transfer_encoding => '8bit'
- , boundary => 'xyz'
- );
-
-is($body->boundary, 'xyz');
-$body->boundary('part-separator');
-is($body->boundary, 'part-separator');
-is($body->mimeType, 'multipart/mixed');
-
-my $h1 = Mail::Message::Head::Complete->new;
-
-my $b1 = Mail::Message::Body::Lines->new
- ( data => ["p1 l1\n", "p1 l2\n" ]
- , checked => 1
- , mime_type => 'text/html'
- , transfer_encoding => '8bit'
- );
-
-ok($b1);
-is($b1->mimeType, 'text/html');
-is($b1->transferEncoding, '8bit');
-is($b1->disposition, 'none');
-
-my $p1 = Mail::Message->new(head => $h1);
-cmp_ok($p1->body($b1) , "==", $b1);
-is($p1->get('Content-Type'), 'text/html');
-is($p1->get('Content-Transfer-Encoding'), '8bit');
-ok(! defined $p1->get('Content-Disposition'));
-
-my $h2 = Mail::Message::Head::Complete->new;
-
-my $b2 = Mail::Message::Body::Lines->new
- ( data => ["p2 l1\n", "p2 l2\n", "p2 l3\n", "p2 l4\n" ]
- , mime_type => 'text/plain'
- , checked => 1
- , transfer_encoding => '8bit'
- );
-
-ok($b2);
-
-my $p2 = Mail::Message->new(head => $h2);
-cmp_ok($p2->body($b2) , "==", $b2);
-
-# Empty multipart
-
-my $fakeout;
-my $g = IO::Scalar->new(\$fakeout);
-cmp_ok($body->parts, "==", 0);
-$body->print($g);
-is($fakeout, "--part-separator--\n");
-
-# First attachment
-
-$fakeout = '';
-
-my $newbody = $body->attach($p1);
-ok($newbody != $body);
-cmp_ok($newbody->parts, "==", 1);
-$newbody->print($g);
-
-compare_message_prints($fakeout, <<'EXPECTED', 'print with attachment');
---part-separator
-Content-Type: text/html
-Content-Length: 12
-Lines: 2
-Content-Transfer-Encoding: 8bit
-
-p1 l1
-p1 l2
---part-separator--
-EXPECTED
-
-# Second attachment
-
-my $newerbody = $newbody->attach($p2);
-ok($newerbody != $newbody);
-cmp_ok($newerbody->parts, "==", 2);
-
-$fakeout = '';
-$newerbody->print($g);
-compare_message_prints($fakeout, <<'EXPECTED', 'print with two attachments');
---part-separator
-Content-Type: text/html
-Content-Length: 12
-Lines: 2
-Content-Transfer-Encoding: 8bit
-
-p1 l1
-p1 l2
---part-separator
-Content-Type: text/plain
-Content-Length: 24
-Lines: 4
-Content-Transfer-Encoding: 8bit
-
-p2 l1
-p2 l2
-p2 l3
-p2 l4
---part-separator--
-EXPECTED
-
-# Add preamble and epilogue
-
-my $newestbody
- = ref($newerbody)->new
- ( based_on => $newerbody
- , preamble => Mail::Message::Body::Lines->new
- ( data => [ "preamb1\n", "preamb2\n" ]
- , mime_type => 'text/html'
- , charset => 'us-ascii'
- , tranfer_encoding => '8bit'
- )
- , epilogue => Mail::Message::Body::Lines
- ->new(data => [ "epilogue\n" ])
- );
-ok($newestbody != $newbody);
-
-$fakeout = '';
-$newestbody->print($g);
-compare_message_prints($fakeout, <<'EXPECTED', 'with preamble and epilogue');
-preamb1
-preamb2
---part-separator
-Content-Type: text/html
-Content-Length: 12
-Lines: 2
-Content-Transfer-Encoding: 8bit
-
-p1 l1
-p1 l2
---part-separator
-Content-Type: text/plain
-Content-Length: 24
-Lines: 4
-Content-Transfer-Encoding: 8bit
-
-p2 l1
-p2 l2
-p2 l3
-p2 l4
---part-separator--
-epilogue
-EXPECTED
-
-
-# Body to message. The info on preamble is used to create a whole message
-# header.
-
-my $message = Mail::Message->buildFromBody($newestbody,
- From => 'me', To => 'you', Date => 'now', 'Message-Id' => '<simple>');
-
-$fakeout = '';
-$message->print($g);
-compare_message_prints($fakeout, <<'EXPECTED', 'build from multipart body');
-From: me
-To: you
-Date: now
-Message-Id: <simple>
-Content-Type: multipart/mixed; boundary="part-separator"
-Content-Length: 287
-Lines: 24
-Content-Transfer-Encoding: 8bit
-MIME-Version: 1.0
-
-preamb1
-preamb2
---part-separator
-Content-Type: text/html
-Content-Length: 12
-Lines: 2
-Content-Transfer-Encoding: 8bit
-
-p1 l1
-p1 l2
---part-separator
-Content-Type: text/plain
-Content-Length: 24
-Lines: 4
-Content-Transfer-Encoding: 8bit
-
-p2 l1
-p2 l2
-p2 l3
-p2 l4
---part-separator--
-epilogue
-EXPECTED
-
-my $m1 = Mail::Message->buildFromBody($body, From => 'me', To => 'you',
- Date => 'now', 'Message-Id' => '<simple>');
-
-$fakeout = '';
-$m1->print($g);
-compare_message_prints($fakeout, <<'EXPECTED', 'build from multipart body');
-From: me
-To: you
-Date: now
-Message-Id: <simple>
-Content-Type: multipart/mixed; boundary="part-separator"
-Content-Length: 19
-Lines: 1
-Content-Transfer-Encoding: 8bit
-MIME-Version: 1.0
-
---part-separator--
-EXPECTED
-
-my $m2 = Mail::Message->buildFromBody($b1, From => 'me', To => 'you',
- Date => 'now', 'Message-Id' => '<simple>');
-
-$fakeout = '';
-$m2->print($g);
-compare_message_prints($fakeout, <<'EXPECTED', 'build from multipart body');
-From: me
-To: you
-Date: now
-Message-Id: <simple>
-Content-Type: text/html
-Content-Length: 12
-Lines: 2
-Content-Transfer-Encoding: 8bit
-MIME-Version: 1.0
-
-p1 l1
-p1 l2
-EXPECTED
-
-#
-# Check copying.
-#
-
-my $m3 = $message->clone;
-ok($m3);
-ok($m3 != $message);
-cmp_ok($m3->parts , "==", $message->parts);
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/13body/40multip.t (from rev 1522, packages/libmail-box-perl/trunk/tests/13body/40multip.t)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/31fgroups/30spam.t
===================================================================
--- packages/libmail-box-perl/trunk/tests/31fgroups/30spam.t 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/tests/31fgroups/30spam.t 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,127 +0,0 @@
-#!/usr/bin/perl -T
-#
-# Test the processing of spam groups.
-#
-
-use strict;
-use warnings;
-
-use lib qw(. .. tests);
-use Tools;
-
-use File::Spec;
-use Test::More tests => 75;
-
-use Mail::Message::Head::Complete;
-use Mail::Message::Head::SpamGroup;
-use Mail::Box::Mbox;
-
-#
-# Creation of a group
-#
-
-my $sg = Mail::Message::Head::SpamGroup->new;
-
-ok(defined $sg, 'simple construction');
-isa_ok($sg, 'Mail::Message::Head::SpamGroup');
-
-#
-# Extraction of a group
-#
-
-my $h = Mail::Message::Head::Complete->new;
-ok(defined $h);
-
-my @sgs = Mail::Message::Head::SpamGroup->from($h);
-ok(!@sgs, "no spamgroups in empty header");
-
-#
-# Open folder with example messages
-#
-
-my $fn = 'sgfolder';
-$fn = File::Spec->catfile('31fgroups', $fn) unless -f $fn;
-$fn = File::Spec->catfile('tests', $fn) unless -f $fn;
-die "Cannot find file with spam filter examples ($fn)" unless -f $fn;
-
-my $folder = Mail::Box::Mbox->new(folder => $fn, extract => 'ALWAYS');
-ok(defined $folder, "open example folder");
-die unless defined $folder;
-
-my @msgs = $folder->messages;
-cmp_ok(scalar(@msgs), '==', 11, "all expected messages present");
-
-for(my $nr=0; $nr<5; $nr++)
-{ my $msg = $folder->message($nr);
- my @sgs = $msg->head->spamGroups;
-
- cmp_ok(scalar(@sgs), '==', 1, "spam group at $nr");
-
- my $sg = $sgs[0];
- is($sg->type, "SpamAssassin");
-
- $sg->delete;
-
- @sgs = $msg->head->spamGroups;
- cmp_ok(scalar(@sgs), '==', 0, "spam group $nr removed");
-}
-
-for(my $nr=5; $nr<10; $nr++)
-{ my $msg = $folder->message($nr);
- my $head = $msg->head;
-
- my @sgs = $head->spamGroups;
- cmp_ok(scalar(@sgs), '==', 1, "spam group at $nr");
- my $sg0 = $sgs[0];
- is($sg0->type, "Habeas-SWE");
-
- my $sg = $msg->head->spamGroups('Habeas-SWE');
- ok(defined $sg);
- is($sg->type, "Habeas-SWE");
-
- my $is_correct = ($nr==5 || $nr==6) ? 1 : undef;
- cmp_ok($sg->habeasSweFieldsCorrect, '==', $is_correct, "spam in $nr");
-
- cmp_ok( Mail::Message::Head::SpamGroup->habeasSweFieldsCorrect($msg)
- , '==', $is_correct, "spam in message $nr");
-
- cmp_ok(Mail::Message::Head::SpamGroup->habeasSweFieldsCorrect($head)
- , '==', $is_correct, "spam in head of message $nr");
-
- $sg->delete;
-
- @sgs = $msg->head->spamGroups;
- cmp_ok(scalar(@sgs), '==', 0, "spam group $nr removed");
-}
-
-my $msg = $folder->message(10);
-my $head = $msg->head;
-ok(Mail::Message::Head::SpamGroup->habeasSweFieldsCorrect($msg));
-ok(Mail::Message::Head::SpamGroup->habeasSweFieldsCorrect($head));
-
- at sgs = sort {$a->type cmp $b->type} $head->spamGroups;
-cmp_ok(scalar(@sgs), '==', 2, "message 11 with 2 groups");
-
-is($sgs[0]->type, 'Habeas-SWE');
-ok($sgs[0]->habeasSweFieldsCorrect);
-is($sgs[1]->type, 'SpamAssassin');
-
-my $sgs = $head->spamGroups;
-cmp_ok($sgs, '==', 2, "scalar context = amount");
-
-my $sa = $head->spamGroups('SpamAssassin');
-ok(defined $sa, "found spam assassin group");
-
-my $swe = $head->spamGroups('Habeas-SWE');
-ok($swe->habeasSweFieldsCorrect);
-ok(defined $swe, "found habeas-swe group");
-
-$sa->delete;
- at sgs = $head->spamGroups;
-cmp_ok(scalar(@sgs), '==', 1, "message 11 still 1 group");
-is($sgs[0]->type, 'Habeas-SWE');
-ok($sgs[0]->habeasSweFieldsCorrect);
-
-$swe->delete;
- at sgs = $head->spamGroups;
-cmp_ok(scalar(@sgs), '==', 0, "message 11 without spam group");
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/31fgroups/30spam.t (from rev 1522, packages/libmail-box-perl/trunk/tests/31fgroups/30spam.t)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/44imap/30flags.t
===================================================================
--- packages/libmail-box-perl/trunk/tests/44imap/30flags.t 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/tests/44imap/30flags.t 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,133 +0,0 @@
-#!/usr/bin/perl -T
-#
-# Test flags conversion of IMAP4 folders.
-
-use strict;
-use warnings;
-
-use lib qw(. .. tests);
-use Tools;
-
-use Test::More;
-use Mail::Transport::IMAP4;
-
-my $mti = 'Mail::Transport::IMAP4';
-
-BEGIN
-{ eval { require Mail::IMAPClient };
- if($@ =~ m/Can't locate/)
- { plan skip_all => 'requires Mail::IMAPClient';
- exit(0);
- }
-
- eval { require Digest::HMAC_MD5 };
- if($@ =~ m/Can't locate/)
- { plan skip_all => 'requires Digest::HMAC_MD5';
- exit(0);
- }
-
- plan tests => 65;
-}
-
-###
-### Checking labels2flags
-###
-
-sub expect_flags($$$)
-{ my ($got, $expect, $text) = @_;
- my $errors = 0;
-
- my %got;
- $got{$_}++ for split " ", $got;
-
- if(grep {$_ > 1} values %got)
- { $errors++;
- ok(0, "found double, $text");
- }
- else
- { ok(1, $text);
- }
-
- foreach my $e (split " ", $expect)
- { if(delete $got{$e}) { ok(1, "found $e") }
- else { $errors++; ok(0, "missing $e") }
- }
-
- if(keys %got)
- { ok(0, "got too much: ".join(" ", keys %got));
- $errors++;
- }
- else
- { ok(1, "exact match");
- }
-
- if($errors)
- { warn "$errors errors, expected '$expect' got '$got'\n";
- }
-}
-
-my $flags = $mti->labelsToFlags();
-expect_flags($flags, '', "Empty set");
-
-$flags = $mti->labelsToFlags(seen => 1, flagged => 1, old => 1);
-expect_flags($flags, '\Seen \Flagged', "No old");
-
-$flags = $mti->labelsToFlags( {seen => 1, flagged => 1, old => 1} );
-expect_flags($flags, '\Seen \Flagged', "No old as hash");
-
-$flags = $mti->labelsToFlags(seen => 1, flagged => 1, old => 0);
-expect_flags($flags, '\Seen \Flagged \Recent', "No old");
-
-$flags = $mti->labelsToFlags( {seen => 1, flagged => 1, old => 0} );
-expect_flags($flags, '\Seen \Flagged \Recent', "No old as hash");
-
-$flags = $mti->labelsToFlags(seen => 1, replied => 1, flagged => 1,
- deleted => 1, draft => 1, old => 0, spam => 1);
-expect_flags($flags, '\Seen \Answered \Flagged \Deleted \Draft \Recent \Spam',
- "show all flags");
-
-$flags = $mti->labelsToFlags(seen => 0, replied => 0, flagged => 0,
- deleted => 0, draft => 0, old => 1, spam => 0);
-expect_flags($flags, '', "show no flags");
-
-###
-### Checking flagsToLabels
-###
-
-sub expect_labels($$$)
-{ my ($got, $expect, $text) = @_;
-
- my $gotkeys = join " ", %$got;
- my $expkeys = join " ", %$expect;
-# warn "expected '$expkeys' got '$gotkeys'\n";
-
- # depends on predefined labels
- cmp_ok(scalar keys %$got, '==', 7, "$text; nr fields");
-
- foreach my $k (keys %$got)
- { cmp_ok($got->{$k}, '==', $expect->{$k}, "got $k");
- }
-
- foreach my $k (keys %$expect)
- { cmp_ok($got->{$k}, '==', $expect->{$k}, "expect $k");
- }
-}
-
-my $labels = $mti->flagsToLabels('REPLACE');
-expect_labels $labels, {old => 1}, "flagsToLabels: Empty set";
-
-$labels = $mti->flagsToLabels(REPLACE => qw[\Seen \Flagged] );
-expect_labels $labels
- , {old => 1, seen => 1, flagged => 1}
- , "flagsToLabels: Empty set";
-
-$labels = $mti->flagsToLabels(REPLACE =>
- qw[\Seen \Answered \Flagged \Deleted \Draft \Recent \Spam] );
-
-expect_labels $labels
- , { seen => 1, replied => 1, flagged => 1, deleted => 1
- , draft => 1, spam => 1
- }
- , "show all labels";
-
-exit 0;
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/44imap/30flags.t (from rev 1522, packages/libmail-box-perl/trunk/tests/44imap/30flags.t)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/10stripsig.t
===================================================================
--- packages/libmail-box-perl/trunk/tests/50message/10stripsig.t 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/10stripsig.t 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,123 +0,0 @@
-#!/usr/bin/perl -T
-#
-# Test stripping signatures
-#
-
-use strict;
-use warnings;
-
-use lib qw(. .. tests);
-use Tools;
-
-use Test::More tests => 37;
-
-use Mail::Message::Body::Construct;
-use Mail::Message::Body;
-
-#
-# No strip possible
-#
-
-my @lines = map { "$_\n" } qw/1 2 3 4 5/;
-my $body = Mail::Message::Body::Lines->new(data => \@lines);
-
-my ($stripped, $sig) = $body->stripSignature;
-cmp_ok($stripped, "==", $body);
-ok(!defined $sig);
-cmp_ok($stripped->nrLines, "==", @lines);
-
-my $stripped2 = $body->stripSignature;
-cmp_ok($stripped2, "==", $body);
-
-#
-# Simple strip
-#
-
- at lines = map { "$_\n" } qw(a b -- sig);
-$body = Mail::Message::Body::Lines->new(data => \@lines);
-($stripped, $sig) = $body->stripSignature;
-ok($stripped!=$body);
-ok($sig!=$body);
-
-cmp_ok($stripped->nrLines, "==", 2);
-my @stripped_lines = $stripped->lines;
-cmp_ok(@stripped_lines, "==", 2);
-is($stripped_lines[0], $lines[0]);
-is($stripped_lines[1], $lines[1]);
-
-cmp_ok($sig->nrLines, "==", 2);
-my @sig_lines = $sig->lines;
-cmp_ok(@sig_lines, "==", 2);
-is($sig_lines[0], $lines[2]);
-is($sig_lines[1], $lines[3]);
-
-#
-# Try signature too large
-#
-
- at lines = map { "$_\n" } qw/1 2 3 -- 4 5 6 7 8 9 10/;
-$body = Mail::Message::Body::Lines->new(data => \@lines);
-($stripped, $sig) = $body->stripSignature(max_lines => 7);
-ok(!defined $sig);
-cmp_ok($stripped->nrLines, "==", 11);
-
-($stripped, $sig) = $body->stripSignature(max_lines => 8);
-cmp_ok($sig->nrLines, "==", 8);
- at sig_lines = $sig->lines;
-cmp_ok(@sig_lines, "==", 8);
-is($sig_lines[0], $lines[3]);
-is($sig_lines[1], $lines[4]);
-is($sig_lines[-1], $lines[-1]);
-
-cmp_ok($stripped->nrLines, "==", 3);
- at stripped_lines = $stripped->lines;
-cmp_ok(@stripped_lines, "==", 3);
-is($stripped_lines[0], $lines[0]);
-is($stripped_lines[1], $lines[1]);
-is($stripped_lines[2], $lines[2]);
-
-#
-# Try whole body is signature
-#
-
- at lines = map { "$_\n" } qw/-- 1 2 3 4/;
-$body = Mail::Message::Body::Lines->new(data => \@lines);
-($stripped, $sig) = $body->stripSignature(max_lines => 7);
-cmp_ok($sig->nrLines , "==", 5);
-ok(defined $stripped);
-cmp_ok($stripped->nrLines , "==", 0);
-
-#
-# Try string to find sep
-#
-
- at lines = map { "$_\n" } qw/1 2 3 abc 4 5 6/;
-$body = Mail::Message::Body::Lines->new(data => \@lines);
-($stripped, $sig) = $body->stripSignature(pattern => 'b');
-ok(!defined $sig);
-
-($stripped, $sig) = $body->stripSignature(pattern => 'a');
-cmp_ok($sig->nrLines , "==", 4);
-
-#
-# Try regexp to find sep
-#
-
- at lines = map { "$_\n" } qw/1 2 3 abba baab 4 5 6/;
-$body = Mail::Message::Body::Lines->new(data => \@lines);
-($stripped, $sig) = $body->stripSignature(pattern => qr/b{2}/);
-ok($sig);
-cmp_ok($sig->nrLines , "==", 5);
-cmp_ok($stripped->nrLines , "==", 3);
-
-#
-# Try code to find sep
-#
-
- at lines = map { "$_\n" } qw/1 2 3 ab 4 5 6/;
-$body = Mail::Message::Body::Lines->new(data => \@lines);
-($stripped, $sig) = $body->stripSignature(pattern => sub {$_[0] eq "ab\n"});
-ok($sig);
-cmp_ok($sig->nrLines , "==", 4);
-cmp_ok($stripped->nrLines , "==", 3);
-
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/10stripsig.t (from rev 1522, packages/libmail-box-perl/trunk/tests/50message/10stripsig.t)
Deleted: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/21reply.t
===================================================================
--- packages/libmail-box-perl/trunk/tests/50message/21reply.t 2005-11-18 18:00:21 UTC (rev 1521)
+++ packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/21reply.t 2005-11-18 20:00:22 UTC (rev 1524)
@@ -1,138 +0,0 @@
-#!/usr/bin/perl -T
-#
-# Test the creation of reply messages
-#
-
-use strict;
-use warnings;
-
-use lib qw(. .. tests);
-use Tools;
-
-use Test::More tests => 23;
-use Mail::Address;
-
-use Mail::Message;
-use Mail::Message::Head;
-use Mail::Message::Body::Lines;
-use Mail::Message::Construct::Reply;
-
-#
-# First produce a message to reply to.
-#
-
-my $head = Mail::Message::Head->build
- ( To => 'me at example.com (Me the receiver)'
- , From => 'him at somewhere.else.nl (Original Sender)'
- , Cc => 'the.rest at world.net'
- , Subject => 'Test of Reply'
- , Skip => 'Do not take this line'
- , Date => 'Wed, 9 Feb 2000 15:44:05 -0500'
- , 'Content-Something' => 'something'
- );
-
-my ($text, $sig) = (<<'TEXT', <<'SIG');
-First line of orig message.
-Another line of message.
-TEXT
---
-And this is the signature
-which
-has
-a
-few lines
-too
-SIG
-
-my @lines = split /^/, $text.$sig;
-my $body = Mail::Message::Body::Lines->new
- ( mime_type => 'text/plain'
- , checked => 1
- , data => \@lines
- );
-
-ok(defined $body);
-
-my $msg = Mail::Message->new(head => $head);
-$msg->body($body);
-
-ok(defined $msg);
-
-#
-# Create a simple reply
-#
-
-my $reply = $msg->reply
- ( strip_signature => undef
- , prelude => undef
- , quote => undef
- );
-
-ok(defined $reply);
-isa_ok($reply, 'Mail::Message');
-cmp_ok($reply->body, "==", $msg->body);
-
-is( $reply->head->get('to'), $msg->head->get('from'));
-is($reply->head->get('from'), $msg->head->get('to'));
-ok(!defined $reply->head->get('cc'));
-ok(!defined $reply->head->get('skip'));
-ok(!defined $reply->head->get('content-something'));
-#$reply->head->print(\*STDERR);
-
-#warn $reply->body->string;
-is($reply->body->string, $text.$sig);
-
-#
-# Create a complicated reply
-#
-
-my $postlude = Mail::Message::Body::Lines->new
- ( data => [ "added to the end\n", "two lines\n" ]
- );
-
-$reply = $msg->reply
- ( group_reply => 1
- , quote => '] '
- , postlude => $postlude
- );
-
-ok($reply->body!=$msg->body);
-is( $reply->head->get('to'), $msg->head->get('from'));
-is($reply->head->get('from'), $msg->head->get('to'));
-is( $reply->head->get('cc'), $msg->head->get('cc'));
-ok(!defined $reply->head->get('skip'));
-
-#$reply->body->print;
-is($reply->body->string, <<'EXPECT');
-On Wed Feb 9 20:44:05 2000, Original Sender wrote:
-] First line of orig message.
-] Another line of message.
-added to the end
-two lines
-EXPECT
-
-#
-# Another complicated reply
-#
-
-$reply = $msg->reply
- ( group_reply => 0
- , quote => sub {chomp; "> ".reverse."\n"}
- , postlude => $postlude
- , Bcc => Mail::Address->new('username', 'user at example.com')
- );
-
-is( $reply->head->get('to'), $msg->head->get('from'));
-is($reply->head->get('from'), $msg->head->get('to'));
-ok(!defined $reply->head->get('cc'));
-ok(!defined $reply->head->get('skip'));
-is($reply->head->get('bcc'), 'username <user at example.com>');
-
-#$reply->print;
-is($reply->body->string, <<'EXPECT');
-On Wed Feb 9 20:44:05 2000, Original Sender wrote:
-> .egassem giro fo enil tsriF
-> .egassem fo enil rehtonA
-added to the end
-two lines
-EXPECT
Copied: packages/libmail-box-perl/tags/debian_version_2_063-1/tests/50message/21reply.t (from rev 1522, packages/libmail-box-perl/trunk/tests/50message/21reply.t)
More information about the Pkg-perl-cvs-commits
mailing list