質問:削除された破線クリップアイコンのNo.10628
dszhm さん 06/12/07 13:39
 
環境は、
OS:XP Pro SP2
秀丸エディタ:6.50 Beta 2
秀丸メール:4.69
です。
振り分けルールで添付ファイルを削除したときに
残る「破線のクリップ」みたいなアイコンを
現在は、手動で、Deleteキー押下+ダイアログへの
応答で削除していますが、
自動的に削除してしまうような設定はないのでしょうか?
ご存知の方がいらしたら教えていただきたく、
よろしくお願いします。

[ ]
RE:10628 質問:削除された破線クリップアNo.10629
秀まるお さん 06/12/08 10:22
 
 添付ファイルが存在していたことの痕跡である点線クリップアイコンすらも削
除することは、少なくとも振り分けでは出来ないです。

 出来るとしたら、マクロを使って自動的に削除するくらいかと思いますが、点
線クリップアイコンがあるからといって特にハードディスクを余計に食ってる訳
でもないし、あんまり神経質にならなくてもいいんじゃないかと思います。

 「全般的な設定・ウィンドウ」の「添付ファイルのアイコンと枠の配置」って
設定もあるので、そこをいじって添付ファイル枠があんまりじゃまにならないよ
うにする手もあると思います。

[ ]
RE:10629 質問:削除された破線クリップアNo.10630
dszhm さん 06/12/08 12:34
 
> 出来るとしたら、マクロを使って自動的に削除するくらいかと思いますが、点
>線クリップアイコンがあるからといって特にハードディスクを余計に食ってる訳
>でもないし、あんまり神経質にならなくてもいいんじゃないかと思います。

  複数のファイルをアーカイブ等でまとめもしないで送って
  来られた場合には、有効な添付ファイルと「破線クリップ」の
  無効な添付ファイルが並んで操作しづらいのです。
  (誤って、有効な添付ファイルを削除していまいそうで)
  そのようなメールを送ってくるのが上司関係なので
  いいづらいこともあります。
  マクロで作るとしたら、「着信がひと段落したしたときに実行」する
  ことになると思いますが、「破線クリップ」になっている
  添付ファイルがあるメールを探して「削除」動作を行うことになると
  思いますが、それで可能でしょうか?

[ ]
RE:10630 質問:削除された破線クリップアNo.10631
秀まるお さん 06/12/08 13:20
 
 現在選択してるメールに対して処理するマクロとしては、以下のようになりま
す。

    loaddll "tkinfo.dll";
    #c = dllfunc("CountCurrentHeader", "X-Attach:");
    if( #c > 0 ) {
        #i = #c;
        #done = 0;
        while( #i > 0) {
            #i = #i - 1;
            $path = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount")
                  + "\\"
                  + dllfuncstr("CurrentHeader2", "X-Attach:", #i);
            if( ! existfile( $path ) ) {
                if( ! #done ) {
                    #n = dllfunc("BeginEditMail");
                    #done = 1;
                }
                #n = dllfunc("DeleteHeader2", "X-Attach:", #i);
            }
        }
        if( #done ) {
            #n = dllfunc("SaveEditMail", 0, 0);
        }
    }

 でもって、特定の人からのメールに限って処理するってことであって、例えば
その人からのメールを特定のフォルダに振り分けてるってことであれば、

    loaddll "tkinfo.dll";
    if( dllfunc("RecvMailCountShow") == 0 ) {
        endmacro;
    }
    $account = dllfuncstr("CurrentAccount");
    $folder = dllfuncstr("CurrentFolder");
    #n = dllfunc("SelectFolder", "特定アカウント", "特定フォルダ");
    if( dllfunc("RecvMailCountInFolder") != 0 ) {
        while( dllfunc("SelectRecvMailInFolder") ) {
            //
            // 先ほどのマクロの処理
            //
        }
    }
    #n = dllfunc("SelectFolder", $acount, $folder);

 のようにして、受信が一段落してから自動起動したらいいかと思います。

[ ]
RE:10631 質問:削除された破線クリップアNo.10635
dszhm さん 06/12/08 21:19
 
>
> のようにして、受信が一段落してから自動起動したらいいかと思います。
  お忙しいところ、マクロの作成していただいたのですが、
 このマクロは、振り分けの中で削除された添付ファイルの
 「破線クリップ」状態を削除するものではないと思うのですが…
 (X-Del-Attachヘッダを見ていない)
 この中で振り分けで行っているのと同じファイルを削除するため、
 削除対象の添付ファイルかを判定する処理を行う必要が
 ありますよね?

[ ]
RE:10635 質問:削除された破線クリップアNo.10637
秀まるお さん 06/12/09 20:12
 
 点線クリップアイコンで出てくるのは、X-DelAttach:ヘッダじゃなくて、
X-Attach:ヘッダです。

 X-Attach:ヘッダで指定された添付ファイルが存在しない場合に点線クリップ
アイコンになります。

 その辺は、具体的にメールのヘッダを確認していただくと仕組みが理解いただ
けると思いますけど。

[ ]