# Mail::Box::File::Message - phpMan

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

    Extends "DESCRIPTION" in [Mail::Box::Message].

## METHODS
    Extends "METHODS" in [Mail::Box::Message].

  Constructors
    Extends "Constructors" in [Mail::Box::Message].

    $obj->clone(%options)
        Inherited, see "Constructors" in [Mail::Message]

    [Mail::Box::File::Message]->new(%options)
        Messages in file-based folders use the following options for
        creation:

         -Option    --Defined in        --Default
          body        [Mail::Message]       undef
          body_type   [Mail::Box::Message]  <from folder>
          deleted     [Mail::Message]       <false>
          field_type  [Mail::Message]       undef
          folder      [Mail::Box::Message]  <required>
          from_line                       undef
          head        [Mail::Message]       undef
          head_type   [Mail::Message]       [Mail::Message::Head::Complete]
          labels      [Mail::Message]       {}
          log         [Mail::Reporter]      'WARNINGS'
          messageId   [Mail::Message]       undef
          modified    [Mail::Message]       <false>
          size        [Mail::Box::Message]  undef
          trace       [Mail::Reporter]      'WARNINGS'
          trusted     [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
    Extends "Constructing a message" in [Mail::Box::Message].

    $obj->bounce( [<$rg_object|%options>] )
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Bounce]

    [Mail::Box::File::Message]->build( [$message|$part|$body], $content )
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Build]

    [Mail::Box::File::Message]->buildFromBody($body, [$head], $headers)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Build]

    $obj->forward(%options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    $obj->forwardAttach(%options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    $obj->forwardEncapsulate(%options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    $obj->forwardInline(%options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    $obj->forwardNo(%options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    $obj->forwardPostlude()
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    $obj->forwardPrelude()
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    $obj->forwardSubject(STRING)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Forward]

    [Mail::Box::File::Message]->read($fh|STRING|SCALAR|ARRAY, %options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Read]

    $obj->rebuild(%options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Rebuild]

    $obj->reply(%options)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Reply]

    $obj->replyPrelude( [STRING|$field|$address|ARRAY-$of-$things] )
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Reply]

    $obj->replySubject(STRING)
    [Mail::Box::File::Message]->replySubject(STRING)
        Inherited, see "Constructing a message" in
        [Mail::Message::Construct::Reply]

  The message
    Extends "The message" in [Mail::Box::Message].

    $obj->container()
        Inherited, see "The message" in [Mail::Message]

    $obj->copyTo($folder, %options)
        Inherited, see "The message" in [Mail::Box::Message]

    $obj->escapedBody()
        Mbox folders contain multiple messages in one file, using a
        separator line to keep them apart. Typically, these lines start with
        "From ". Lines within the message could interfere with this
        separator, and should therefore be translated.

        This method will return the escaped text of the body as reference.

    $obj->folder( [$folder] )
        Inherited, see "The message" in [Mail::Box::Message]

    $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->isDummy()
        Inherited, see "The message" in [Mail::Message]

    $obj->isPart()
        Inherited, see "The message" in [Mail::Message]

    $obj->messageId()
        Inherited, see "The message" in [Mail::Message]

    $obj->moveTo($folder, %options)
        Inherited, see "The message" in [Mail::Box::Message]

    $obj->partNumber()
        Inherited, see "The message" in [Mail::Message]

    $obj->print( [$fh] )
        Inherited, see "The message" in [Mail::Message]

    $obj->send( [$mailer], %options )
        Inherited, see "The message" in [Mail::Message]

    $obj->seqnr( [$integer] )
        Inherited, see "The message" in [Mail::Box::Message]

    $obj->size()
        Inherited, see "The message" in [Mail::Message]

    $obj->toplevel()
        Inherited, see "The message" in [Mail::Message]

    $obj->write( [$fh] )
        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
    Extends "The header" in [Mail::Box::Message].

    $obj->bcc()
        Inherited, see "The header" in [Mail::Message]

    $obj->cc()
        Inherited, see "The header" in [Mail::Message]

    $obj->date()
        Inherited, see "The header" in [Mail::Message]

    $obj->destinations()
        Inherited, see "The header" in [Mail::Message]

    $obj->from()
        Inherited, see "The header" in [Mail::Message]

    $obj->get($fieldname)
        Inherited, see "The header" in [Mail::Message]

    $obj->guessTimestamp()
        Inherited, see "The header" in [Mail::Message]

    $obj->head( [$head] )
        Inherited, see "The header" in [Mail::Message]

    $obj->nrLines()
        Inherited, see "The header" in [Mail::Message]

    $obj->sender()
        Inherited, see "The header" in [Mail::Message]

    $obj->study($fieldname)
        Inherited, see "The header" in [Mail::Message]

    $obj->subject()
        Inherited, see "The header" in [Mail::Message]

    $obj->timestamp()
        Inherited, see "The header" in [Mail::Message]

    $obj->to()
        Inherited, see "The header" in [Mail::Message]

  The body
    Extends "The body" in [Mail::Box::Message].

    $obj->body( [$body] )
        Inherited, see "The body" in [Mail::Message]

    $obj->contentType()
        Inherited, see "The body" in [Mail::Message]

    $obj->decoded(%options)
        Inherited, see "The body" in [Mail::Message]

    $obj->encode(%options)
        Inherited, see "The body" in [Mail::Message]

    $obj->isMultipart()
        Inherited, see "The body" in [Mail::Message]

    $obj->isNested()
        Inherited, see "The body" in [Mail::Message]

    $obj->parts( [<'ALL'|'ACTIVE'|'DELETED'|'RECURSE'|$filter>] )
        Inherited, see "The body" in [Mail::Message]

  Flags
    Extends "Flags" in [Mail::Box::Message].

    $obj->delete()
        Inherited, see "Flags" in [Mail::Message]

    $obj->deleted( [BOOLEAN] )
        Inherited, see "Flags" in [Mail::Message]

    $obj->isDeleted()
        Inherited, see "Flags" in [Mail::Message]

    $obj->isModified()
        Inherited, see "Flags" in [Mail::Message]

    $obj->label($label|PAIRS)
        Inherited, see "Flags" in [Mail::Message]

    $obj->labels()
        Inherited, see "Flags" in [Mail::Message]

    $obj->labelsToStatus()
        Inherited, see "Flags" in [Mail::Message]

    $obj->modified( [BOOLEAN] )
        Inherited, see "Flags" in [Mail::Message]

    $obj->statusToLabels()
        Inherited, see "Flags" in [Mail::Message]

  The whole message as text
    Extends "The whole message as text" in [Mail::Box::Message].

    $obj->file()
        Inherited, see "The whole message as text" in
        [Mail::Message::Construct::Text]

    $obj->lines()
        Inherited, see "The whole message as text" in
        [Mail::Message::Construct::Text]

    $obj->printStructure( [$fh|undef],[$indent] )
        Inherited, see "The whole message as text" in
        [Mail::Message::Construct::Text]

    $obj->string()
        Inherited, see "The whole message as text" in
        [Mail::Message::Construct::Text]

  Internals
    Extends "Internals" in [Mail::Box::Message].

    $obj->clonedFrom()
        Inherited, see "Internals" in [Mail::Message]

    [Mail::Box::File::Message]->coerce($message, %options)
        Inherited, see "Internals" in [Mail::Message]

    $obj->diskDelete()
        Inherited, see "Internals" in [Mail::Box::Message]

    $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()
        Inherited, see "Internals" in [Mail::Message]

    $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] )
        Inherited, see "Internals" in [Mail::Box::Message]

    $obj->readFromParser($parser)
        Read one message from a [Mail::Box::File] based folder, including the
        leading message separator.

    $obj->readHead( $parser, [$class] )
        Inherited, see "Internals" in [Mail::Message]

    $obj->recursiveRebuildPart($part, %options)
        Inherited, see "Internals" in [Mail::Message::Construct::Rebuild]

    $obj->storeBody($body)
        Inherited, see "Internals" in [Mail::Message]

    $obj->takeMessageId( [STRING] )
        Inherited, see "Internals" in [Mail::Message]

  Error handling
    Extends "Error handling" in [Mail::Box::Message].

    $obj->AUTOLOAD()
        Inherited, see "METHODS" in [Mail::Message::Construct]

    $obj->addReport($object)
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level,
    $callback] )
    [Mail::Box::File::Message]->defaultTrace( [$level]|[$loglevel,
    $tracelevel]|[$level, $callback] )
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->errors()
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->log( [$level, [$strings]] )
    [Mail::Box::File::Message]->log( [$level, [$strings]] )
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->logPriority($level)
    [Mail::Box::File::Message]->logPriority($level)
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->logSettings()
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->notImplemented()
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->report( [$level] )
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->reportAll( [$level] )
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->shortSize( [$value] )
    [Mail::Box::File::Message]->shortSize( [$value] )
        Inherited, see "Error handling" in [Mail::Message]

    $obj->shortString()
        Inherited, see "Error handling" in [Mail::Message]

    $obj->trace( [$level] )
        Inherited, see "Error handling" in [Mail::Reporter]

    $obj->warnings()
        Inherited, see "Error handling" in [Mail::Reporter]

  Cleanup
    Extends "Cleanup" in [Mail::Box::Message].

    $obj->DESTROY()
        Inherited, see "Cleanup" in [Mail::Reporter]

    $obj->destruct()
        Inherited, see "Cleanup" in [Mail::Box::Message]

## DETAILS
    Extends "DETAILS" in [Mail::Box::Message].

## DIAGNOSTICS
    Error: Cannot coerce a $class object into a $class object
    Error: Cannot include forward source as $include.
        Unknown alternative for the forward(include). Valid choices are
        "NO", "INLINE", "ATTACH", and "ENCAPSULATE".

    Error: Cannot include reply source as $include.
        Unknown alternative for the "include" option of reply(). Valid
        choices are "NO", "INLINE", and "ATTACH".

    Error: Method bounce requires To, Cc, or Bcc
        The message bounce() 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 reply(). When you wish to modify the
        content, use forward().

    Error: Method forwardAttach requires a preamble
    Error: Method forwardEncapsulate requires a preamble
    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: No rebuild rule $name defined.
    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
        [Mail::Message], and then add it to the folder. During this
        [Mail::Box::addMessage]() process, the message will get coerce()-d
        into the right message type, adding storage information and the
        like.

    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: coercion starts with some object

## SEE ALSO
    This module is part of Mail-Box distribution version 3.009, built on
    August 18, 2020. Website: <http://perl.overmeer.net/CPAN/>

## LICENSE
    Copyrights 2001-2020 by [Mark Overmeer]. For other contributors see
    ChangeLog.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself. See <http://dev.perl.org/licenses/>

