NAME
Email::MIME::Creator - Email::MIME constructor for starting anew.
SYNOPSIS
use Email::MIME::Creator;
use IO::All;
# multipart message
my @parts = (
Email::MIME->create(
attributes => {
filename => "report.pdf",
content_type => "application/pdf",
encoding => "quoted-printable",
name => "2004-financials.pdf",
},
body => io( "2004-financials.pdf" )->all,
),
Email::MIME->create(
attributes => {
content_type => "text/plain",
disposition => "attachment",
charset => "US-ASCII",
},
body => "Hello there!",
),
);
my $email = Email::MIME->create(
header => [ From => 'casey@geeknest.com' ],
parts => [ @parts ],
);
# nesting parts
$email->parts_set(
[
$email->parts,
Email::MIME->create( parts => [ @parts ] ),
],
);
# standard modifications
$email->header_set( 'X-PoweredBy' => 'RT v3.0' );
$email->header_set( To => rcpts() );
$email->header_set( Cc => aux_rcpts() );
$email->header_set( Bcc => sekrit_rcpts() );
# more advanced
$_->encoding_set( 'base64' ) for $email->parts;
# Quick multipart creation
my $quicky = Email::MIME->create(
header => [
From => 'my@address',
To => 'your@address',
],
parts => [
q[This is part one],
q[This is part two],
q[These could be binary too],
],
);
print $email->as_string;
*rcpts = *aux_rcpts = *sekrit_rcpts = sub { 'you@example.com' };
DESCRIPTION
Methods
- create
-
my $single = Email::MIME->create( header => [ ... ], attributes => { ... }, body => '...', ); my $multi = Email::MIME->create( header => [ ... ], attributes => { ... }, parts => [ ... ], );This method creates a new MIME part. The
headerparameter is a lis of headers to include in the message.attributesis a hash of MIME attributes to assign to the part, and may override portions of the header set in theheaderparameter.The
partsparameter is a list reference containingEmail::MIMEobjects. Elements of thepartslist can also be a non-reference string of data. In that case, anEmail::MIMEobject will be created for you. Simple checks will determine if the part is binary or not, and all parts created in this fashion are encoded withbase64, just in case.partstakes precedence overbody, which will set this part's body if assigned. So, multi part messages shold use thepartsparameter and single part messages should usebody.Back to
attributes. The hash keys correspond directly to methods or modifying a message fromEmail::MIME::Modifier. The allowed keys are: content_type, charset, name, format, boundary, encoding, disposition, and filename. They will be mapped to"$attr\_set"for message modification.
SEE ALSO
Email::MIME, Email::MIME::Modifier, Email::Simple::Creator, IO::All or File::Slurp (for file slurping to create parts from strings), perl.
AUTHOR
Casey West, <casey@geeknest.com>.
COPYRIGHT
Copyright (c) 2004 Casey West. All rights reserved.
This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.