Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

perl win32::OLE outlook append the email subject to end of each line of the email body.

by john.tm (Scribe)
on Dec 13, 2014 at 04:26 UTC ( [id://1110246]=perlquestion: print w/replies, xml ) Need Help??

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?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1110246]
Approved by Old_Gray_Bear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2024-04-25 06:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found