001-009474

パッケージ版 Garoon

関心あり
0人の方が関心を示しています

メールの添付ファイルパートのboundaryが破損していると、フルインデックスの作成時に添付ファイルパートの取得に失敗し、一時ファイルが正しく作成されない。

種別
不具合
機能
  • メール
再現バージョン
  • 4.0.0
  • 4.0.1
  • 4.0.2
  • 4.0.3
  • 4.2.0
  • 4.2.1
改修バージョン
4.2.2
公開日
2016-04-13
更新日
2016-05-27

詳細

【発生条件】

 

次の条件を満たす場合に発生します。

  • メールの添付ファイルパートのboundaryが破損している。

 

【準備】

  • 全文検索をインストールし、ガルーンで利用できるよう設定します。

  • メールソースの添付ファイルパートのboundaryが破損しているSample_Mail1を、1件受信します。

    例:
    • 正常時:
      -------
      Return-Path: user1@xxxxx.co.jp
      X-Original-To: user1
      Delivered-To: user1@xxxxx.co.jp
      Received: xxxxx by xxxxx ; Mon, 01 Jan 20xx 00:00:00 +0900
      Date: Mon, 01 Jan 20xx 00:00:00 +0900
      Subject: Sample_Mail1
      From: user1 <user1@xxxxx.co.jp>
      To: user1@xxxxx.co.jp
      X-Mailer: Cybozu(R) Garoon(R)
      Message-Id: <12345678901234567890123457890@xxxxx.co.jp>
      mime-version: 1.0
      Content-Type: multipart/mixed; boundary="=_cb_cbgrn_0_12345678_9012345678_9_0123"

      --=_cb_cbgrn_0_12345678_9012345678_9_0123
      Content-Type: text/plain; charset=ISO-2022-JP
      Content-Transfer-Encoding: 7bit

      SampleText1

      --=_cb_cbgrn_0_12345678_9012345678_9_0123
      Content-Type: text/plain; name="SampleFile1.txt"
      Content-Disposition: attachment; filename="SampleFile1.txt"
      Content-Transfer-Encoding: base64

      SampleFile1

      --=_cb_cbgrn_0_12345678_9012345678_9_0123
      Content-Type: text/plain; name="SampleFile2.txt"
      Content-Disposition: attachment; filename="SampleFile2.txt"
      Content-Transfer-Encoding: base64

      SampleFileText2

      --=_cb_cbgrn_0_12345678_9012345678_9_0123--
      --------

    • 破損時:
      -------
      Return-Path: user1@xxxxx.co.jp
      X-Original-To: user1
      Delivered-To: user1@xxxxx.co.jp
      Received: xxxxx by xxxxx ; Mon, 01 Jan 20xx 00:00:00 +0900
      Date: Mon, 01 Jan 20xx 00:00:00 +0900
      Subject: Sample_Mail1
      From: user1 <user1@xxxxx.co.jp>
      To: user1@xxxxx.co.jp
      X-Mailer: Cybozu(R) Garoon(R)
      Message-Id: <12345678901234567890123457890@xxxxx.co.jp>
      mime-version: 1.0
      Content-Type: multipart/mixed; boundary="=_cb_cbgrn_0_12345678_9012345678_9_0123"

      --=_cb_cbgrn_0_12345678_9012345678_9_0123
      Content-Type: text/plain; charset=ISO-2022-JP
      Content-Transfer-Encoding: 7bit

      SampleText1

      --=_cb_cbgrn_0_12345678_9015678_9_0123
      Content-Type: text/plain; name="SampleFile1.txt"
      Content-Disposition: attachment; filename="SampleFile1.txt"
      Content-Transfer-Encoding: base64

      SampleFile1

      --=_cb_cbgrn_0_12345678_9012345678_9_0123
      Content-Type: text/plain; name="SampleFile2.txt"
      Content-Disposition: attachment; filename="SampleFile2.txt"
      Content-Transfer-Encoding: base64

      SampleFileText2

      --=_cb_cbgrn_0_12345678_9012345678_9_0123--
      --------

  • 受信したメールを既読にします。

【再現手順】

  1. コマンドラインを開きます。

  2. CGI実行ディレクトリーに移動します。

    例:
    Windowsの場合
    cd C:\Inetpub\scripts\cbgrn

    Linuxの場合
    cd /var/www/cgi-bin/cbgrn

  3. 次のコマンドを実行し、全文検索のインデックスを作成します。

    例:
    Windowsの場合
    .¥grn.exe -C -q code¥command¥fts¥full_index.csp number=1

    Linuxの場合
    ./grn.cgi -C -q code/command/fts/full_index.csp number=1

  4. tmp_solr_indexディレクトリ―を確認します。

    Windowsの場合:
    C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index

    Linuxの場合:
    /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index


→現象発生:
 メールの添付ファイルをインデックスするための一時ファイルが6件作成されます。

 例:
 Windowsの場合:

  • C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index\AAAA.tmp
  • C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index\BBBB.tmp
  • C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index\CCCC.tmp
  • C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index\DDDD.tmp
  • C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index\EEEE.tmp
  • C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index\FFFF.tmp

 Linuxの場合:

  • /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index/AAAAAA.tmp
  • /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index/BBBBBB.tmp
  • /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index/CCCCCC.tmp
  • /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index/DDDDDD.tmp
  • /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index/EEEEEE.tmp
  • /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index/FFFFFF.tmp

→正しい結果:

 tmp_solr_indexディレクトリ―内にディレクトリ―が作成され、そのディレクトリー内に、メールの添付ファイルをインデックスするための一時ファイルが1件作成されます。

 例:
 Windowsの場合:
 C:\Program Files\Cybozu\mysql-5.0\files\cbgrn\mail\tmp_solr_index\1111\AAAA.tmp

 Linuxの場合:
 /usr/local/cybozu/mysql-5.0/files/cbgrn/mail/temp_solr_index/1111/AAAAAA.tmp

補足:

  • 添付ファイルパートの取得に失敗したメールのファイルは、検索できません。

  • 添付ファイルパートの破損状況により、作成される一時ファイルの件数が異なります。

  • 本現象が発生した場合、次の現象が発生します。

    メールの添付ファイルパートのboundaryが破損している場合、その添付ファイルと同じ名前のファイルを検索しても、該当するファイルが検索結果に表示されない場合がある。
    https://kb.cybozu.support/article/32555/

回避/対応方法

【回避方法】

 

次のバージョンの製品で本現象を改修しています。バージョンアップを検討してください。
  • バージョン 4.2.2のガルーン



-----------------------------------------------------------
【更新履歴】
2016/05/17 タイトルを更新しました。