如何使用PHP脚本提取TNEF winmail.dat



我正在开发一个功能,将读取邮箱中的所有电子邮件,并将处理附件文件。

当从Outlook发送任何邮件时,其附件被保存为winmail.dat。[请注意,我已经有使用IMAP PHP下载附件的代码。]我的电子邮件附件存储在服务器上的代码库中的一个文件夹中。我需要把winmail.dat附件解压成原来的格式。到目前为止,我遇到的解决方案都需要人工操作,比如在线工具可以提取文件,或者软件可以让我们转换。dat文件。

但我需要使用脚本或任何自动过程,如cron或其他东西提取。[我使用的是Linux - centos 5.7服务器]

我的应用程序是否有任何库或任何其他方法来"解包"这些文件,以便我可以获得附件而无需逐个手动执行?

谢谢!

从http://pkgs.org/centos - 5 - rhel - 5/flexbox x86_64/tnef 1.4.7 - 1. - x86_64.rpm.html

使用tnef-1.4.7-1.x86_64.rpm

安装:

复制到一个文件夹并安装rpm tnef包-

rpm -ivh /path-of-downloaded-package/tnef-1.4.7-1.x86_64.rpm

提取附件[winmail.dat]:

进入要提取附件文件的目录。

cd /path-to-extract-attachment/

运行命令:

tnef /path-of-attachment/winmail.dat

等效PHP脚本:

chdir('/path-to-extract-attachment/');
$cmd = "tnef /path-of-attachment/winmail.dat";
shell_exec($cmd);

有一个简单的库:https://github.com/QualityUnit/TNEFDecoder

您可以使用它轻松地从TNEF文件中提取附件。

没有很好的文档说明,但它非常简单,您应该能够在稍微深入研究代码后使用它。它可以很容易地使用composer包含。

是纯PHP实现的TNEF解码算法,从旧的Squirrelmail插件中提取并移植到PHP 7.4

我感同身受;处理无视现有的广泛建立的标准的专有系统是*中的痛苦。TNEF的维基百科页面上有一个库列表,旨在提供解码器。好运。

最新更新