NAME
Mail::Mailer - Simple interface to electronic mailing mechanisms
SYNOPSIS
use Mail::Mailer;
use Mail::Mailer qw(mail);
$mailer = new Mail::Mailer;
$mailer = new Mail::Mailer $type, @args;
$mailer->open(\%headers);
print $mailer $body;
$mailer->close;
DESCRIPTION
Sends mail using any of the built-in methods. You can alter the behaviour of a method by passing $command
to the new
method.
mail
-
Use the Unix system
mail
program to deliver the mail.$command
is the path tomail
. Mail::Mailer will search formailx
,Mail
andmail
(in this order). sendmail
-
Use the
sendmail
program to deliver the mail.$command
is the path tosendmail
. smtp
-
Use the
smtp
protocol via Net::SMTP to deliver the mail. The server to use can be specified in@args
with$mailer = new Mail::Mailer 'smtp', Server => $server;
The smtp mailer does not handle
Cc
andBcc
lines, neither theirResent-*
fellows. qmail
-
Use qmail's qmail-inject program to deliver the mail.
test
-
Used for debugging, this calls
/bin/echo
to display the data. No mail is ever sent.$command
is ignored.
Mail::Mailer
will search for executables in the above order. The default mailer will be the first one found.
ARGUMENTS
new
can optionally be given a $command
and $type
. $type
is one sendmail
, mail
, ... given above. The meaning of $command
depends on $type
.
open
is given a reference to a hash. The hash consists of key and value pairs, the key being the name of the header field (eg, To
), and the value being the corresponding contents of the header field. The value can either be a scalar (eg, gnat@frii.com
) or a reference to an array of scalars (eg, ['gnat@frii.com', 'Tim.Bunce@ig.co.uk']
).
TO DO
Assist formatting of fields in ...::rfc822:send_headers to ensure valid in the face of newlines and longlines etc.
Secure all forms of send_headers() against hacker attack and invalid contents. Especially "\n~..." in ...::mail::send_headers.
ENVIRONMENT VARIABLES
- PERL_MAILERS
-
Augments/override the build in choice for binary used to send out our mail messages.
Format:
"type1:mailbinary1;mailbinary2;...:type2:mailbinaryX;...:..."
Example: assume you want you use private sendmail binary instead of mailx, one could set
PERL_MAILERS
to:"mail:/does/not/exists:sendmail:$HOME/test/bin/sendmail"
On systems which may include
:
in file names, use|
as separator between type-groups."mail:c:/does/not/exists|sendmail:$HOME/test/bin/sendmail"
SEE ALSO
Mail::Send
AUTHORS
Maintained by Mark Overmeer <mailtools@overmeer.net>
Original code written by Tim Bunce <Tim.Bunce@ig.co.uk>, with a kick start from Graham Barr <gbarr@pobox.com>. With contributions by Gerard Hickey <hickey@ctron.com> Small fix and documentation by Nathan Torkington <gnat@frii.com>.