Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

(Win32): vmail - edit Outlook email in VIM

by osfameron (Hermit)
on May 24, 2002 at 12:06 UTC ( #169029=snippet: print w/replies, xml ) Need Help??
Description: 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;
Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://169029]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2019-08-17 14:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If you were the first to set foot on the Moon, what would be your epigram?






    Results (134 votes). Check out past polls.

    Notices?