[質問]エクスポート時に不要なヘッダを削No.19949
w@stone さん 04/09/27 10:20
 
こんにちは。
w@stone@自宅仕事場 です。


<質問内容>
現在、すでにたまっている過去のメールを年ごとにアカウントを分割して
CD-Rに保管していますが、検索用にメールデータをハードディスクに
持ちたいと考えました。
しかし、ハードディスクの容量をなるべく小さくしたいので、
不要なヘッダ情報は、取り除いてエクスポートしたいと思っています。

そのようなことは、可能なのでしょうか?

受信時には、「上級者向け」-「ヘッダ」-「不要ヘッダ」で何も除去して
いません。(仕事上、除去出来ない理由があります。)

何かいい方法をご存じでしたら、お教え下さい。


(^^) 2004/09/27(Mon) 10:20:31 am
    鈴木頼雄(w@stone)
……+……1……+……2……+……3……+……4……+……5……+……6

[ ]
RE:19949 [質問]エクスポート時に不要なヘNo.19950
秀まるお2 さん 04/09/27 11:11
 
 鶴亀メールには、受信した後でヘッダを除去するような機能は無いです。実は
そういう機能は鶴亀メール開発初期に考えてダイアログボックスのデザインまで
したことがあるんですが、結局そのまま保留されてしまいました。

 しいて現状でやるとしたら、一度エクスポートしてから鶴亀メールの「全般的
な設定・上級者向け・ヘッダ・不要ヘッダ」の設定をいじり、「ファイル・イン
ポート...」にて、「受信したように処理する」をONにしてインポートするとい
うやり方があります。そうやってインポートすれば不要ヘッダが除去されるので、
それをまたエクスポートすればいいです。

 あるいは、いっそのこと、秀丸エディタなり、もっと便利な全置換ツールを使
って、Received:ヘッダなどをごそっり取り去ってしまう手もあろうかと思いま
す。ただ、そういう置換ツール類では「ヘッダの中からのみ取り去る」というこ
とは難しいと思うので、メール本文に書かれた物も除去されることは覚悟した方
がいいです。

--------------
 不要ヘッダの除去機能は、個人的にもあった方がいいとは思います。と言いつ
つも、今すぐ作るお約束はできないです。

[ ]
RE:19950 [質問]エクスポート時に不要なヘNo.19957
w@stone さん 04/09/27 18:59
 
こんにちは。
w@stone@自宅仕事場 です。

さっそくご回答頂き感謝致します。

    秀まるお2  さん
    Mon, 27 Sep 2004 11:11:30 +0900 Wrote:
|--------------
| 不要ヘッダの除去機能は、個人的にもあった方がいいとは思いま
|す。と言いつ
|つも、今すぐ作るお約束はできないです。
気長にお待ちします。


(^^) 2004/09/27(Mon) 6:59:38 pm
    鈴木頼雄(w@stone)
……+……1……+……2……+……3……+……4……+……5……+……6

[ ]
RE:19950 [質問]エクスポート時に不要なヘNo.20003
ワッキー さん 04/09/30 21:08
 
>  鶴亀メールには、受信した後でヘッダを除去するような機能は無いです。

私も、ヘッダ除去の処理を任意のタイミングで実施したいとずっと
思っていました。もちろん、エクスポート時に不要ヘッダ除去処理
が連動してくれる機能もあれば便利だと思います。

理由としましては、
除去したいヘッダが後から見つかった場合(特に新しく参加した
メーリングリストに付いてくるものが予測できないので)に消した
いと思うが、エクスポート→インポートしてまでは、ちょっとと思
うからです。

もしこの件で機能追加が将来あるようでしたら、ぜひ、配下のフォ
ルダも一括処理できるように希望します。
※ところでこの機能(=後からのヘッダ除去処理)、マクロでは無
  理ですか?

以下、便乗ですが、
・ヘッダの除去指定をしていてログをデコードして表示(本文は読
  みたいので)する場合、除去指定が効いてしまうので、全部の
  ヘッダが見れなくなってしまうようです。ログの表示時は、ヘッ
  ダ除去処理をしない表示が(も)できればうれしいです。

・"X-"で始まるヘッダすべてを削除指定しても、"X-TuruKame-"は
  消さないような選択肢が最初から(自分で除去しない指定をする
  のではなくて、チェックボックス等で独立して)用意されていて
  欲しかった、と感想を持ちました(重要なヘッダだと思いますの
  で)。

 もっとも、ヘルプにある、「鶴亀メールが生成する「X-Body-
  Content-Type:」や「X-Attach:」などのヘッダは、不要ヘッダに
  指定しても除去されません。」に、"X-TuruKame-"が含まれてい
  るものと思ってしまった自分が悪いのですが(含まれていても良
  いのでは、と今でも思っていますが)。
 具体的には、X-TuruKame-SizeLimited: の付いた物をマークする
  振り分けを作ったのに、ヘッダが除去されてしまって役に立たな
  かったという失敗がありましたもので。

[ ]
RE:20003 [質問]エクスポート時に不要なヘNo.20010
秀まるお2 さん 04/10/01 10:55
 
 では、こういう要望があるということで将来検討したいと思います。今は、迷
惑メールフィルター関係でかなり手を入れてる所なので、当分は無理そうです。

■ログをデコードした時の件

 では、ログをデコードした時に限ってはヘッダ除去しないようにします。

■X-TuruKame-も消える件

 これはたしかにまずいので、では、X-TuruKame-は例外的に削除されないよう
にします。

■マクロでヘッダを削除する件

 マクロを使ってヘッダを削除することは可能ではあります。具体的には、

 #n = dllfunc("BeginEditMail");
 #n = dllfunc("DeleteHeader", "X-Mailer");
 #n = dllfunc("SaveEditMail", 0, 0);

 のような処理で可能です。動作速度が遅くてもいいなら、こういうマクロで足
りますが…。僕がもっとちゃんとしたのを作ってもいいですけど。

[ ]
RE:20010 [質問]エクスポート時に不要なヘNo.20045
ワッキー さん 04/10/04 19:12
 
>  では、こういう要望があるということで将来検討したいと思います。

ありがとうございました。

> りますが…。僕がもっとちゃんとしたのを作ってもいいですけど。

とても参考になりました。自分で使う分にはフォルダ名も解ってい
るし、とりあえず以下のような感じで考えました。もっと汎用的に
(※)するためのアドバイス(その他でも)あればお願いします。

※フォルダ名や対象ヘッダ文字列をiniファイルから取り込めれば
  理想的かなと思っています。それと、どうせなら配下のフォルダ
  も一括で処理したいです。


loaddll "TKInfo.dll";

#headerCnt=3;
$headerStr[0]="X-XXXXX";
$headerStr[1]="X-YYYYY";
$headerStr[2]="X-ZZZZZ";

#folderCnt=3;
$accountName[0]="あるアカウント1";
$folderName[0]="あるフォルダ1"
$accountName[1]="あるアカウント2";
$folderName[1]="あるフォルダ2"
$accountName[2]="あるアカウント3;
$folderName[2]="あるフォルダ3"

while(#i<#folderCnt){
    call DeleteHeader $accountName[#i],$folderName[#i];
    #i=#i+1;
}
endmacro;

DeleteHeadder:
    ##n = dllfunc( "SelectFolder", $$1, $$2);
    if(!##n) return;

    ##mailCount = dllfunc("MailCountAll");
    ##i=0;
    while(##i<##mailCount){
        ##n = dllfunc("SetMailIndex", ##i);
        if(!##n) continue;
        ##n = dllfunc("BeginEditMail");
        ##j=0;
        while(##j<#headerCnt){
            ##n=1;
            while(##n) ##n = dllfunc("DeleteHeader",
            $headerStr[##j]);
            ##j=##j+1;
        }
        ##n = dllfunc("SaveEditMail", 0, 0);
        if(!##n){
            message "書き込み失敗! "+$$2;
            break;
        }
        ##i=##i+1;
    }
    return;

[ ]
RE:20045 [質問]エクスポート時に不要なヘNo.20051
秀まるお2 さん 04/10/05 09:30
 
 DeleteHeader関数を1回呼ぶだけだと、同じヘッダが2個以上あった場合にう
まく削除できないという問題がありましたが、ちゃんとそれにも対処してあるん
ですね。

> それと、どうせなら配下のフォルダも一括で処理したいです。

 CurrentFolder関数とNextFolder関数でなんとか実現可能だとは思います。

    $s = dllfuncstr("CurrentFolder");
    while(1) {
        ....
        ....
        #n = dllfunc("NextFolder");
        if( #n == 0 ) break;
        $s2 = dllfuncstr("CurrentFolder");
        if( strlen($s2) <= strlen($s) ) break;
        if( leftstr( $s2, strlen($s) + 1 ) != $s + "\\" ) break;
    }

 みたいな感じで行けると思います。(動作確認までしてませんが)

[ ]
RE:20051 [質問]エクスポート時に不要なヘNo.20062
ワッキー さん 04/10/06 00:17
 
> > それと、どうせなら配下のフォルダも一括で処理したいです。
>
>  CurrentFolder関数とNextFolder関数でなんとか実現可能だとは思います。

いろいろとありがとうございます。
教えていただいた線で試行錯誤してみます。

[ ]