{
    "content": [
        {
            "type": "text",
            "text": "# Mail::Message::Part (perldoc)\n\n## NAME\n\nMail::Message::Part - a part of a message, but a message by itself\n\n## SYNOPSIS\n\nmy Mail::Message $message = ...;\nif($message->isMultipart) {\nmy Mail::Message::Part $part;\nforeach $part ($message->body->parts) {\n$part->print(\\*OUT);\nmy $attachedhead = $part->head;\nmy $attachedbody = $part->body;      # encoded as read\nmy $attachedbody = $part->decoded;   # transfer-encoding removed\n}\n}\n\n## DESCRIPTION\n\nA \"Mail::Message::Part\" object contains a message which is included in the body of another\nmessage. For instance *attachments* are *parts*.\n\n## Sections\n\n- **NAME**\n- **INHERITANCE**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **METHODS** (10 subsections)\n- **DETAILS**\n- **DIAGNOSTICS**\n- **SEE ALSO**\n- **LICENSE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Mail::Message::Part",
        "section": "",
        "mode": "perldoc",
        "summary": "Mail::Message::Part - a part of a message, but a message by itself",
        "synopsis": "my Mail::Message $message = ...;\nif($message->isMultipart) {\nmy Mail::Message::Part $part;\nforeach $part ($message->body->parts) {\n$part->print(\\*OUT);\nmy $attachedhead = $part->head;\nmy $attachedbody = $part->body;      # encoded as read\nmy $attachedbody = $part->decoded;   # transfer-encoding removed\n}\n}",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "INHERITANCE",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 12,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "Constructors",
                        "lines": 40
                    },
                    {
                        "name": "Constructing a message",
                        "lines": 58
                    },
                    {
                        "name": "The message",
                        "lines": 36
                    },
                    {
                        "name": "The header",
                        "lines": 44
                    },
                    {
                        "name": "The body",
                        "lines": 23
                    },
                    {
                        "name": "Flags",
                        "lines": 29
                    },
                    {
                        "name": "The whole message as text",
                        "lines": 14
                    },
                    {
                        "name": "Internals",
                        "lines": 34
                    },
                    {
                        "name": "Error handling",
                        "lines": 48
                    },
                    {
                        "name": "Cleanup",
                        "lines": 10
                    }
                ]
            },
            {
                "name": "DETAILS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DIAGNOSTICS",
                "lines": 40,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Mail::Message::Part - a part of a message, but a message by itself\n",
                "subsections": []
            },
            "INHERITANCE": {
                "content": "Mail::Message::Part\nis a Mail::Message\nis a Mail::Reporter\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "my Mail::Message $message = ...;\nif($message->isMultipart) {\nmy Mail::Message::Part $part;\n\nforeach $part ($message->body->parts) {\n$part->print(\\*OUT);\nmy $attachedhead = $part->head;\nmy $attachedbody = $part->body;      # encoded as read\nmy $attachedbody = $part->decoded;   # transfer-encoding removed\n}\n}\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "A \"Mail::Message::Part\" object contains a message which is included in the body of another\nmessage. For instance *attachments* are *parts*.\n\nREAD Mail::Message FIRST. A part is a special message: it has a reference to its parent message,\nand will usually not be sub-classed into mail folder specific variants.\n\nExtends \"DESCRIPTION\" in Mail::Message.\n",
                "subsections": []
            },
            "METHODS": {
                "content": "Extends \"METHODS\" in Mail::Message.\n",
                "subsections": [
                    {
                        "name": "Constructors",
                        "content": "Extends \"Constructors\" in Mail::Message.\n\n$obj->clone(%options)\nInherited, see \"Constructors\" in Mail::Message\n\nMail::Message::Part->new(%options)\nCreate a message part.\n\n-Option    --Defined in     --Default\nbody        Mail::Message    undef\nbodytype   Mail::Message    Mail::Message::Body::Lines\ncontainer                    <required>\ndeleted     Mail::Message    <false>\nfieldtype  Mail::Message    undef\nhead        Mail::Message    <empty header>\nheadtype   Mail::Message    Mail::Message::Head::Complete\nlabels      Mail::Message    {}\nlog         Mail::Reporter   'WARNINGS'\nmessageId   Mail::Message    undef\nmodified    Mail::Message    <false>\ntrace       Mail::Reporter   'WARNINGS'\ntrusted     Mail::Message    <false>\n\nbody => OBJECT\nbodytype => CLASS\ncontainer => BODY\nReference to the parental Mail::Message::Body object where this part is a member of. That\nobject may be a Mail::Message::Body::Multipart or a Mail::Message::Body::Nested.\n\ndeleted => BOOLEAN\nfieldtype => CLASS\nhead => OBJECT\nheadtype => CLASS\nlabels => ARRAY|HASH\nlog => LEVEL\nmessageId => STRING\nmodified => BOOLEAN\ntrace => LEVEL\ntrusted => BOOLEAN\n"
                    },
                    {
                        "name": "Constructing a message",
                        "content": "Extends \"Constructing a message\" in Mail::Message.\n\n$obj->bounce( [<$rgobject|%options>] )\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Bounce\n\nMail::Message::Part->build( [$message|$part|$body], $content )\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Build\n\nMail::Message::Part->buildFromBody($body, $container, $headers)\nShape a message part around a $body. Bodies have information about their content in them,\nwhich is used to construct a header for the message. Next to that, more $headers can be\nspecified. No headers are obligatory. No extra headers are fabricated automatically.\n\nexample:\n\nmy $multi = Mail::Message::Body::Multipart->new;\nmy $part  = Mail::Message::Part->buildFromBody($body, $multi);\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::Message::Part->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::Message::Part->replySubject(STRING)\nInherited, see \"Constructing a message\" in Mail::Message::Construct::Reply\n"
                    },
                    {
                        "name": "The message",
                        "content": "Extends \"The message\" in Mail::Message.\n\n$obj->container()\nInherited, see \"The message\" in Mail::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->partNumber()\nInherited, see \"The message\" in Mail::Message\n\n$obj->print( [$fh] )\nInherited, see \"The message\" in Mail::Message\n\n$obj->printEscapedFrom($fh)\nPrints the message part, but all lines which start with 'From ' will get a leading >. See\nMail::Message::Body::printEscapedFrom().\n\n$obj->send( [$mailer], %options )\nInherited, see \"The message\" in Mail::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::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::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::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::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::Message.\n\n$obj->clonedFrom()\nInherited, see \"Internals\" in Mail::Message\n\nMail::Message::Part->coerce( <$body|$message>, $multipart, @headers )\nTransforms a $body or $message to a real message part. The $multipart refers to the parental\nbody.\n\nWhen ta $body is specified, extra @headers can be supplied as well. Bodies are coerced into\nmessage parts by calling buildFromBody(). If you specify a $message residing in a folder,\nthis message will automatically be cloned.\n\n$obj->isDelayed()\nInherited, see \"Internals\" in Mail::Message\n\n$obj->readBody( $parser, $head, [$bodytype] )\nInherited, see \"Internals\" in Mail::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::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::Message::Part->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::Message::Part->log( [$level, [$strings]] )\nInherited, see \"Error handling\" in Mail::Reporter\n\n$obj->logPriority($level)\nMail::Message::Part->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::Message::Part->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::Message.\n\n$obj->DESTROY()\nInherited, see \"Cleanup\" in Mail::Reporter\n\n$obj->destruct()\nMessage parts can not be destructed per part: only whole messages can be forcefully freed\nfrom memory. Of course, you can delete() separate parts, which only sets a flag not to write\na part again. Furthermore, you may cosider rebuild() to get rit of deleted parts.\n"
                    }
                ]
            },
            "DETAILS": {
                "content": "Extends \"DETAILS\" in Mail::Message.\n",
                "subsections": []
            },
            "DIAGNOSTICS": {
                "content": "Error: 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: You cannot destruct message parts, only whole messages\nMessage parts can not be destructed per part: only whole messages can be forcefully freed\nfrom memory. Consider delete() or rebuild().\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "This module is part of Mail-Message distribution version 3.012, built on February 11, 2022.\nWebsite: http://perl.overmeer.net/CPAN/\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "Copyrights 2001-2022 by [Mark Overmeer <markov@cpan.org>]. 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": []
            }
        }
    }
}