#!Perl -w use strict; use Mail::Sender; use Win32; use Win32::Process; use File::Basename; my $cmd = "C:\\Program Files\\pkzip.exe"; my $time = localtime; my $subj_line = "Price Change Worksheet for $time"; my %file = ('me@here.com'=>'P:\\TEXT\\ABC\\PCW-010.TXT','him@home.com'=>'P:\\TEXT\\ABC\\PCW-021.TXT','her@work.com'=>'P:\\TEXT\\ABC\\PCW-024.TXT'); my $work = 'me@here.com'; foreach (keys %file) { my ($name,$path,$suffix)=fileparse($file{$_},"\.[^.]*"); my $filename = "C:\\a\\$name"; sub print_error() { return Win32::FormatMessage( Win32::GetLastError() ); } my $root = $file{$_}; Win32::Process::Create(my $processobj, "$cmd", "pkzip $filename $root", 0, DETACHED_PROCESS, ".") or print_error(); my $sender = new Mail::Sender( {from => $work ,smtp => 'mail.email.com'}) or die "$Mail::Sender::Error\n"; $sender->MailFile( {to => $_, subject => $subj_line, msg => "This is a test for \n zip files.", file => $filename}) and print "Mail sent OK." || die "$Mail::Sender::Error\n"; $sender->Close; }