john.tm has asked for the wisdom of the Perl Monks concerning the following question:

HI I have a script that matches part of an email subject line, then prints the email body to an output file for sorting etc, the emails are then moved to a sub folder. what i would like to do is get the last word of the subject line (which is a name) then append that word to the end of each line of the email body. This is what i have at present, it successfully prints the email subject and Email body to an output file, then moves them to a new folder. but i am stuck on appending $name to the end of each line.
#!/usr/bin/perl use strict; use warnings; #use diagnostics; use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook'; my $fileEmail = 'c:\\r-test.txt'; open( my $email_fh, ">", $fileEmail ) or die $!; my $outlook = Win32::OLE->new('Outlook.Application') or die "Failed Opening Outlook."; my $namespace = $outlook->GetNamespace("MAPI"); my $folder = $namespace->Folders("Inbox"); my $tofolder = $namespace->Folders("Archive"); my $items = $folder->Items; foreach my $msg ( $items->in ) { if ( $msg->{Subject} =~ m/^Test email extract for (.*)/ ) { my @name = split(/ /, $msg->{Subject}); my $name = $1; print "$name \n"; print {$email_fh} $msg->{Body}; $msg->Move($tofolder ); } }
  • Comment on perl win32::OLE outlook append the email subject to end of each line of the email body.
  • Download Code

Replies are listed 'Best First'.
Re: perl win32::OLE outlook append the email subject to end of each line of the email body.
by vkon (Curate) on Dec 13, 2014 at 11:58 UTC
    remove this line
    my @name = split(/ /, $msg->{Subject});
    it spoils $1 that is used a line after;
    yet to append something to each line of body you need smth like this
    print $email_fh $msg->{Body}=~s/^/foobar $name /rgm;
Re: perl win32::OLE outlook append the email subject to end of each line of the email body.
by Anonymous Monk on Dec 13, 2014 at 07:50 UTC

    but i am stuck on appending $name to the end of each line.

    Where is that in your program, at what line in your program is the appending portion where you're stuck?