Better Header Control with Mail::Send
Mail::Send is built on top of Mail::Mailer, which
means that you can also choose the mail program that sends the mail.
Mail::Send has implemented the methods to
, cc
,
bcc
, and subject
to replace the %headers
hash used in Mail::Mailer.
Mail::Send uses the open
method to open the mail program for
output; it is built on Mail::Mailer’s new
method, so that:
# Start mailer and output headers $fh = $msg->open('sendmail');
serves the same purpose as:
# Use sendmail for mailing $mailer = Mail::Mailer->new('sendmail)';
This code tells Mail::Send to use sendmail as the mail program.
Mail::Send also provides the set
and add
functions, which assign a value to a
header tag and append a value to a header tag, respectively. The
set
function takes two
arguments—a header tag and a value—and is used like this:
$msg->set($scalar, @array);
Therefore, to address a message to you@mail.somename.com:
$msg->set('To', 'you@mail.somename.com');
The above sets the To
header to you@mail.somename.com; however, the
following sets the To
header to
postmaster@mail.somename.com and
you@mail.somename.com because they represent an
array of values:
$msg->set('To', ('you@mail.somename.com', 'postmaster@mail.somename.com'));
You might think that you could use the set
function as follows to add multiple
values to a header value:
$msg->set('To', 'you@mail.somename.com'); $msg->set('To', 'someone@their.mailaddress.com');
However, set
doesn’t append information from one call to another, and the above ...
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.