3

メールボックスからすべてのメールを読み取り、添付ファイルを処理する機能を開発しています。

Outlook からメールが送信されると、その添付ファイルは winmail.dat として保存されます。[IMAP PHP を使用して添付ファイルをダウンロードするためのコードが既にあることに注意してください。メールの添付ファイルは、サーバー上のコードベースの 1 つのフォルダーに保存されています。] winmail.dat 添付ファイルを元の形式に抽出する必要があります。私がこれまでに遭遇したソリューションはすべて、抽出されたファイルを提供するオンライン ツールや、.DAT ファイルを変換できるソフトウェアなどの手作業が必要でした。

しかし、スクリプトまたは cron などの自動化されたプロセスを使用して抽出する必要があります。[Linux - centos 5.7 サーバーを使用しています。]

私のアプリケーションがこれらのファイルを「解凍」するためのライブラリまたはその他の方法はありますか?

ありがとう!

4

3 に答える 3

4

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);
于 2013-05-29T11:29:09.287 に答える
2

この単純なライブラリがあります: https://github.com/QualityUnit/TNEFDecoder

これを使用して、TNEF ファイルから添付ファイルを簡単に抽出できます。

十分に文書化されているわけではありませんが、非常に単純で、コードを少し掘り下げるだけで if を使用できるはずです。composer を使用して簡単に組み込むことができます。

これは、古い Squirrelmail プラグインから抽出され、PHP 7.4 と互換性があるように移植された TNEF デコード アルゴリズムの純粋な PHP 実装です。

于 2020-02-19T18:25:03.127 に答える
0

あなたの痛みが分かります; 既存の広く確立された標準を無視する独自のシステムを扱うのは苦痛です。TNEFのウィキペディア ページには、デコーダーの提供を目的としたライブラリーのリストがあります。幸運を。

于 2013-05-29T10:10:06.203 に答える