sub send_outlook_mail { #use OLE and Outlook to send an email message my $to = shift || croak "required parameter (to address) missing"; my $subject = shift; $subject = "" if not defined $subject; my $body = shift; $body = "" if not defined $body; my $cc = shift; $cc = "" if not defined $cc; #get new Outlook instance my $mail = new Win32::OLE('Outlook.Application'); croak "Unable to start Outlook instance: $!" if !defined $mail; my $item = $mail->CreateItem(0); croak "Unable to create mail item: $!" if !defined $item; $item->{'To'} = $to; $item->{'CC'} = $cc; $item->{'Subject'} = $subject; $item->{'Body'} = $body; #rest of args are file attachments foreach my $attach (@ARGV) { # print STDERR "File attachment: $attach\n"; #make sure the attachment is really there croak "Missing attachment $attach: $!" if !-e $attach; my $attachments = $item->Attachments(); $attachments->Add($attach); } #send it $item->Send(); my $error = Win32::OLE->LastError(); carp "Win32::OLE error: $error" if $error; } #sub send_outlook_mail