ANNOUNCE: new module: Mail::SendVarious

ANNOUNCE: new module: Mail::SendVarious

am 27.10.2006 05:08:31 von muir

Newly release on cpan...

NAME
Mail::SendVarious - send mail via STMP and sendmail

SYNOPSIS
use Mail::SendVarious;

sendmail(
from => 'user@host',
From => 'First Last',
to => 'user@host, user@host',
cc => 'user@host, user@host',
xheader => 'Some header stuff',
body => 'Some body stuff here'
);

sendmail(
envelope_to => 'user@host, user@host',
message => 'Complete header and body stuff',
);

sendmail(
envelope_to => 'user@host, user@host',
header => 'Complete header stuff',
body => 'Complete body stuff',
);

use Mail::SendVarious qw(make_message);
($from, $message, @envelope_to) = make_message(%args);

DESCRIPTION
Mail::SendVarious will try to send mail multiple ways. First it tries
via SMTP. If that doesn't work then it tries using "/usr/sbin/sendmail".

The "sendmail()" function can put together a message header or it you
can hand it one. Here are the options it can take:

envelope_from Sets the sender email address. If creating a header, also
sets the email address in the "From:" header if there is
no "from" option.

from Sets the envelope sender email address if "envelope_from"
isn't set. If creating a header, also sets the email
address in the "From:" header.

From Set the name over the sender in the "From:" header.

envelope_to Sets who the message is sent to.

to Sets the "To:" header. Also sets who the message is sent
to if "envelope_to" isn't set.

cc Sets the "Cc:" header. Also adds who the message is sent
to if "envelope_to" isn't set.

bcc Adds to who the message is sent to.

subject Specifies the "Subject:" header.

xheader Specifies extra header lines to be added if a header is
generated.

header Specifies the complete message header. "xheader" will be
ignored. No "To:", "From:", "Cc:" or "Subject:" header
will be generated.

body Specifies the complete message body.

message Specifies the complete message. "header" and "body"
arguments will be ignored. No "To:", "From:", "Cc:" or
"Subject:" header will be generated.

build_header Specifies if a header should be generated with "To:",
"From:", "Cc:" and "Subject:". This overrides what what
otherwise might happen.

debuglogger Specifies a function to call for debug output. If not
set, no debug output is generated.

errorlogger Specifies a function to call for error output. If not
set, errors are reported on "STDERR".

hostlist Specifies a list of hosts to try to send to via SMTP.
This should be an array refrence. If not set,
@Mail::SendVarious::mail_hostlist is used. The default
for @Mail::SendVarious::mail_hostlist is 127.0.0.1.

mail_command Specifies a command to use if sending via SMTP fails.
This should be an array refrence. If not set,
@Mail::SendVarious::mail_command is used. The default for
@Mail::SendVarious::mail_command is "/usr/sbin/sendmail
-oeml -i".

no_rejects Normally when sending via SMTP, Mail::SendVarious will
skip over any recipients that are rejected. Sent
"no_rejects" and the SMTP server will be skipped instead.
If "no_rejects" is not set, then any rejected recipients
will end up in @Mail::SendVarious::to_rejected.

The return value from "sendmail()" is true if the message was sent and
false otherwise. If the message was not sent, then the variable
"Mail::SendVarious::mail_error" will be set to a description of the
problem.

EXPORT_OK
In addition to the standard export item of the "sendmail()" function,
the following are available explicitly:

$mail_error The last error.

make_message() An additional function "make_message()" is provided. It
takes the same arguemtns as "sendmail()" but does not
send mail. It just generates the message.

The following two snippets do the same thing:

{
my ($from, $message, @envelope_to) = make_message(%args);
sendmail(
envelope_from => $from,
envelope_to => \@envelope_to,
message => $message,
);
}

and

sendmail(%args);

@to_rejected Any recipients that were rejected by the SMTP server.
(Only if "no_rejects" isn't set).

@mail_hostlist "(qw(127.0.0.1))"

@mail_command "(qw(/usr/sbin/sendmail -oeml -i))"

OTHER MODULES THAT DO SIMILAR THINGS
Send mail via SMTP: Mail::SMI, Mail::Transport::SMTP, Mail::SendEasy,
Mail::Sender, Mail::Send, Mail::Sendmail.

Send mail via /usr/sbin/sendmail: Mail::Transport::Sendmail.

Send via various methods (but only one at a time): Mail::Mailer.

Manage an outgoing mail spool: Mail::Spool.

AUTHOR
Copyright (C) 2002-2006, David Muir Sharnoff This
module may be used and copied on the same terms as Perl itself.

--