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 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 Copyright (C) 2011-2012, Google Inc. This module may be used and copied on the same terms as Perl itself.