2017-05-11 11 views
0

私のOutlookの受信トレイのすべてのフォルダをPerlで一覧表示するのに役立つ必要があります。私はこのコードを使って試しましたが、何も出力できませんでした。私はPerl初心者です。私はこのための簡単な解決策を見つけることができませんでした。PerlでOutlookフォルダを一覧表示するには?

#!/usr/bin/perl 
use Win32::OLE qw(in with); 
use Win32::OLE::Const 'Microsoft Outlook'; 
use Win32::OLE::Variant; 

my $OL = Win32::OLE->GetActiveObject('Outlook.Application'); 

my $namespace = $OL->GetNamespace('MAPI'); 

my $all_folders = $namespace->all_folders(); 

print $all_folders; 
+0

[あなたはこれを参照できます](http://search.cpan.org/~duncan/Mail-Outlook-0.23/lib/Mail/Outlook.pm#NAME) – ssr1012

+0

私は運を試みましたが、コード内にall_foldersメソッドがあります –

答えて

0

私は最終的に私の問題の解決になります。私は職場で見通しを使用しているため、事前定義された設定がいくつかあります。私たちは他の国の同僚とそれをテストし、同じ会社で働いていますが、彼の見通しには異なる設定があります。私の場合は3つのフォルダがあります。

[email protected] アーカイブ [email protected]

私のアドレスが二回そこにリストされている理由私はわからないが、どのような方法は、私がしなければならなかったすべては私に接続するためにあります電子メールアドレスを入力し、すべてのフォルダを一覧表示します。ここでの例は、INBOXフォルダ内のすべてのサブフォルダを一覧表示することです。

use strict; 

#use warnings; 


### This Perl Modules should be installed! 

use Win32::OLE; 
use Win32::OLE::Const 'Microsoft Excel'; # instead of the constants 
use Win32::OLE::Const 'Microsoft Outlook'; 
use Win32::OLE qw(in with); 
use Win32::OLE::Variant; 


use IO::File; 
use IO::Handle; 
use Date::Calc qw(:all); 

#jumps to outlook 
my $OL = Win32::OLE->GetActiveObject('Outlook.Application'); 

#this is predefined namespace 
my $namespace = $OL->GetNamespace('MAPI'); 

#loop through all folders inside of the INBOX folder 
foreach my $i (1..$namespace->Folders->Count) { 

     my $folder = $namespace->Folders("email.address\@domain.com")->Folders("Inbox")->Folders($i)->Name; 

     print $folder, "....\n";      
    } 

問題が解決しました。

また、あなたの見通しには異なる設定があるかもしれないので、最初のフォルダ - フォルダ( "email.address \ @ domain.com")を削除することができます - 少なくともこれはどのように動作しますか私の同僚の見通し。

関連する問題