The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# this is a example

use Mail::Cclient qw(rfc822_output);

my @attachs = (
	{
		content_type => "image/gif",
		filename     => "image.gif",
		encoding     => "binary",
		path         => "files/image.gif",
	},
	{
		content_type => "image/jpeg",
		filename     => "image.jpg",
		encoding     => "binary",
		path         => "files/image.jpg",
	},
);

my $envelope = {
	from    => "hdias@aeiou.pt",
	to      => "xyz@perl.com",
	cc      => "abc@perl.com",
	subject => "another test",
};
        
my $data = "bla bla bla";
my $signature = "\n\n--\n--Henrique Dias--\n";

my $body = {
	content_type => "text/plain",
	encoding     => "quoted-printable",
	data         => $data . $signature,
}

my $i = 0;
my $part = [];
for my $attach (@attachs) {
	$part->[$i++] = {
		content_type => $attach->{'content_type'},
		disposition  => {
			type      => "attachment",
			parameter => [{
				attribute => "filename",
				value     => $attach->{'filename'},
			}],
		},
		encoding     => $attach->{'encoding'},
		path         => $attach->{'path'},
		parameter    => [{
			attribute => "name",
			value     => $attach->{'filename'},
		}],
	};
}
if(scalar(@{$part})) {
	unshift(@{$part}, $body);
	$body = {
		content_type => "multipart/mixed",
		part         => $part,
	};
}

open(FILE, ">tmp.rfc822") or die "$!\n";
my $fh = *FILE;
rfc822_output(
	filehandle  => $fh,
	envelope    => $envelope,
	body        => $body,
);
seek($fh, 0, 0);
local $/ = undef;
my $text = <$fh>;
close(FILE);
$smtp->close();

# Append the message to mailbox
my $msg2mb = "postponed-msgs";
my $mailbox = "{mail.aeiou.pt/imap}mail/$msg2mb";
$cclient->append($mailbox, $text);

exit(0);