The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Mail::Box::File::Message - one message in a Mbox folder

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

SYNOPSIS

 my $folder  = new Mail::Box::File folder => $ENV{MAIL}, ...;
 my $message = $folder->message(0);

DESCRIPTION

Maintain one message in an file based folder, any Mail::Box::File extension.

METHODS

Constructors

$obj->clone

Mail::Box::File::Message->coerce(MESSAGE)

Mail::Box::File::Message->new(OPTIONS)

    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::Box::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

      The line which begins each message in the file. Some people detest this line, but this is just how things were invented...

    . head OBJECT

    . head_type CLASS

    . labels ARRAY|HASH

    . log LEVEL

    . messageId STRING

    . modified BOOLEAN

    . size INTEGER

    . trace LEVEL

    . trusted BOOLEAN

Constructing a message

$obj->bounce([RG-OBJECT|OPTIONS])

Mail::Box::File::Message->build([MESSAGE|BODY], CONTENT)

Mail::Box::File::Message->buildFromBody(BODY, [HEAD], HEADERS)

$obj->forward(OPTIONS)

$obj->forwardPostlude

$obj->forwardPrelude

$obj->forwardSubject(STRING)

Mail::Box::File::Message->read(FILEHANDLE|SCALAR|REF-SCALAR|ARRAY-OF-LINES, OPTIONS)

$obj->rebuild(OPTIONS)

$obj->reply(OPTIONS)

$obj->replyPrelude([STRING|FIELD|ADDRESS])

$obj->replySubject(STRING)

Mail::Box::File::Message->replySubject(STRING)

The Message

$obj->container

$obj->isDummy

$obj->isPart

$obj->messageId

$obj->print([FILEHANDLE])

$obj->send([MAILER], OPTIONS)

$obj->size

$obj->toplevel

$obj->write([FILEHANDLE])

    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 '>'.

    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.

The header

$obj->bcc

$obj->cc

$obj->date

$obj->destinations

$obj->from

$obj->get(FIELDNAME)

$obj->guessTimestamp

$obj->head([HEAD])

$obj->nrLines

$obj->sender

$obj->study(FIELDNAME)

$obj->subject

$obj->timestamp

$obj->to

The body

$obj->body([BODY])

$obj->decoded(OPTIONS)

$obj->encode(OPTIONS)

$obj->isMultipart

$obj->isNested

$obj->parts(['ALL'|'ACTIVE'|'DELETED'|'RECURSE'|FILTER])

The message

$obj->copyTo(FOLDER)

$obj->folder([FOLDER])

$obj->fromLine([LINE])

    Many people detest file-style folders because they store messages all in one file, where a line starting with 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.

$obj->moveTo(FOLDER)

$obj->seqnr([INTEGER])

Flags

$obj->delete

$obj->deleted([BOOLEAN])

$obj->isDeleted

$obj->isModified

$obj->label(LABEL [,VALUE [LABEL, VALUE] ])

$obj->labels

$obj->labelsToStatus

$obj->modified([BOOLEAN])

$obj->statusToLabels

The whole message as text

$obj->file

$obj->lines

$obj->printStructure([FILEHANDLE][, INDENT])

$obj->string

Internals

$obj->diskDelete

$obj->fileLocation

    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.

$obj->isDelayed

$obj->loadBody

$obj->moveLocation(DISTANCE)

    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.

$obj->readBody(PARSER, HEAD [, BODYTYPE])

$obj->readFromParser(PARSER)

    Read one message from a Mail::Box::File based folder, including the message separator.

$obj->readHead(PARSER [,CLASS])

$obj->recursiveRebuildPart(PART, OPTIONS)

$obj->storeBody(BODY)

$obj->takeMessageId([STRING])

Error handling

$obj->AUTOLOAD

$obj->defaultTrace([LEVEL, [LEVEL])

Mail::Box::File::Message->defaultTrace([LEVEL, [LEVEL])

$obj->errors

$obj->log([LEVEL [,STRINGS]])

Mail::Box::File::Message->log([LEVEL [,STRINGS]])

$obj->logPriority(LEVEL)

Mail::Box::File::Message->logPriority(LEVEL)

$obj->logSettings

$obj->notImplemented

$obj->report([LEVEL])

$obj->reportAll([LEVEL])

$obj->shortSize([VALUE])

Mail::Box::File::Message->shortSize([VALUE])

$obj->shortString

$obj->trace([LEVEL])

$obj->warnings

Cleanup

$obj->DESTROY

$obj->destruct

$obj->inGlobalDestruction

DIAGNOSTICS

Error: Cannot include forward source as $include.

Unknown alternative for the forward(include). Valid choices are NO, INLINE, and ATTACH.

Error: Cannot include reply source as $include.

Unknown alternative for the include option of reply(). Valid choices are NO, INLINE, and ATTACH.

Error: No address to create forwarded to.

If a forward message is created, a destination address must be specified.

Error: No default mailer found to send message.

The message send() mechanism had not enough information to automatically find a mail transfer agent to sent this message. Specify a mailer explicitly using the via options.

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.

Error: Unable to read delayed body.

Error: no rebuild rule $name defined.

DETAILS

REFERENCES

See the MailBox website at http://perl.overmeer.net/mailbox/ for more details.

COPYRIGHTS

Distribution version 2.047. Written by Mark Overmeer (mark@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.