
[英]How to read picture/image from word document using Win32::OLE in perl
[英]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.