是否可以使用Win32 :: OLE移动Outlook文件夹?

时间:2014-07-08 20:44:59

标签: perl win32ole

我已设法在Outlook中添加文件夹,但无法解决如何移动文件夹的问题。我的代码不会丢弃任何警告,也不会移动文件夹:

#!/usr/bin/perl
use strict;
use warnings;

use Win32::OLE;
use Win32::OLE::Const 'Microsoft Outlook';

# use existing instance if Outlook is already running, or launch a new one
  my $Outlook;
eval {$Outlook = Win32::OLE->GetActiveObject('Outlook.Application')};
die "Outlook not installed" if $@;
unless (defined $Outlook) {
  $Outlook = Win32::OLE->new('Outlook.Application', sub {$_[0]->Quit;})
    or die "Oops, cannot start Outlook";
}
my $namespace = $Outlook->GetNamespace("MAPI");

#my $Folder = $namespace->Folders("backupadmin")->Folders(
    # "Inbox")->Folders->Add("test");

my $Folder = $namespace->Folders("backupadmin")->Folders(
     "Inbox")->Folders("test")->MoveTo("test1");     

1 个答案:

答案 0 :(得分:0)

如果使用流行的Outlook Redemption库,则可以检索要移动的文件夹的RDO Folder对象,然后使用目标RDO文件夹作为参数调用MoveTo方法。对于某些示例Perl代码,您可以引用使用Email::PST::Win32和Outlook Redemption的Win32::OLE CPAN模块来访问RDO文件夹对象。

Outlook赎回:http://www.dimastr.com/redemption/home.htm

使用MoveTo方法的RDO文件夹:http://www.dimastr.com/redemption/rdo/rdofolder.htm

电子邮件:: PST :: Win32:https://metacpan.org/release/Email-PST-Win32