Str替换PHP中的oft文件

时间:2016-05-10 11:55:35

标签: php outlook

我使用COM插件通过PHP创建了一个OFT文件(Outlook模板文件)。我需要做的是在用户下载文件时动态地用动态URL替换URL。我已经在文本编辑器中打开文件并使用下面的代码并且两个注册错误(使用Outlook下面的代码根本不打开"无法打开Outlook")):( / p>

<?php
$file = file_get_contents('email1.oft');
file_put_contents('email1.oft',str_replace('There is a new','hello world',$file));
echo 'Completed';
?>

所以我的问题是(如何)读取OFT文件并对其进行str替换?如果是这样的话?

1 个答案:

答案 0 :(得分:0)

OFT与MSG的格式相同(格式为documented),只是类ID不同。它是一个IStorage,可以使用Windows存储API(StgOpenStorage等)。

您还可以Redemption,它可以打开和修改独立的MSG / OFT文件(它需要安装MAPI系统,这意味着您需要安装Outlook):

  set Session = CreateObject("Redemption.RDOSession")
  set Msg = Session.GetMessageFromMsgFile("c:\Temp\OldFile.oft")
  Msg.Body = Replace(Msg.Body, "oldf", "new")
  Msg.SaveAs "c:\Temp\NewFile.oft", 2 'olTemplate