Mail::M...::Nested(3)
π Mail::Message::Body::Nested π
okay so bestie, gather round, because this is the manual page for Mail::Message::Body::Nested β yes that's the one your shell is calling Mail::M...::Nested(3), from the User Contributed Perl Documentation set. it's the body of a message that contains another whole message. nesting dolls but make it email πͺβ¨
β¨ 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
Mail::Message::Body also extends Mail::Reporter
is a Mail::Reporter
π SYNOPSIS π
See Mail::Message::Body
if($body->isNested) {
my $nest = $body->nested;
$nest->delete;
}
πΈ DESCRIPTION πΈ
so the body (aka the content) of a message can be stored in various ways, and this page is all about the extra functionality you get when a message contains a nested message, like message/rfc822. it's giving message-ception, no cap π
now, a nested message is not the same as a multipart message that contains only one element, bestie β because a nested message has a full set of message header fields, as defined by the RFC882, whereas 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. the way that we just. don't check. iconic honestly π
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). π not them breaking the rules and then just getting away with it
Extends "DESCRIPTION" in Mail::Message::Body.
π¦ OVERLOADED π¦
Extends "OVERLOADED" in Mail::Message::Body.
overload: '""'stringification β Inherited, see"OVERLOADED"in Mail::Message::Bodyoverload: '=='numerical comparison β Inherited, see"OVERLOADED"in Mail::Message::Bodyoverload: '@{}'addressed as array β Inherited, see"OVERLOADED"in Mail::Message::Bodyoverload: booltrue/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
here's the whole options table, verbatim, because we are not skipping a single one of these:
-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
message Mail::Message::Body undef
mime_type Mail::Message::Body 'message/rfc822'
modified Mail::Message::Body false
nested undef
transfer_encoding Mail::Message::Body 'none'
and now each one, one by one, because every single detail matters fr fr:
based_on => $bodycharset => $charset|'PERL'|<undef>checked => BOOLEANcontent_id => STRINGdata => \@lines|$textdescription => STRING|$fielddisposition => STRING|$fieldeol => 'CR'|'LF'|'CRLF'|'NATIVE'file => $file|$handle|$iofilename => $filelanguage => STRING|\@lang|$fieldmessage => $messagemime_type => STRING|$field|$mimemodified => BOOLEANnested => $messageβ The$messagewhich is encapsulated within this body. π«Ά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
π 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
like. do not do that. it will hurt the header. the header did not ask for this π
$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->notImplemented()β Inherited, see"Error handling"in Mail::Reporter$obj->notImplemented()β Inherited, see"Error handling"in Mail::Reporter
yes, notImplemented() shows up twice. no, we're not deleting one. both stay. periodt π
π«§ Cleanup
Extends "Cleanup" in Mail::Message::Body.
$obj->DESTROY()β Inherited, see"Cleanup"in Mail::Reporter$obj->DESTROY()β Inherited, see"Cleanup"in Mail::Reporter
β DETAILS β
Extends "DETAILS" in Mail::Message::Body.
bestie we are NOT done yet, there is literally more of this page coming β hold that thought π
π¨ DIAGNOSTICS π¨
okay bestie this is the part where the module talks back. every warning and error it can throw at you, listed with the exact wording and who cast it. no cap, read these, they're literally the receipts π
Warning: Content-Transfer-Encoding '$te' requires explicit charset, defaulted to utf-8.β it wanted a charset and you didn't give one, so it just went ahead and pickedutf-8for you. Cast byencode().Error: cannot concatenate element $whichβ Cast byconcatenate().Fault: cannot open $file to write body: $!β Cast bywrite().Warning: charset '$name' is not known.β so the encoding or decoding of a message body ran into a character set that Perl'sEncodemodule simply does not understand. that's the whole tea. Cast byencode().Error: class $package does not implement method $method.β fatal, bestie. 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 bynotImplemented().Error: class $package does not implement method $method.β yeah it's the same one again, and no i'm not being weird, it's literally listed twice in the original. 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 bynotImplemented(). π«Error: data not convertible to a message (type is $class)β Cast bynew().Fault: error closing $file after write body: $!β Cast bywrite().Warning: no decoder defined for transfer encoding '$encoding'.β the data (message body) is encoded in a way which is not currently understood, therefore no decoding (or recoding) can take place. tragic but true. Cast byencode().Warning: no encoder defined for transfer encoding '$encoding'.β the data (message body) has been decoded, but the required encoding is unknown. the decoded data is returned. Cast byencode().Error: no filename parameter for write() body.β Cast bywrite().Error: part number needs multi-part or nested.β Cast bypartNumberOf().Error: unknown line terminator '$eol'.β Cast byeol().Error: you cannot use foreachLine on a nested.β and here's why, so you actually get it: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 byforeachLine().
π SEE ALSO π
this module is part of Mail-Message version 4.04, built on February 04, 2026. website: http://perl.overmeer.net/CPAN/ β go look, it's giving main character energy fr fr β¨
π LICENSE π
for contributors see file ChangeLog.
this software is copyright (c) 2001-2026 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.
and that's the whole page, bestie π part 2 done, no crumbs left. this one shipped as part of Mail-Message version 4.04, built on February 04, 2026, and the footer's date was 2026-02-05 with perl v5.42.0 riding shotgun. go forth and nest those messages ππΈπ¦
π¦ where this page comes from
- fedora 44: perl-Mail-Message 4.04-1.fc44 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms