#!/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::Err +or"; 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 MailFil +e: ". "$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 } #################################################################### #################################################################### ####################################################################
main::mailsender(testsmtp.pl:101): $sender->MailFile( main::mailsender(testsmtp.pl:102): { main::mailsender(testsmtp.pl:103): to=>$to, main::mailsender(testsmtp.pl:104): subject=>$subjparam, main::mailsender(testsmtp.pl:105): msg=>$body, main::mailsender(testsmtp.pl:106): file=>$fnout, main::mailsender(testsmtp.pl:107): encoding=>'Quoted-prin +table' DB<2> + Can't call method "opened" without a package or object reference at (e +val 27)[/usr/lib/perl5/site_perl/5.8.8/Mail/Sender.pm:359] line 46, < +GEN0> line 1. at (eval 27)[/usr/lib/perl5/site_perl/5.8.8/Mail/Sender.pm:359] line +46 Mail::Sender::DBIO::opened('Mail::Sender::DBIO=GLOB(0x9da9cfc) +') called at /usr/lib/perl5/site_perl/5.8.8/Mail/Sender.pm line 166 Mail::Sender::send_cmd('Mail::Sender::DBIO=GLOB(0x9da9cfc)', ' +EHLO xpp') called at /usr/lib/perl5/site_perl/5.8.8/Mail/Sender.pm li +ne 203 Mail::Sender::say_helo('Mail::Sender=HASH(0x9cbed00)', 'Mail:: +Sender::DBIO=GLOB(0x9da9cfc)') called at /usr/lib/perl5/site_perl/5.8 +.8/Mail/Sender.pm line 1070 Mail::Sender::Connect('Mail::Sender=HASH(0x9cbed00)') called a +t /usr/lib/perl5/site_perl/5.8.8/Mail/Sender.pm line 1578 Mail::Sender::OpenMultipart('Mail::Sender=HASH(0x9cbed00)', 'H +ASH(0x9cae270)') called at /usr/lib/perl5/site_perl/5.8.8/Mail/Sender +.pm line 1823 Mail::Sender::MailFile('Mail::Sender=HASH(0x9cbed00)', 'HASH(0 +x9c8a3f8)') called at testsmtp.pl line 101 main::mailsender('croberts@gilsongraphics.com', 'out/Storefron +tData69.xls', '', 'Your file is ready') called at testsmtp.pl line 42 Debugged program terminated. Use q to quit or R to restart,
In reply to Trouble sending a binary file using Mail::Sender by bulrush
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |