{
    "mode": "perldoc",
    "parameter": "Mail::Box::File::Message",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/perldoc/Mail%3A%3ABox%3A%3AFile%3A%3AMessage/json",
    "generated": "2026-06-16T09:56:41Z",
    "synopsis": "my $folder  = new Mail::Box::File folder => $ENV{MAIL}, ...;\nmy $message = $folder->message(0);",
    "sections": {
        "NAME": {
            "content": "Mail::Box::File::Message - one message in a Mbox folder\n",
            "subsections": []
        },
        "INHERITANCE": {
            "content": "Mail::Box::File::Message\nis a Mail::Box::Message\nis a Mail::Message\nis a Mail::Reporter\n\nMail::Box::File::Message is extended by\nMail::Box::Dbx::Message\nMail::Box::Mbox::Message\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "my $folder  = new Mail::Box::File folder => $ENV{MAIL}, ...;\nmy $message = $folder->message(0);\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Maintain one message in an file based folder, any Mail::Box::File extension.\n\nExtends \"DESCRIPTION\" in Mail::Box::Message.\n",
            "subsections": []
        },
        "METHODS": {
            "content": "Extends \"METHODS\" in Mail::Box::Message.\n",
            "subsections": [
                {
                    "name": "Constructors",
                    "content": "Extends \"Constructors\" in Mail::Box::Message.\n\n$obj->clone(%options)\nInherited, see \"Constructors\" in Mail::Message\n\nMail::Box::File::Message->new(%options)\nMessages in file-based folders use the following options for creation:\n\n-Option    --Defined in        --Default\nbody        Mail::Message       undef\nbodytype   Mail::Box::Message  <from folder>\ndeleted     Mail::Message       <false>\nfieldtype  Mail::Message       undef\nfolder      Mail::Box::Message  <required>\nfromline                       undef\nhead        Mail::Message       undef\nheadtype   Mail::Message       Mail::Message::Head::Complete\nlabels      Mail::Message       {}\nlog         Mail::Reporter      'WARNINGS'\nmessageId   Mail::Message       undef\nmodified    Mail::Message       <false>\nsize        Mail::Box::Message  undef\ntrace       Mail::Reporter      'WARNINGS'\ntrusted     Mail::Message       <false>\n\nbody => OBJECT\nbodytype => CODE|CLASS\ndeleted => BOOLEAN\nfieldtype => CLASS\nfolder => FOLDER\nfromline => STRING\nThe line which begins each message in the file. Some people detest this line, but this is\njust how things were invented...\n\nhead => OBJECT\nheadtype => CLASS\nlabels => ARRAY|HASH\nlog => LEVEL\nmessageId => STRING\nmodified => BOOLEAN\nsize => INTEGER\ntrace => LEVEL\ntrusted => BOOLEAN\n"
                },
                {
                    "name": "Constructing a message",
                    "content": "Extends \"Constructing a message\" in Mail::Box::Message.\n\n$obj->bounce( [<$rgobject|%options>] )\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Bounce\n\nMail::Box::File::Message->build( [$message|$part|$body], $content )\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Build\n\nMail::Box::File::Message->buildFromBody($body, [$head], $headers)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Build\n\n$obj->forward(%options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\n$obj->forwardAttach(%options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\n$obj->forwardEncapsulate(%options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\n$obj->forwardInline(%options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\n$obj->forwardNo(%options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\n$obj->forwardPostlude()\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\n$obj->forwardPrelude()\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\n$obj->forwardSubject(STRING)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Forward\n\nMail::Box::File::Message->read($fh|STRING|SCALAR|ARRAY, %options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Read\n\n$obj->rebuild(%options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Rebuild\n\n$obj->reply(%options)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Reply\n\n$obj->replyPrelude( [STRING|$field|$address|ARRAY-$of-$things] )\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Reply\n\n$obj->replySubject(STRING)\nMail::Box::File::Message->replySubject(STRING)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Reply\n"
                },
                {
                    "name": "The message",
                    "content": "Extends \"The message\" in Mail::Box::Message.\n\n$obj->container()\nInherited, see \"The message\" in Mail::Message\n\n$obj->copyTo($folder, %options)\nInherited, see \"The message\" in Mail::Box::Message\n\n$obj->escapedBody()\nMbox folders contain multiple messages in one file, using a separator line to keep them\napart. Typically, these lines start with \"From \". Lines within the message could interfere\nwith this separator, and should therefore be translated.\n\nThis method will return the escaped text of the body as reference.\n\n$obj->folder( [$folder] )\nInherited, see \"The message\" in Mail::Box::Message\n\n$obj->fromLine( [$line] )\nMany people detest file-style folders because they store messages all in one file, where a\nline starting with \"From \" leads the header. If we receive a message from a file-based\nfolder, we store that line. If we write to such a file, but there is no such line stored,\nthen we try to generate one.\n\nIf $line is provided, then the starting line is set to this value.\n\n$obj->isDummy()\nInherited, see \"The message\" in Mail::Message\n\n$obj->isPart()\nInherited, see \"The message\" in Mail::Message\n\n$obj->messageId()\nInherited, see \"The message\" in Mail::Message\n\n$obj->moveTo($folder, %options)\nInherited, see \"The message\" in Mail::Box::Message\n\n$obj->partNumber()\nInherited, see \"The message\" in Mail::Message\n\n$obj->print( [$fh] )\nInherited, see \"The message\" in Mail::Message\n\n$obj->send( [$mailer], %options )\nInherited, see \"The message\" in Mail::Message\n\n$obj->seqnr( [$integer] )\nInherited, see \"The message\" in Mail::Box::Message\n\n$obj->size()\nInherited, see \"The message\" in Mail::Message\n\n$obj->toplevel()\nInherited, see \"The message\" in Mail::Message\n\n$obj->write( [$fh] )\nWrite one message to a file handle. It is the message including the leading 'From ' line and\ntrailing blank. The From-line may interfere with lines in the body: those lines are escaped\nwith an extra '>'.\n\nexample:\n\n$msg->write(\\*FILE);    # print the message with encaps to FILE\n$msg->write;            # message with encaps to selected filehandle\n$msg->print(\\*FILE);    # the message without encaps.\n"
                },
                {
                    "name": "The header",
                    "content": "Extends \"The header\" in Mail::Box::Message.\n\n$obj->bcc()\nInherited, see \"The header\" in Mail::Message\n\n$obj->cc()\nInherited, see \"The header\" in Mail::Message\n\n$obj->date()\nInherited, see \"The header\" in Mail::Message\n\n$obj->destinations()\nInherited, see \"The header\" in Mail::Message\n\n$obj->from()\nInherited, see \"The header\" in Mail::Message\n\n$obj->get($fieldname)\nInherited, see \"The header\" in Mail::Message\n\n$obj->guessTimestamp()\nInherited, see \"The header\" in Mail::Message\n\n$obj->head( [$head] )\nInherited, see \"The header\" in Mail::Message\n\n$obj->nrLines()\nInherited, see \"The header\" in Mail::Message\n\n$obj->sender()\nInherited, see \"The header\" in Mail::Message\n\n$obj->study($fieldname)\nInherited, see \"The header\" in Mail::Message\n\n$obj->subject()\nInherited, see \"The header\" in Mail::Message\n\n$obj->timestamp()\nInherited, see \"The header\" in Mail::Message\n\n$obj->to()\nInherited, see \"The header\" in Mail::Message\n"
                },
                {
                    "name": "The body",
                    "content": "Extends \"The body\" in Mail::Box::Message.\n\n$obj->body( [$body] )\nInherited, see \"The body\" in Mail::Message\n\n$obj->contentType()\nInherited, see \"The body\" in Mail::Message\n\n$obj->decoded(%options)\nInherited, see \"The body\" in Mail::Message\n\n$obj->encode(%options)\nInherited, see \"The body\" in Mail::Message\n\n$obj->isMultipart()\nInherited, see \"The body\" in Mail::Message\n\n$obj->isNested()\nInherited, see \"The body\" in Mail::Message\n\n$obj->parts( [<'ALL'|'ACTIVE'|'DELETED'|'RECURSE'|$filter>] )\nInherited, see \"The body\" in Mail::Message\n"
                },
                {
                    "name": "Flags",
                    "content": "Extends \"Flags\" in Mail::Box::Message.\n\n$obj->delete()\nInherited, see \"Flags\" in Mail::Message\n\n$obj->deleted( [BOOLEAN] )\nInherited, see \"Flags\" in Mail::Message\n\n$obj->isDeleted()\nInherited, see \"Flags\" in Mail::Message\n\n$obj->isModified()\nInherited, see \"Flags\" in Mail::Message\n\n$obj->label($label|PAIRS)\nInherited, see \"Flags\" in Mail::Message\n\n$obj->labels()\nInherited, see \"Flags\" in Mail::Message\n\n$obj->labelsToStatus()\nInherited, see \"Flags\" in Mail::Message\n\n$obj->modified( [BOOLEAN] )\nInherited, see \"Flags\" in Mail::Message\n\n$obj->statusToLabels()\nInherited, see \"Flags\" in Mail::Message\n"
                },
                {
                    "name": "The whole message as text",
                    "content": "Extends \"The whole message as text\" in Mail::Box::Message.\n\n$obj->file()\nInherited, see \"The whole message as text\" in Mail::Message::Construct::Text\n\n$obj->lines()\nInherited, see \"The whole message as text\" in Mail::Message::Construct::Text\n\n$obj->printStructure( [$fh|undef],[$indent] )\nInherited, see \"The whole message as text\" in Mail::Message::Construct::Text\n\n$obj->string()\nInherited, see \"The whole message as text\" in Mail::Message::Construct::Text\n"
                },
                {
                    "name": "Internals",
                    "content": "Extends \"Internals\" in Mail::Box::Message.\n\n$obj->clonedFrom()\nInherited, see \"Internals\" in Mail::Message\n\nMail::Box::File::Message->coerce($message, %options)\nInherited, see \"Internals\" in Mail::Message\n\n$obj->diskDelete()\nInherited, see \"Internals\" in Mail::Box::Message\n\n$obj->fileLocation()\nReturns the location of the whole message including the from-line. In LIST context, both\nbegin and end are returned. In SCALAR context, only the begin is passed back.\n\n$obj->isDelayed()\nInherited, see \"Internals\" in Mail::Message\n\n$obj->loadBody()\n$obj->moveLocation($distance)\nThe message is relocated in the file, being moved over $distance bytes. Setting a new\nlocation will update the according information in the header and body.\n\n$obj->readBody( $parser, $head, [$bodytype] )\nInherited, see \"Internals\" in Mail::Box::Message\n\n$obj->readFromParser($parser)\nRead one message from a Mail::Box::File based folder, including the leading message\nseparator.\n\n$obj->readHead( $parser, [$class] )\nInherited, see \"Internals\" in Mail::Message\n\n$obj->recursiveRebuildPart($part, %options)\nInherited, see \"Internals\" in Mail::Message::Construct::Rebuild\n\n$obj->storeBody($body)\nInherited, see \"Internals\" in Mail::Message\n\n$obj->takeMessageId( [STRING] )\nInherited, see \"Internals\" in Mail::Message\n"
                },
                {
                    "name": "Error handling",
                    "content": "Extends \"Error handling\" in Mail::Box::Message.\n\n$obj->AUTOLOAD()\nInherited, see \"METHODS\" in Mail::Message::Construct\n\n$obj->addReport($object)\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )\nMail::Box::File::Message->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->errors()\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->log( [$level, [$strings]] )\nMail::Box::File::Message->log( [$level, [$strings]] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->logPriority($level)\nMail::Box::File::Message->logPriority($level)\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->logSettings()\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->notImplemented()\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->report( [$level] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->reportAll( [$level] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->shortSize( [$value] )\nMail::Box::File::Message->shortSize( [$value] )\nInherited, see \"Error handling\" in Mail::Message\n\n$obj->shortString()\nInherited, see \"Error handling\" in Mail::Message\n\n$obj->trace( [$level] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->warnings()\nInherited, see \"Error handling\" in Mail::Reporter\n"
                },
                {
                    "name": "Cleanup",
                    "content": "Extends \"Cleanup\" in Mail::Box::Message.\n\n$obj->DESTROY()\nInherited, see \"Cleanup\" in Mail::Reporter\n\n$obj->destruct()\nInherited, see \"Cleanup\" in Mail::Box::Message\n"
                }
            ]
        },
        "DETAILS": {
            "content": "Extends \"DETAILS\" in Mail::Box::Message.\n",
            "subsections": []
        },
        "DIAGNOSTICS": {
            "content": "Error: Cannot coerce a $class object into a $class object\nError: Cannot include forward source as $include.\nUnknown alternative for the forward(include). Valid choices are \"NO\", \"INLINE\", \"ATTACH\",\nand \"ENCAPSULATE\".\n\nError: Cannot include reply source as $include.\nUnknown alternative for the \"include\" option of reply(). Valid choices are \"NO\", \"INLINE\",\nand \"ATTACH\".\n\nError: Method bounce requires To, Cc, or Bcc\nThe message bounce() method forwards a received message off to someone else without\nmodification; you must specified it's new destination. If you have the urge not to specify\nany destination, you probably are looking for reply(). When you wish to modify the content,\nuse forward().\n\nError: Method forwardAttach requires a preamble\nError: Method forwardEncapsulate requires a preamble\nError: No address to create forwarded to.\nIf a forward message is created, a destination address must be specified.\n\nError: No default mailer found to send message.\nThe message send() mechanism had not enough information to automatically find a mail\ntransfer agent to sent this message. Specify a mailer explicitly using the \"via\" options.\n\nError: No rebuild rule $name defined.\nError: Only build() Mail::Message's; they are not in a folder yet\nYou may wish to construct a message to be stored in a some kind of folder, but you need to\ndo that in two steps. First, create a normal Mail::Message, and then add it to the folder.\nDuring this Mail::Box::addMessage() process, the message will get coerce()-d into the right\nmessage type, adding storage information and the like.\n\nError: Package $package does not implement $method.\nFatal error: the specific package (or one of its superclasses) does not implement this\nmethod where it should. This message means that some other related classes do implement this\nmethod however the class at hand does not. Probably you should investigate this and probably\ninform the author of the package.\n\nError: Unable to read delayed body.\nError: coercion starts with some object\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "This module is part of Mail-Box distribution version 3.009, built on August 18, 2020. Website:\nhttp://perl.overmeer.net/CPAN/\n",
            "subsections": []
        },
        "LICENSE": {
            "content": "Copyrights 2001-2020 by [Mark Overmeer]. For other contributors see ChangeLog.\n\nThis program is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself. See http://dev.perl.org/licenses/\n",
            "subsections": []
        }
    },
    "summary": "Mail::Box::File::Message - one message in a Mbox folder",
    "flags": [],
    "examples": [],
    "see_also": []
}