#!c:/perl/bin/perl use locale; use warnings; use Win32::OLE; use Win32::OLE::Const; use Win32::OLE::Const 'Microsoft Outlook'; $MailProps{'to'} = "sendto\@myserver.com"; $MailProps{'cc'} = "sendcc\@myserver.com"; $MailProps{'bcc'} = "sendbcc\@myserver.com"; $MailProps{'importance'} = 2; # 2=high, 1=normal, 0=low $MailProps{'subject'} = "Message subject"; $MailProps{'body'} = "Message body"; @Attachement = ("d:\\test.doc"); $MailProps{'attachments'} = \@Attachement; $Error = &OUT_SendMail (\%MailProps); print "Return error : ".$Error."\n"; exit; sub OUTLOOK_SendMail { my ($rMailProps) = @_; my $Application = new Win32::OLE('Outlook.Application'); my $MailItem = $Application->CreateItem(0); # 0 = mail item. unless (defined $MailItem) { print "Outlook is not running, cannot send mail.\n" if $Debug; return 1; } # Create a Redemption object my $SafeMailItem = new Win32::OLE('Redemption.SafeMailItem'); unless (defined $SafeMailItem) { print "Redemption is not running, cannot send mail.\n" if $Debug; return 1; } # Set Item property of the Redemption object $SafeMailItem->{'Item'} = $MailItem; $SafeMailItem->{'To'} = join(";", split(/[ ,;]+/, $rMailProps->{'to'})); $SafeMailItem->{'Cc'} = $rMailProps->{'cc'} if (exists $rMailProps->{'cc'}); $SafeMailItem->{'Bcc'} = $rMailProps->{'bcc'} if (exists $rMailProps->{'bcc'}); $SafeMailItem->{'Subject'} = $rMailProps->{'subject'} || '[No Subject]'; $SafeMailItem->{'Body'} = $rMailProps->{'body'} || "\r\n"; $SafeMailItem->{'Importance'} = (exists $rMailProps->{'importance'})? $rMailProps->{'importance'} : 1; if (exists $rMailProps->{'attachments'}) { my $attach = $SafeMailItem->{'Attachments'}; foreach my $attach_file (@{ $rMailProps->{'attachments'} }) { if ($attach_file and -f $attach_file) { $attach->add($attach_file); } } } $SafeMailItem->Send(); return 0; }