Ask a `Re: [ale] stupid perl question', get quoted the FAQ :)
Fletch
fletch at phydeaux.org
Wed Jul 18 10:47:47 EDT 2001
% perldoc -q 'How do I send mail'
Found in /usr/lib/perl5/5.6.1/pod/perlfaq9.pod
How do I send mail?
Use the "sendmail" program directly:
open(SENDMAIL, "|/usr/lib/sendmail -oi -t -odq")
or die "Can't fork for sendmail: $!\n";
print SENDMAIL <<"EOF";
From: User Originating Mail <me\@host>
To: Final Destination <you\@otherhost>
Subject: A relevant subject line
Body of the message goes here after the blank line
in as many lines as you like.
EOF
close(SENDMAIL) or warn "sendmail didn't close nicely";
The -oi option prevents sendmail from interpreting a line
consisting of a single dot as "end of message". The -t
option says to use the headers to decide who to send the
message to, and -odq says to put the message into the
queue. This last option means your message won't be imme-
diately delivered, so leave it out if you want immediate
delivery.
Alternate, less convenient approaches include calling mail
(sometimes called mailx) directly or simply opening up
port 25 have having an intimate conversation between just
you and the remote SMTP daemon, probably sendmail.
Or you might be able use the CPAN module Mail::Mailer:
use Mail::Mailer;
$mailer = Mail::Mailer->new();
$mailer->open({ From => $from_address,
To => $to_address,
Subject => $subject,
})
or die "Can't open: $!\n";
print $mailer $body;
$mailer->close();
The Mail::Internet module uses Net::SMTP which is less
Unix-centric than Mail::Mailer, but less reliable. Avoid
raw SMTP commands. There are many reasons to use a mail
transport agent like sendmail. These include queueing, MX
records, and security.
--
Fletch | "If you find my answers frightening, __`'/|
fletch at phydeaux.org | Vincent, you should cease askin' \ o.O'
770 933-0600 x211(w) | scary questions." -- Jules =(___)=
| U
--
To unsubscribe: mail majordomo at ale.org with "unsubscribe ale" in message body.
More information about the Ale
mailing list