shambright has asked for the wisdom of the Perl Monks concerning the following question:

I have several perl scripts that send out email from www.mysite.com
open (MAIL, "|/usr/sbin/sendmail -t -Rhdrs"); &mail_outgoing_letter; close (MAIL);
How do I pipe this mail to another server on my network, say "mailserver.mysite.com"?

Replies are listed 'Best First'.
Re: How do I pipe to a different network server?
by rob_au (Abbot) on Aug 24, 2001 at 08:26 UTC
    To direct your outgoing mail through your ISP mail server rather than from the local installation of sendmail, you would do better to use some of the functions provided to you by the Mail::Mailer and Net::SMTP - For example:
     
    my ($smtp) = Mail::Mailer->new("smtp", Server => "127.0.0.1"); $smtp->open({ 'To' => $toaddress, 'From' => $fromaddress, 'Subject' => "subject", }); print $smtp "body\n\n"; $smtp->close;

     
    You would naturally need to change the IP address of 127.0.0.1 for that of your network mail server.
     
    An alternate method, would be still to use the local sendmail installation, but instead to set up the smarthost (DS) mail relaying in the configuration file such that all mail is forwarded through a mail server of your choice, rather than attempting direct mail delivery.
     
    Update : If you don't have rights to edit the main sendmail configuration file, you can specify an alternate configuration file with the -C command line switch or possibly specify the DS-smarthost option through the -O/o command line switch.
     

     
    Ooohhh, Rob no beer function well without!