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 to "mail". Mail::Mailer will search for "mailx", "Mail" and
        "mail" (in this order).

    "sendmail"
        Use the "sendmail" program to deliver the mail. $command is the path
        to "sendmail".

    "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;

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

SEE ALSO
    Mail::Send

AUTHORS
    Maintained by Graham Barr <gbarr@pobox.com>

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

    For support please contact comp.lang.perl.misc or Graham Barr
    <gbarr@pobox.com>

