#!/bin/perl use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook'; # or 'Microsoft Outlook 9.0 Object Library'; # Const module defines many usefule constants - like olFolderContacts , etc. my $Outlook = Win32::OLE->GetActiveObject('Outlook.Application') or die "oops 1"; my $namespace = $Outlook->GetNamespace("MAPI"); my $folder = $namespace->GetDefaultFolder(olPublicFoldersAllPublicFolders); my $items = $folder->Items; print STDERR "Folder: ", $folder->Name,"\n"; print STDERR "Total entries: ",$items->Count,"\n"; print_folders($folder); sub print_folders { my $folder = shift; my $subfolderlevel=0; print "Folder: " . $folder->Name , $subfolderlevel,"\n"; foreach my $fld (in $folder->(UserProperties)) { print "Field Name", $fld->{Name},"\n"; print "Field Value", $fld->Value, "\n"; } if ($folder->Folders->Count) { $subfolderlevel++; foreach my $i (1..$folder->Folders->Count) { print_folders($folder->Folders($i)); } } }