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 ...