Provided by: libmail-message-perl_3.019-1_all bug

NAME

       Mail::Message::Body::Nested - body of a message which contains a message

INHERITANCE

        Mail::Message::Body::Nested
          is a Mail::Message::Body
          is a Mail::Reporter

SYNOPSIS

         See Mail::Message::Body

         if($body->isNested) {
            my $nest = $body->nested;
            $nest->delete;
         }

DESCRIPTION

       The body (content) of a message can be stored in various ways.  In this manual-page you find the
       description of extra functionality you have when a message contains a nested message, like
       "message/rfc822".

       A nested message is different from a multipart message which contains only one element, because a nested
       message has a full set of message header fields defined by the RFC882, where a part of a multipart has
       only a few.  But because we do not keep track whether all fields are presented, a "Mail::Message::Part"
       is used anyway.

       WARNING: Since 2023, at least outlook started to interpret RFC6533 incorrectly.  Bodies of type
       'message/rfc822' can only be 'nested', but when they (illegally) have Content-Transfer-Encoding, they can
       now behave like normal message parts (the same as a pdf or image).

       Extends "DESCRIPTION" in Mail::Message::Body.

OVERLOADED

       Extends "OVERLOADED" in Mail::Message::Body.

       overload: "" stringification
           Inherited, see "OVERLOADED" in Mail::Message::Body

       overload: '==' numerical comparison
           Inherited, see "OVERLOADED" in Mail::Message::Body

       overload: @{} addressed as array
           Inherited, see "OVERLOADED" in Mail::Message::Body

       overload: bool true/false
           Inherited, see "OVERLOADED" in Mail::Message::Body

METHODS

       Extends "METHODS" in Mail::Message::Body.

   Constructors
       Extends "Constructors" in Mail::Message::Body.

       $obj->clone()
           Inherited, see "Constructors" in Mail::Message::Body

       $class->new(%options)
           Inherited, see "Constructors" in Mail::Message::Body

            -Option           --Defined in         --Default
             based_on           Mail::Message::Body  undef
             charset            Mail::Message::Body  'PERL'
             checked            Mail::Message::Body  false
             content_id         Mail::Message::Body  undef
             data               Mail::Message::Body  undef
             description        Mail::Message::Body  undef
             disposition        Mail::Message::Body  undef
             eol                Mail::Message::Body  'NATIVE'
             file               Mail::Message::Body  undef
             filename           Mail::Message::Body  undef
             language           Mail::Message::Body  undef
             log                Mail::Reporter       'WARNINGS'
             message            Mail::Message::Body  undef
             mime_type          Mail::Message::Body  'message/rfc822'
             modified           Mail::Message::Body  <C<false>>
             nested                                  undef
             trace              Mail::Reporter       'WARNINGS'
             transfer_encoding  Mail::Message::Body  'none'

           based_on => BODY
           charset => CHARSET|'PERL'|<undef>
           checked => BOOLEAN
           content_id => STRING
           data => ARRAY-OF-LINES | STRING
           description => STRING|FIELD
           disposition => STRING|FIELD
           eol => 'CR'|'LF'|'CRLF'|'NATIVE'
           file => FILENAME|FILEHANDLE|IOHANDLE
           filename => FILENAME
           language => STRING|ARRAY|LIST|FIELD
           log => LEVEL
           message => MESSAGE
           mime_type => STRING|FIELD|MIME
           modified => BOOLEAN
           nested => MESSAGE
             The message which is encapsulated within this body.

           trace => LEVEL
           transfer_encoding => STRING|FIELD

           ยป example:

             my $msg   = $folder->message(3);
             my $encaps= Mail::Message::Body::Nested->new(nested => $msg);

             # The body will be coerced into a message, which lacks a few
             # lines but we do not bother.
             my $intro = Mail::Message::Body->new(data => ...);
             my $body  = Mail::Message::Body::Nested->new(nested  => $intro);

   Attributes
       Extends "Attributes" in Mail::Message::Body.

       $obj->charsetDetectAlgorithm( [CODE|undef|METHOD] )
           Inherited, see "Attributes" in Mail::Message::Body::Encode

       $obj->logSettings()
           Inherited, see "Attributes" in Mail::Reporter

   Constructing a body
       Extends "Constructing a body" in Mail::Message::Body.

       $obj->attach(@messages, %options)
           Inherited, see "Constructing a body" in Mail::Message::Body::Construct

       $obj->charsetDetect(%options)
           Inherited, see "Constructing a body" in Mail::Message::Body::Encode

       $obj->check()
           Inherited, see "Constructing a body" in Mail::Message::Body::Encode

       $obj->concatenate(@components)
           Inherited, see "Constructing a body" in Mail::Message::Body::Construct

       $obj->decoded(%options)
           Inherited, see "Constructing a body" in Mail::Message::Body

       $obj->encode(%options)
           Inherited, see "Constructing a body" in Mail::Message::Body::Encode

       $obj->encoded(%options)
           Inherited, see "Constructing a body" in Mail::Message::Body::Encode

       $obj->eol( ['CR'|'LF'|'CRLF'|'NATIVE'] )
           Inherited, see "Constructing a body" in Mail::Message::Body::Encode

       $obj->foreachLine((CODE))
           It  is  NOT possible to call some code for each line of a nested because that would damage the header
           of    the    encapsulated    message    Improves    base,    see    "Constructing    a    body"    in
           Mail::Message::Body::Construct

       $obj->stripSignature(%options)
           Inherited, see "Constructing a body" in Mail::Message::Body::Construct

       $obj->unify($body)
           Inherited, see "Constructing a body" in Mail::Message::Body::Encode

   The body
       Extends "The body" in Mail::Message::Body.

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

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

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

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

       $obj->partNumberOf($part)
           Inherited, see "The body" in Mail::Message::Body

   About the payload
       Extends "About the payload" in Mail::Message::Body.

       $obj->charset()
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->checked( [BOOLEAN] )
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->contentId( [STRING|$field] )
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->description( [STRING|$field] )
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->disposition( [STRING|$field] )
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->dispositionFilename( [$directory] )
           Inherited, see "About the payload" in Mail::Message::Body::Encode

       $obj->isBinary()
           Inherited, see "About the payload" in Mail::Message::Body::Encode

       $obj->isText()
           Inherited, see "About the payload" in Mail::Message::Body::Encode

       $obj->language( [@langs|\@langs|$langs|$field] )
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->mimeType()
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->nrLines()
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->size()
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->transferEncoding( [STRING|$field] )
           Inherited, see "About the payload" in Mail::Message::Body

       $obj->type( [STRING|$field] )
           Inherited, see "About the payload" in Mail::Message::Body

   Access to the payload
       Extends "Access to the payload" in Mail::Message::Body.

       $obj->endsOnNewline()
           Inherited, see "Access to the payload" in Mail::Message::Body

       $obj->file()
           Inherited, see "Access to the payload" in Mail::Message::Body

       $obj->forNested(CODE)
           Execute  the  "CODE" for the nested message.  This returns a new nested body object.  Returns "undef"
           when the "CODE" returns "undef".

       $obj->lines()
           Inherited, see "Access to the payload" in Mail::Message::Body

       $obj->nested()
           Returns the Mail::Message::Part message which is enclosed within this body.

       $obj->print( [$fh] )
           Inherited, see "Access to the payload" in Mail::Message::Body

       $obj->printEscapedFrom($fh)
           Inherited, see "Access to the payload" in Mail::Message::Body

       $obj->string()
           Inherited, see "Access to the payload" in Mail::Message::Body

       $obj->stripTrailingNewline()
           Inherited, see "Access to the payload" in Mail::Message::Body

       $obj->write(%options)
           Inherited, see "Access to the payload" in Mail::Message::Body

   Internals
       Extends "Internals" in Mail::Message::Body.

       $any->addTransferEncHandler( $name, <$class|$object> )
           Inherited, see "Internals" in Mail::Message::Body::Encode

       $obj->contentInfoFrom($head)
           Inherited, see "Internals" in Mail::Message::Body

       $obj->contentInfoTo($head)
           Inherited, see "Internals" in Mail::Message::Body

       $obj->fileLocation( [$begin, $end] )
           Inherited, see "Internals" in Mail::Message::Body

       $obj->getTransferEncHandler($type)
           Inherited, see "Internals" in Mail::Message::Body::Encode

       $obj->isModified()
           Inherited, see "Internals" in Mail::Message::Body

       $obj->load()
           Inherited, see "Internals" in Mail::Message::Body

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

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

       $obj->read( $parser, $head, $bodytype, [$chars, [$lines]] )
           Inherited, see "Internals" in Mail::Message::Body

   Error handling
       Extends "Error handling" in Mail::Message::Body.

       $obj->AUTOLOAD()
           Inherited, see "Error handling" in Mail::Message::Body

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

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

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

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

       $any->logPriority($level)
           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->trace( [$level] )
           Inherited, see "Error handling" in Mail::Reporter

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

   Cleanup
       Extends "Cleanup" in Mail::Message::Body.

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

DETAILS

       Extends "DETAILS" in Mail::Message::Body.

DIAGNOSTICS

       Warning: Charset $name is not known
           The encoding or decoding of a message body encounters a character set  which  is  not  understood  by
           Perl's Encode module.  Cast by encode()

       Warning: Content-Transfer-Encoding `$encoding' requires explicit charset, defaulted to utf-8
           Cast by encode()

       Warning: No decoder defined for transfer encoding $name.
           The  data (message body) is encoded in a way which is not currently understood, therefore no decoding
           (or recoding) can take place.  Cast by encode()

       Warning: No encoder defined for transfer encoding $name.
           The data (message body) has been decoded, but the required encoding is unknown.  The decoded data  is
           returned.  Cast by encode()

       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.  Cast by notImplemented()

       Warning: Unknown line terminator $eol ignored
           Cast by eol()

       Error: You cannot use foreachLine on a nested
           foreachLine() should be used on decoded message bodies only, because it would modify  the  header  of
           the encapsulated message. which is clearly not acceptable.  Cast by foreachLine()

SEE ALSO

       This   module   is   part   of   Mail-Message  version  3.019,  built  on  November  24,  2025.  Website:
       http://perl.overmeer.net/CPAN/

LICENSE

       For contributors see file ChangeLog.

       This software is copyright (c) 2001-2025 by Mark Overmeer.

       This is free software; you can redistribute it and/or modify it under  the  same  terms  as  the  Perl  5
       programming language system itself.

perl v5.40.1                                       2025-12-07                   Mail::Message::Body::Nested(3pm)