http://www.perlmonks.org?node_id=169029

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;