use strict;
use warnings;
use Email::MIME::Creator;
use Test::More tests => 5;
my @inner = (
Email::MIME->create(
attributes => {
content_type => "text/plain",
disposition => "attachment",
charset => "US-ASCII",
},
body => "HELLO THERE!",
),
Email::MIME->create(
attributes => {
content_type => "text/plain",
disposition => "attachment",
charset => "US-ASCII",
},
body => "GOODBYE THERE!",
),
);
my @outer = Email::MIME->create(
attributes => {
content_type => "multipart/alternative",
disposition => "attachment",
charset => "US-ASCII",
},
parts => [ @inner ],
);
my $parts = Email::MIME->create(
attributes => {
content_type => 'multipart/alternative',
disposition => 'attachment',
},
parts => [ @outer ],
);
;
my $email = Email::MIME->create(
attributes => { content_type => 'multipart/related' },
header => [ From => 'example@example.example.com' ],
parts => [ $parts ],
);
like(
$email->as_string,
qr/HELLO THERE/,
"deeply nested content still found in stringified message",
);
like(
$email->as_string,
qr/GOODBYE THERE/,
"deeply nested content still found in stringified message",
);
is(scalar($email->parts),1,'main contains 1 part');
is(scalar(($email->parts)[0]->parts),1,'outer contains 1 part');
is(scalar((($email->parts)[0]->parts)[0]->parts),2,'inner contains 2 parts');