Category: | Win32 |
Author/Contact Info | Rhet Turnbull RhetTbull at hotmail.com |
Description: | Send an email and, optionally, attachments using Win32::OLE and Microsoft Outlook. |
#!/cygdrive/c/Perl/bin/perl.exe -w #Win32 perl script to send an email and (optional) attachments via Mic +rosoft Outlook use warnings; use strict; use Win32::OLE; #get parameters from command line #e.g. send_outlook.pl spam_me@hotmail.com "get rich quick!" "send me m +oney and I make you rich!" "1337spammer@hotmail.com" "c:\melissa.exe" #first (and only required param) is "To:" address #second is subject #third is text for message body #fourth is CC: address (you can leave this blank, e.g "" on the comma +nd line) #rest are file attachments #make sure you give the FULL path to the attachment or it may fail my $to = shift || die "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'); die "Unable to start Outlook instance: $!" if !defined $mail; my $item = $mail->CreateItem(0); die "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) { #make sure the attachment is really there die "Missing attachment $attach: $!" if !-e $attach; my $attachments = $item->Attachments(); $attachments->Add($attach); } #send it $item->Send(); my $error = Win32::OLE->LastError(); print STDERR "Win32::OLE error: $error" if $error; |
Back to
Code Catacombs