如何使用Perl列出outlook文件夹?
我需要使用Perl列出Outlook收件箱中所有文件夹的帮助。我用这段代码试过了,但什么也输出不了。我是Perl的初学者,我找不到任何简单的解决方案如何使用Perl列出outlook文件夹?,perl,outlook,Perl,Outlook,我需要使用Perl列出Outlook收件箱中所有文件夹的帮助。我用这段代码试过了,但什么也输出不了。我是Perl的初学者,我找不到任何简单的解决方案 #!/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')
#!/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;
所以我终于找到了解决问题的办法。因为我在工作中使用outlook,它有一些预定义的设置。我们和来自其他国家的同事一起测试了它,我们在同一家公司工作,但他的outlook设置不同。所以我有三个文件夹 电子邮件。address@domain.com 档案文件 电子邮件。address@domain.com 我不知道为什么我的地址会在那里列出两次,但无论如何,我所要做的就是连接到我的电子邮件地址,然后列出所有文件夹。这里的示例是列出收件箱文件夹中的每个子文件夹
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";
}
问题已解决:)
另请注意->您的outlook中可能有不同的设置,因此在这种情况下,您可以删除第一个文件夹-文件夹(“email.address\@domain.com”)-或者至少这是我的同事outlook的工作方式。我试过了,但没有成功:(您可以看到我在代码中有所有文件夹方法。)