note
esskar
hi,
i tried to cleanup your code
<code>
use strict; # safety first
use Net::SMTP;
my $hostname = `hostname`;
my $Log_File = "E:\\Backups\\LOGs\\Sync_Import.log";
open( STDOUTSAVE, ">&STDOUT" ); # save the original STDOUT
open( STDOUT, ">>$Log_File" ) or die "Unable to open $Log_File: $!";
# open (Output, "multiutil <cmd>|");
# do not see the nameing; better
open( PIPE, "multiutil <cmd>|" ) or do {
# save the last open error
my $err = $!;
# set back to saved STDOUT
open( STDOUT, ">&STDOUTSAVE" );
die "Unable to open pipe: $err";
};
my @OutputDetails = map { s!\r?\n!!g; "$_\n" } <PIPE>;
# add the line to the front
unshift @OutputDetails, "This message sent by the Import Process\n\n";
close PIPE; # close the handle again
Mail_Msg();
# set back to saved STDOUT
open( STDOUT, ">&STDOUTSAVE" );
sub Mail_Msg {
my $smtp = Net::SMTP->new("mail.company.com");
$smtp->mail('ALIAS@company.com');
$smtp->to('ALIAS@company.com');
$smtp->data();
$smtp->datasend(" Subject: Job Failure \n ");
$smtp->datasend(
<<EOF_MAIL
@OutputDetails
EOF_MAIL
);
$smtp->datasend();
$smtp->quit();
}
</code>
but did not really test it. hope you get the idea.<br>
have fun.
<br><br>
UPDATE: minor code changes
557861
557861