#!/usr/bin/perl use strict; use warnings; eval("use Mail::Sender;"); if ($@) { die "ERROR: Mail::Sender not installed.\n"; } ########## Variables ########## our(@lin,$DEBUG); my($VER,$lpos,$lcnt,$filename,$filename2,$outfile,$basefn,$hashfn,$SEP); my($pcnt,$errcnt); my(@a,@b,@k,@l,$i,$j,$k,$lin,$s,$t,$z,$maxwrit,@written,%data,@dataf); my($code,$opentag,$closetag,$page); my($errfile,$fn); my($day,$mo,$hr,$min,$year,$model); my(@errors); mailsender('from@email.com','out/outfile.xls','','Your file is ready'); exit; # Exit main #################################################################### # Send one email for a test. # Uses Mail::Sender. # Jul 1, 2014. DOES NOT WORK. Server timeout? sub mailsender {my($replyaddr,$fnout,$log,$subjparam)=@_; my(@a,@b,$i,$j,$k,$procname,$s,$t); my(%data,$body,$divline,$fn,$hashcnt,$key,$err,$sender,$to); my($authuser,$authpw); $procname="mailsender"; $to='person@somewhere.com'; # DEBUG $divline="========================================"; $divline.="\n"; $authuser='user@gmail.com'; # Login name $authpw='password'; eval { $sender=new Mail::Sender { smtp=>'smtpout.gmailserver.net', port=>25, from=>'person@gmail.com', debug=>'debug.txt', debug_level=>2, authid=>$authuser, authpwd=>$authpw }; }; # eval if (($sender<0) or ($Mail::Sender::Error)) { $s="$procname ERROR: Could not make new Sender: $Mail::Sender::Error"; writeerr($s); return; } $body="Attached is your output file: $fnout\n"; $body.="Log follows. Look for lines that say ERROR.\n"; $body.=$divline; for ($i=0; $i<=$#errors; $i++) { $body.=$errors[$i]."\n"; } # for i $body.=$divline; $body.='.'; if (-e $fnout) { # Will return negative number on error. # Sometimes this doesn't work. $sender->MailFile( { to=>$to, subject=>$subjparam, msg=>$body, file=>$fnout, encoding=>'Quoted-printable' }); if ($sender<0) { die "$procname ERROR: Error Code was $sender. ERROR on MailFile: ". "$Mail::Sender::Error\n"; } } else { $s="$procname ERROR: $fnout does not exist."; writeerr($s); exit 1; } # Now close connection. $sender->Close(); if ($@) { writeerr("$procname ERROR: Could not make new Mail::Sender. $@"); exit 1; } else { $s=" $procname: Sent email to $to"; writeerr($s); } return; # mailsender } #################################################################### sub writeerr {my($l)=@_; #print ERRFILE "$l\n"; print "$l\n"; #push(@errors,$l); return; # writeerr } #################################################################### #################################################################### ####################################################################