my $message = Mail::Message->new(...); # Some extensions implement sending: $message->send; $message->send(via => 'sendmail'); my $sender = Mail::Transport::SMTP->new(...); $sender->send($message);
See SYNOPSIS in Mail::Transport
Send a message to the destinations as specified in the header. The
Mail::Transport::Send
module is capable of autodetecting which of the
following modules work on your system; you may simply call send
without via
options to get a message transported.
Use sendmail to process and deliver the mail. This requires the
sendmail
program to be installed on your system. Whether this
is an original sendmail, or a replacement from Postfix does matter.
Use exim
to distribute the message.
Use qmail-inject
to distribute the message.
In this case, Perl is handling mail transport on its own. This is less desired but more portable than sending with sendmail or qmail. The advantage is that this sender is environment independent, and easier to configure. However, there is no daemon involved which means that your program will wait until the message is delivered, and the message is lost when your program is interrupted during delivery (which may take hours to complete).
Use the external mail
, mailx
, or Mail
programs to send the
message. Usually, the result is poor, because some versions of these
programs do not support MIME headers. Besides, these programs are
known to have exploitable security breaches.
See DESCRIPTION in Mail::Transport