我正在开发一个功能,将读取邮箱中的所有电子邮件,并将处理附件文件。
当从Outlook发送任何邮件时,其附件将另存为winmail.dat。请注意,我已经有使用IMAP PHP下载附件的代码。我的电子邮件附件存储在服务器上我的代码库中的一个文件夹中。我需要将winmail.dat附件提取为其原始格式。到目前为止,我遇到的解决方案都需要手动完成,比如提供提取文件的在线工具,或者使我们能够转换.DAT文件的软件。
但我需要使用脚本或任何自动化过程(如cron或其他)进行提取。我使用的是Linux - centos 5.7服务器。
有没有什么库或其他方法可以让我的应用程序“解压缩”这些文件,这样我就可以获得附件,而不需要逐个手动完成?
谢谢!
发布于 2013-05-29 11:29:09
从http://pkgs.org/centos-5-rhel-5/flexbox-x86_64/tnef-1.4.7-1.x86_64.rpm.html下载rpm包
使用包: 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);
发布于 2020-02-19 18:25:03
有一个简单的库:https://github.com/QualityUnit/TNEFDecoder
您可以使用它轻松地从TNEF文件中提取附件。
它没有很好的文档,但它很简单,在稍微深入代码之后,你应该能够使用它。使用composer可以很容易地包含它。
它是TNEF解码算法的纯PHP实现,它是从旧的Squirrelmail插件中提取的,并移植到与PHP 7.4兼容
发布于 2013-05-29 10:10:06
我感受到了您的痛苦;处理无视现有的广泛建立的标准的专有系统是痛苦的。wikipedia page on TNEF提供了一系列旨在提供解码器的库。祝好运。
https://stackoverflow.com/questions/16792842
复制相似问题