{
    "mode": "perldoc",
    "parameter": "Mail::Box::Message::Destructed",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/perldoc/Mail%3A%3ABox%3A%3AMessage%3A%3ADestructed/json",
    "generated": "2026-06-12T03:13:23Z",
    "synopsis": "$folder->message(3)->destruct;",
    "sections": {
        "NAME": {
            "content": "Mail::Box::Message::Destructed - a destructed message\n",
            "subsections": []
        },
        "INHERITANCE": {
            "content": "Mail::Box::Message::Destructed\nis a Mail::Box::Message\nis a Mail::Message\nis a Mail::Reporter\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "$folder->message(3)->destruct;\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "When a message folder is read, each message will be parsed into Perl structures. Especially the\nheader structure can consume a huge amount of memory (message bodies can be moved to external\ntemporary files). Destructed messages have forcefully cleaned-up all header and body\ninformation, and are therefore much smaller. Some useful information is still in the object.\n\nBE WARNED: once a message is destructed, it cannot be revived. Destructing enforces irreversable\ndeletion from the folder. If you have a folder opened for read-only, the message will stay in\nthat folder, but otherwise it may be deleted.\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::Message::Destructed->new($messageid, %options)\nYou cannot instantiate a destructed message object. Destruction is done by calling\nMail::Box::Message::destruct().\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>\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\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::Message::Destructed->build( [$message|$part|$body], $content )\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Build\n\nMail::Box::Message::Destructed->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::Message::Destructed->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::Message::Destructed->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->folder( [$folder] )\nInherited, see \"The message\" in Mail::Box::Message\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] )\nInherited, see \"The message\" in Mail::Message\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] )\nWhen \"undef\" is specified for $head, no change has to take place and the method returns\nsilently. In all other cases, this method will complain that the header has been removed.\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] )\nWhen \"undef\" is specified for $body, no change has to take place and the method returns\nsilently. In all other cases, this method will complain that the body data has been removed.\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)\nIt is possible to delete a destructed message, but not to undelete it.\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::Message::Destructed->coerce($message)\nCoerce a Mail::Box::Message into destruction.\n\nexample: of coercion to death\n\nMail::Box::Message::Destructed->coerce($folder->message(1));\n$folder->message(1)->destruct;  # same\n\nmy $msg = $folder->message(1);\nMail::Box::Message::Destructed->coerce($msg);\n$msg->destruct;                 # same\n\n$obj->diskDelete()\nInherited, see \"Internals\" in Mail::Box::Message\n\n$obj->isDelayed()\nInherited, see \"Internals\" in Mail::Message\n\n$obj->readBody( $parser, $head, [$bodytype] )\nInherited, see \"Internals\" in Mail::Box::Message\n\n$obj->readFromParser( $parser, [$bodytype] )\nInherited, see \"Internals\" in Mail::Message\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::Message::Destructed->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level,\n$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::Message::Destructed->log( [$level, [$strings]] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->logPriority($level)\nMail::Box::Message::Destructed->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::Message::Destructed->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) into destruction\nOnly real Mail::Box::Message objects can get destructed into Mail::Box::Message::Destructed\nobjects. Mail::Message free their memory immediately when the last reference is lost.\n\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: Destructed message has no labels except 'deleted'\nError: Destructed messages can not be undeleted\nOnce a message is destructed, it can not be revived. Destruction is an optimization in\nmemory usage: if you need an undelete functionality, then you can not use\nMail::Box::Message::destruct().\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: You cannot instantiate a destructed message\nYou cannot instantiate a destructed message object directly. Destruction is done by calling\nMail::Box::Message::destruct() on any existing folder message.\n\nError: You cannot take the head/body of a destructed message\nThe message originated from a folder, but its memory has been freed-up forcefully by means\nof Mail::Box::Message::destruct(). Apparently, your program still tries to get to the header\nor body data after this destruction, which is not possible.\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::Message::Destructed - a destructed message",
    "flags": [],
    "examples": [],
    "see_also": []
}