添付ファイルの圧縮マクロと添付ファイルNo.42504
くらくら さん 12/04/05 14:54
 
受信メールの添付ファイル名に"[","]"のカッコ文字があった場合、
添付ファイルは圧縮されるのですが、メールの添付ファイルは消えた状態(クリップ
のマーク)になってしまいます。

メールヘッダを確認すると
---------------------------------------
X-Attach: ABCDEFG[1234].xls.zip
---------------------------------------

となっていますが、メールの添付(クリップマークに変わっている)を右クリックする
と、
---------------------------------------
この添付ファイルは削除されました。
---------------------------------------
となっており、実際に添付ファイル用フォルダも消えています。

下記の条件で発生しています。
・使用マクロ:添付ファイル圧縮-7zip.mac
・添付ファイル数:1
・添付ファイル名:ABCDEFG[1234].xls.zip

お手数ですが、ご確認と対処方法のご教授をお願い致します。

[ ]
RE:42504 添付ファイルの圧縮マクロと添付No.42506
秀まるお2 さん 12/04/05 19:39
 
 前回連絡いただいてた現象ですが、テストしてなくてすみません。

 今さらながらテストしてみたんですが、僕の所だととりあえずうまく動いてし
まうようでした。

 自分から自分宛に、「ABCDEFG[1234].xls」って名前の添付ファイル付き
メールを送って、それを自分で受信して、その受信したメールを選択した状態で
マクロ実行しました。

 結果、添付ファイルが

       ABCDEFG[1234].xls.zip

 になって、うまく出てくるようです。

 Windows7の64bit版上と、WindowsXPでもテストしてみたんですが、うまく動く
ようでした。

 もしかして7zipのバージョンが僕の所と違うかとか…。僕の所では、

    7z920.exe

 ってファイルでインストールしました。32bit版の、Version 9.20です。

       ABCDEFG[1234].xls.zip

 になった状態でさらにマクロ実行すると、

       ABCDEFG[1234].xls.zip.zip

 ってファイルに二重圧縮されるんですが、それもうまくいくようでした。

 ということでちょっと原因が分からない所ですが…

 原因究明のために、少しマクロを書き換えてテストしてみて欲しいです。

 まずですが、マクロを見直してちょっと怪しい箇所がありましたので、そこを
直して欲しいです。

 19行目付近に、

    $7zip = "C:\\Program files\\7-Zip\\7z.exe";
    if( ! existfile( $7zip ) ) {
        ...
        ...6行
        ...
    }

 みたいな処理があるのですが、そこの「}」の行の次に、

 $7zip = "\"" + $7zip + "\"";

 って処理を入れて欲しいです。

 それと次に、153行目付近に、

                runsync2 $7zip + " " + $cmd;

 って処理があるんですが、それの直前に、

                $temp = input( "コマンドライン", $7zip + " " + $cmd );

 って処理を入れて欲しいです。それでマクロを実行すると、圧縮を実行する直
前に、これから実行しようとしてるコマンドラインが出てきます。それをクリッ
プボード経由でコピーして、Windowsのコマンドプロンプトに貼り付けしてEnter
キーを押して実行してみて欲しいです。

 (マクロはinput文の所で待機させてたままで)

 それでたしかにファイルが圧縮されるかどうかを、コマンドプロンプト上での
様子やエクスプローラを使うなどして確認いただけると、何かそれが解決の
ヒントになるような気がします。


 ちなみに僕の所で実行したら、コマンドラインは

"C:\Program files (x86)\7-Zip\7z.exe" a "e:\hidemailhome\斉藤秀夫メイン\
受信添付\120405_07\ABCDEFG[1234].xls.zip" "e:\hidemailhome\斉藤秀夫
メイン\受信添付\120405_07\ABCDEFG[1234].xls"

 のようになりまして、それをコマンドプロンプト上で実行したら、

C:\Users\Hideo>"C:\Program files (x86)\7-Zip\7z.exe" a "e:\hidemailhome\斉藤
秀夫
メイン\受信添付\120405_07\ABCDEFG[1234].xls.zip" "e:\hidemailhome\斉藤秀夫メ
イン
\受信添付\120405_07\ABCDEFG[1234].xls"

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Scanning

Creating archive e:\hidemailhome\斉藤秀夫メイン\受信添付\120405_07\ABCDEFG[1
234]
.xls.zip

Compressing  ABCDEFG[1234].xls

Everything is Ok

C:\Users\Hideo>

 のような結果になりました。

 この辺の画面の様子など教えていただければ、解決のヒントになりそうな気が
します。

[ ]
RE:42506 添付ファイルの圧縮マクロと添付No.42507
くらくら さん 12/04/06 09:27
 
色々ご教授いただきまして、ありがとうございます。
大変申し訳ございませんが、昨日発生したメールデータにて本日再確認したのですが、
現象が発生しなく、良く確認したところ小生の確認ミスでした。
お手間をお掛けし大変申し訳ございません。

結論としては、実行したマクロが違うものでした。
・マクロ名:添付ファイル圧縮Zip.mac

今回、上記マクロから「添付ファイル圧縮-7zip.mac」に変更しようと思い色々確認
させていただいていましたので、本投稿はクローズをさせて下さい。
教えていただいた内容については、非常に参考になりましたので、もし何か不具合が
発生した際には、活用させていただこうと思っております。

今後とも宜しくお願い致します。

[ ]
RE:42507 添付ファイルの圧縮マクロと添付No.42509
秀まるお2 さん 12/04/06 15:33
 
 とりあえずこの件はクローズとさせていただきつつ、「添付ファイル圧縮Zip.
mac」の方もぼちぼちテストして、もしバグがあるようでしたら修正してアップ
ロードしなおしさせていただきます。

[ ]
RE:42509 添付ファイルの圧縮マクロと添付No.42511
秀まるお2 さん 12/04/07 11:08
 
 一応テスト結果を報告を報告させていただきますと、たしかに[]入りの
ファイル名だとうまく圧縮出来ず、さらには圧縮出来なかったエラーの場合の処
理がうまく出来て無くて、結果として添付ファイルが点線クリップアイコンにな
ってしまいました。

 さらにテストしたら、ZIP32.DLL自体が、[]入りファイル名をうまく受け付け
てくれない仕様のようでした。

  http://hp.vector.co.jp/authors/VA022275/lab/mzp.html

 のMiniZipってソフトでテストしても同じ結果だったので間違いないと思いま
す。

        zip warning: name not matched: abc[123].txt

 のようなエラーになってしまうようです。

 とりあえずそういう制限があるということで、ライブラリの方に補足を付ける
か何かしようと思います。

[ ]