ホーム>source

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

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

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

アプリケーションがこれらのファイルを「アンパック」して、手動で1つずつ実行せずに添付ファイルを取得できるようにするためのライブラリまたは他の方法はありますか?

ありがとう!

あなたの答え
  • 解決した方法 # 1

    からrpmパッケージをダウンロード 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パッケージをインストールします-

    <前>ウィズウィズ

    添付ファイルを抽出するには[winmail.dat]:

    添付ファイルを抽出するディレクトリに移動します。

    <前>ウィズウィズ

    コマンドを実行:

    <前>ウィズウィズ ウィズウィズ <前>ウィズウィズ

  • 解決した方法 # 2

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

  • 解決した方法 # 3

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

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

    十分に文書化されていませんが、非常に単純です。コードを少し掘り下げれば、使用できるはずです。 composerを使用して簡単に含めることができます。

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

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

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ loops - Rパッケージの「推論」:列名の反復ブートストラップ/ループ