簡體   English   中英

如何使用 perl 和 Win32::OLE 從磁盤打開 Outlook msg 文件

[英]How to open Outlook msg files from disk using perl and Win32::OLE

我有一個目錄,里面有我想要處理的 Outlook .msg 文件。 處理將是打開文件並保存附件。 我已成功使用 Win32::OLE 處理 Outlook 文件夾中的消息,但這些是磁盤上的文件。 如何打開磁盤上的 msg 文件並使用 perl 和 Win32::OLE 處理它?

限制:我在不允許我在機器上安裝任何東西的環境中工作。 特別是,我無法添加其他程序或 perl 模塊。 我堅持使用全新安裝的 perl 附帶的模塊。

這是我嘗試過的:

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

my $OL = Win32::OLE->GetActiveObject('Outlook.Application') ||
         Win32::OLE->new('Outlook.Application', 'Quit');
my $NameSpace = $OL->GetNameSpace("MAPI");

$File = Win32::GetFullPathName(".") . "\\" . "TestMessage.msg";
$msg  = $OL->Open($File);       ## Result is undefined

解決方案和/或參考將不勝感激。

在 Internet 上進行了一些研究后,我以某種方式得到了以下代碼,該代碼可以從本地目錄中的 .msg 文件中提取附件。將 .msg 路徑傳遞給$filename

my $msg = new Email::Outlook::Message $filename;
my $data = $msg->to_email_mime;
my $stripper = Email::MIME::Attachment::Stripper->new($data);
for my $a ($stripper->attachments()) {
    my $file = $a->{filename};
    open my $fh, '>', $file or die $!;
    print $fh $a->{payload};
    close $fh;
    chmod 0644, $file;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM