Uses Win32::OLE to edit your Outlook mail from Vim (here,
gvim). Not very sophisticated, but demonstrates the use of Win32::OLE to control the Outlook Object model.
To use:
- Save the script as vmail.pl
- Run pl2bat vmail.pl
- Move vmail.bat into your PATH
- When you have an Outlook message window open, do Start - Run - vmail
- Make your changes, save and exit.
UPDATE: Modified so that if there is no active
item, a new mail message will be created.
use strict;
use warnings;
use Win32::OLE;
use File::Temp qw/ tempfile tempdir /;
my $dir = tempdir( CLEANUP => 1 );
my ($fh, $filename) = tempfile( DIR => $dir, SUFFIX=> '.mail' );
my $out = Win32::OLE->new('Outlook.Application') or die "oops\n";
my ($ins, $ai);
if (! (($ai=$out->Application->ActiveInspector) && ($ins=$ai->CurrentI
+tem))) {
$ins=$out->CreateItem(0); # 0 = olMailItem
$ins->Display;
};
print $fh $ins->Body;
close $fh;
system "gvim $filename";
open ($fh, $filename) or die;
local $/=undef;
my $body=<$fh>;
$ins->{Body}=$body;