in reply to Adding custom header to Mail::Outlook::Message

I don't have Outlook set up to test this but a couple of ideas to try

use strict; use warnings; use Win32::OLE 'in'; use Win32::OLE::Const 'Microsoft Outlook'; use Mail::Outlook; my %hash = ( To => 'user@mail.com', Subject => 'Blah Blah Blah', Body => 'Yadda Yadda Yadda', ); my $outlook = new Mail::Outlook(); my $folder = $outlook->folder('Drafts'); my $message = $outlook->create(%hash); my $doc = $message->{'message'}; # type olText=1 my $uprops = $doc->UserProperties; my $newprop1 = $uprops->Add('X-ICCategory',1); $newprop1->{'value'} = 2; for my $prop (in $uprops){ printf "%s %s\n",$prop->{'name'},$prop->value; } my $PropName = 'http://schemas.microsoft.com/mapi/string/' .'{00020386-0000-0000-C000-000000000046}/' .'X-ICCategory'; my $pa = $doc->PropertyAccessor; $pa->SetProperties($PropName, 2 );
poj

Replies are listed 'Best First'.
Re^2: Adding custom header to Mail::Outlook::Message
by maskull (Novice) on Mar 13, 2017 at 09:52 UTC
    Thanks. Sadly that gives me this:
    X-ICCategory 2 Can't call method "SetProperties" on an undefined value at .. line ..

      What does running this give

      use strict; use Win32::OLE; use Mail::Outlook; my $mail = new Mail::Outlook(); my $message = $mail->create(); my $Outlook = $message->{'outlook'}; print " Perl $] Win32::OLE Version ${Win32::OLE::VERSION} Mail::Outlook ${Mail::Outlook::VERSION}; Outlook $Outlook->{'Version'}\n";

      This is what I have

      Perl               5.016001
      Win32::OLE Version 0.1709
      Mail::Outlook      0.25;
      Outlook            14.0.0.7172
      
      poj
        Perl 5.014002
        Win32::OLE Version 0.1709
        Mail::Outlook 0.25;
        Outlook 15.0.0.4859