OVERLOADED

overload: ""
See "" in Mail::Message::Body.
overload: '==' and '!='
See '==' and '!=' in Mail::Message::Body.
overload: @{}
See @{} in Mail::Message::Body.
overload: bool
See bool in Mail::Message::Body.

METHODS

See METHODS in Mail::Reporter

Constructors

$obj->clone
See clone in Mail::Message::Body.
$class->new( %options )
Option Defined in Default

based_on

Mail::Message::Body

undef

boundary

undef

charset

Mail::Message::Body

'PERL' or <undef>

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'

epilogue

''

file

Mail::Message::Body

undef

log

Mail::Reporter

'WARNINGS'

message

Mail::Message::Body

undef

mime_type

Mail::Message::Body

'multipart/mixed'

modified

Mail::Message::Body

<false>

parts

undef

preamble

undef

trace

Mail::Reporter

'WARNINGS'

transfer_encoding

Mail::Message::Body

'none'

based_on => BODY
boundary => STRING
Separator to be used between parts of the message. This separator must be unique in case the message contains nested multiparts (which are not unusual). If undef, a nice unique boundary will be generated.
charset => CHARSET|'PERL'
checked => BOOLEAN
content_id => STRING
data => ARRAY-OF-LINES | STRING
description => STRING|FIELD
disposition => STRING|FIELD
eol => 'CR'|'LF'|'CRLF'|'NATIVE'
epilogue => BODY|STRING
The text which is included in the main body after the final boundary. This is usually empty, and has no meaning.
Provide a BODY object or a STRING which will automatically translated into a text/plain body.
file => FILENAME|FILEHANDLE|IOHANDLE
log => LEVEL
message => MESSAGE
mime_type => STRING|FIELD|MIME
modified => BOOLEAN
parts => ARRAY-OF-(MESSAGES|BODIES)
Specifies an initial list of parts in this body. These may be full MESSAGES, or BODIES which transformed into messages before use. Each message is coerced into a Mail::Message::Part object.
MIME::Entity and Mail::Internet objects are acceptable in the list, because they are coercible into Mail::Message::Part's. Values of undef will be skipped silently.
preamble => BODY|STRING
The text which is included in the body before the first part. It is common use to include a text to warn the user that the message is a multipart. However, this was useful in earlier days: most mail agents are very capable in warning the user themselves.
Provide a BODY object or a STRING which will automatically translated into a text/plain body.
trace => LEVEL
transfer_encoding => STRING|FIELD
» Example:
 my $intro = Mail::Message::Body->new(data => ['part one']);
 my $pgp   = Mail::Message::Body->new(data => ['part three']);

 my $body  = Mail::Message::Body::Multipart->new
   ( boundary => time . '--it-s-mine'
   , preamble => "This is a multi-part message in MIME format.\n\n"
   , parts    => [ $intro, $folder->message(3)->decoded, $pgp ]
   );
» Error: Data not convertible to a message (type is $type)

An object which is not coercable into a Mail::Message::Part object was passed to the initiation. The data is ignored.

Constructing a body

$obj->attach( $messages|$bodies )

Attach a list of $messages to this multipart. A new body is returned. When you specify $bodies, they will first be translated into real messages. MIME::Entity and Mail::Internet objects may be specified too. In any case, the parts will be coerced into Mail::Message::Part's.

$obj->check
See check in Mail::Message::Body::Encode.
$obj->concatenate( $components )
See concatenate in Mail::Message::Body::Construct.
$obj->decoded( %options )
See decoded in Mail::Message::Body.
$obj->encode( %options )
See encode in Mail::Message::Body::Encode.
$obj->encoded
See encoded in Mail::Message::Body::Encode.
$obj->eol( ['CR'|'LF'|'CRLF'|'NATIVE'] )
See eol in Mail::Message::Body.
$obj->foreachComponent( CODE )

Execute the CODE for each component of the message: the preamble, the epilogue, and each of the parts.

Each component is a body and is passed as second argument to the CODE. The first argument is a reference to this multi-parted body. The CODE returns a body object. When any of the returned bodies differs from the body which was passed, then a new multi-part body will be returned. Reference to the not-changed bodies and the changed bodies will be included in that new multi-part.

» Example:
 my $checked = $multi->foreachComponent(sub {$_[1]->check});
$obj->foreachLine( (CODE) )

It is NOT possible to call some code for each line of a multipart, because that would not only inflict damage to the body of each message part, but also to the headers and the part separators.

» Error: You cannot use foreachLine on a multipart

foreachLine() should be used on decoded message bodies only, because it would attempt to modify part-headers and separators as well, which is clearly not acceptible.

$obj->stripSignature( %options )

Removes all parts which contains data usually defined as being signature. The MIME::Type module provides this knowledge. A new multipart is returned, containing the remaining parts. No %options are defined yet, although some may be specified, because this method overrules the stripSignature method for normal bodies.

Option Defined in Default

max_lines

Mail::Message::Body::Construct

10

pattern

Mail::Message::Body::Construct

qr/^--\s?$/

result_type

Mail::Message::Body::Construct

<same as current>

max_lines => INTEGER|undef
pattern => REGEX|STRING|CODE
result_type => CLASS
$obj->unify( $body )
See unify in Mail::Message::Body::Encode.

The body

$obj->isDelayed
See isDelayed in Mail::Message::Body.
$obj->isMultipart
See isMultipart in Mail::Message::Body.
$obj->isNested
See isNested in Mail::Message::Body.
$obj->message( [$message] )
See message in Mail::Message::Body.
$obj->partNumberOf( $part )
See partNumberOf in Mail::Message::Body.

About the payload

$obj->charset
See charset in Mail::Message::Body.
$obj->checked( [BOOLEAN] )
See checked in Mail::Message::Body.
$obj->contentId( [STRING|$field] )
See contentId in Mail::Message::Body.
$obj->description( [STRING|$field] )
See description in Mail::Message::Body.
$obj->disposition( [STRING|$field] )
See disposition in Mail::Message::Body.
$obj->dispositionFilename( [$directory] )
See dispositionFilename in Mail::Message::Body::Encode.
$obj->isBinary
See isBinary in Mail::Message::Body::Encode.
$obj->isText
See isText in Mail::Message::Body::Encode.
$obj->mimeType
See mimeType in Mail::Message::Body.
$obj->nrLines
See nrLines in Mail::Message::Body.
$obj->size
See size in Mail::Message::Body.
$obj->transferEncoding( [STRING|$field] )
See transferEncoding in Mail::Message::Body.
$obj->type( [STRING|$field] )
See type in Mail::Message::Body.

Access to the payload

$obj->boundary( [STRING] )

Returns the boundary which is used to separate the parts in this body. If none was read from file, then one will be assigned. With STRING you explicitly set the boundary to be used.

$obj->endsOnNewline
See endsOnNewline in Mail::Message::Body.
$obj->epilogue

Returns the epilogue; the text after the last message part (after the last real attachment). The epilogue is stored in a BODY object, and its encoding is taken from the general multipart header.

$obj->file
See file in Mail::Message::Body.
$obj->lines
See lines in Mail::Message::Body.
$obj->part( $index )

Returns only the part with the specified $index. You may use a negative value here, which counts from the back in the list. Parts which are flagged to be deleted are included in the count.

» Example:
 $message->body->part(2)->print;
 $body->part(1)->delete;
$obj->parts( [<'ALL'|'ACTIVE'|'DELETED'|'RECURSE'|$filter>] )

Return all parts by default, or when ALL is specified. ACTIVE returns the parts which are not flagged for deletion, as opposite to DELETED. RECURSE descents into all nested multiparts to collect all parts.

You may also specify a code reference which is called for each nested part. The first argument will be the message part. When the code returns true, the part is incorporated in the return list.

» Example:
 print "Number of attachments: ",
     scalar $message->body->parts('ACTIVE');

 foreach my $part ($message->body->parts) {
     print "Type: ", $part->get('Content-Type');
 }
» Error: Unknown criterium $what to select parts.

Valid choices fdr part selections are ALL, ACTIVE, DELETED, RECURSE or a code reference. However, some other argument was passed.

$obj->preamble

Returns the preamble; the text before the first message part (before the first real attachment). The preamble is stored in a BODY object, and its encoding is taken from the multipart header.

$obj->print( [$fh] )
See print in Mail::Message::Body.
$obj->printEscapedFrom( $fh )
See printEscapedFrom in Mail::Message::Body.
$obj->string
See string in Mail::Message::Body.
$obj->stripTrailingNewline
See stripTrailingNewline in Mail::Message::Body.
$obj->write( %options )
See write in Mail::Message::Body.

Internals

$obj->addTransferEncHandler( $name, <$class|$object> )
$class->addTransferEncHandler( $name, <$class|$object> )
See addTransferEncHandler in Mail::Message::Body::Encode.
$obj->contentInfoFrom( $head )
See contentInfoFrom in Mail::Message::Body.
$obj->contentInfoTo( $head )
See contentInfoTo in Mail::Message::Body.
$obj->fileLocation( [$begin, $end] )
See fileLocation in Mail::Message::Body.
$obj->getTransferEncHandler( $type )
See getTransferEncHandler in Mail::Message::Body::Encode.
$obj->isModified
See isModified in Mail::Message::Body.
$obj->load
See load in Mail::Message::Body.
$obj->modified( [BOOLEAN] )
See modified in Mail::Message::Body.
$obj->moveLocation( [$distance] )
See moveLocation in Mail::Message::Body.
$obj->read( $parser, $head, $bodytype, [$chars, [$lines]] )
See read in Mail::Message::Body.

Error handling

$obj->AUTOLOAD
See AUTOLOAD in Mail::Message::Body.
$obj->addReport( $object )
See addReport in Mail::Reporter.
$obj->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )
$class->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level, $callback] )
See defaultTrace in Mail::Reporter.
$obj->errors
See errors in Mail::Reporter.
$obj->log( [$level, [$strings]] )
$class->log( [$level, [$strings]] )
See log in Mail::Reporter.
$obj->logPriority( $level )
$class->logPriority( $level )
See logPriority in Mail::Reporter.
$obj->logSettings
See logSettings in Mail::Reporter.
$obj->notImplemented
See notImplemented in Mail::Reporter.
$obj->report( [$level] )
See report in Mail::Reporter.
$obj->reportAll( [$level] )
See reportAll in Mail::Reporter.
$obj->trace( [$level] )
See trace in Mail::Reporter.
$obj->warnings
See warnings in Mail::Reporter.

Cleanup

$obj->DESTROY
See DESTROY in Mail::Reporter.