一覧画面の添付ファイルの一括削除No.14423
恭平 さん 03/09/05 07:25
 
おたずねします。
一覧画面の送信済フォルダにある複数のメールに添付されているファイルを一括して
削除する方法はありますか。

[ ]
RE:14423 一覧画面の添付ファイルの一括削No.14425
秀まるお2 さん 03/09/05 11:10
 
 ライブラリに、添付ファイルを一括して処理する系のマクロは登録されてます
が、一括削除する物は無いようです。

 しいてそういうマクロを作ることも簡単に出来ますが…。作りましょうか?

 あるいは、ダミーのアカウントを1つ使って添付ファイルをごっそり消すこと
は可能です。

 1.ダミーのアカウントを適当に1つ作成する。
 2.添付ファイルを削除したいメールを全部選択し、ダミーのアカウント
   配下に移動する。
 3.エクスプローラを使って、ダミーのアカウント配下の「送信HTML」の
   フォルダ配下のフォルダを全部削除してしまう。
 4.ダミーのアカウント配下に移動したメールを元に戻す。

 ということでどうでしょ?

[ ]
RE:14425 一覧画面の添付ファイルの一括削No.14428
Iranoan さん 03/09/05 14:20
 
 恭平さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
>  しいてそういうマクロを作ることも簡単に出来ますが…。作りましょうか?
 該当するマクロを依然書いて、
http://hidemaruo.dip.jp:81/hidesoft/hidesoft_8/x07634.html#7655
に書き込んであります。ただ NT 系だと動作しないので、
http://hidemaruo.dip.jp:81/turukame/turukame_5/x00096.html#96
このスレッドを参考に修正してください。

 また、もし書いて有る内容がサッパリ解らなければ、改めてご連絡ください。

[ ]
RE:14428 一覧画面の添付ファイルの一括削No.14438
恭平 さん 03/09/06 15:04
 
Iranoan さん、ありがとうございます。

教えていただいたものを参考に作りましたが、マクロの最後の行が「ブロックの対応
が合いません」ということで、動きません。
WINDOWSXP SP1です。
なお、下記のようなマクロにしました。どこがおかしいでしょうか。

//---------------- delete attachment file ---------------------------
loaddll "tkinfo.dll";
if( dllfunc("IsThreadView") ) {
  message "スレッド表示だと実行できません。";
  goto End;
}
#viewarea = dllfunc("ViewArea");
if( #viewarea != 5 ) {
  #n = dllfunc("SetViewArea", 5);
}
#total = dllfunc("MailCount");
if( #total == 0 ) {
  message "添付ファイル付きメールが1つもありません。";
  #n = dllfunc("SetViewArea", #viewarea );
  goto End;
}
#tmp = dllfunc( "SetFindPack","flag=unread|mark|color, inmail=0" );
if( !dllfunc( "FindDownInclude" ) ){
  if( !dllfunc( "FindUpInclude" ) ){
    question "未読、マーク、色付きメールがありません。\nマクロを終了しますか?";
    if( result )goto End;
  }
}
#i = 0;
while( #i < #total ) {
  #n = dllfunc("SetMailIndex", #i );
  #i = #i + 1;
  if( dllfunc( "GetMailFlag","unread") | dllfunc( "GetMailFlag","mark") |
    dllfunc( "GetMailColor" ) )continue;
  #x = 0;
  $attach = dllfuncstr("CurrentHeader", "X-Attach");
  if( $attach != "" ) {
    $src = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount")
       + "\\" + $attach;
    // フォルダ名のみに変換する。
    #xFolder = -1;
    #xFile = -1;
    while(1) {
      #x = strstr( midstr( $src, #xFile + 1, 256 ), "\\" );
      if( #x < 0 ) {
        break;
      }
      #x = #x + #xFile + 1;
      #xFolder = #xFile;
      #xFile = #x;
    }
    $src = leftstr( $src, #xFile );
    if( existfile( $src ) ) {
        runsync2 "rd \"" + $src + "\" /S /Q";
    }
#n = dllfunc("SetViewArea", #viewarea );

End:
  freedll;
  endmacro;


[ ]
RE:14438 一覧画面の添付ファイルの一括削No.14439
Iranoan さん 03/09/06 15:49
 
 恭平さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
>     }
> #n = dllfunc("SetViewArea", #viewarea );
の部分を、
    }
  }
}
#n = dllfunc("SetViewArea", #viewarea );
と、つまり「}」を二つ追加してください。

[ ]
RE:14439 一覧画面の添付ファイルの一括削No.14440
恭平 さん 03/09/06 16:56
 
たびたび恐れ入ります。
下記のように訂正したマクロを作ったんですが、
こんどは「未読、マーク、色付きメールがありません。」といってきます。なぜでし
ょうか。
もちろん、添付ファイルはあります。

//---------------- delete attachment file ---------------------------
loaddll "tkinfo.dll";
if( dllfunc("IsThreadView") ) {
  message "スレッド表示だと実行できません。";
  goto End;
}
#viewarea = dllfunc("ViewArea");
if( #viewarea != 5 ) {
  #n = dllfunc("SetViewArea", 5);
}
#total = dllfunc("MailCount");
if( #total == 0 ) {
  message "添付ファイル付きメールが1つもありません。";
  #n = dllfunc("SetViewArea", #viewarea );
  goto End;
}
#tmp = dllfunc( "SetFindPack","flag=unread|mark|color, inmail=0" );
if( !dllfunc( "FindDownInclude" ) ){
  if( !dllfunc( "FindUpInclude" ) ){
    question "未読、マーク、色付きメールがありません。\nマクロを終了しますか?";
    if( result )goto End;
  }
}
#i = 0;
while( #i < #total ) {
  #n = dllfunc("SetMailIndex", #i );
  #i = #i + 1;
  if( dllfunc( "GetMailFlag","unread") | dllfunc( "GetMailFlag","mark") |
    dllfunc( "GetMailColor" ) )continue;
  #x = 0;
  $attach = dllfuncstr("CurrentHeader", "X-Attach");
  if( $attach != "" ) {
    $src = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount")
       + "\\" + $attach;
    // フォルダ名のみに変換する。
    #xFolder = -1;
    #xFile = -1;
    while(1) {
      #x = strstr( midstr( $src, #xFile + 1, 256 ), "\\" );
      if( #x < 0 ) {
        break;
      }
      #x = #x + #xFile + 1;
      #xFolder = #xFile;
      #xFile = #x;
    }
    $src = leftstr( $src, #xFile );
    if( existfile( $src ) ) {
        runsync2 "cmd /C \"rd \"" + $src + "\" /S /Q\"";
    }
  }
 }
#n = dllfunc("SetViewArea", #viewarea );

End:
  freedll;
  endmacro;

[ ]
RE:14440 一覧画面の添付ファイルの一括削No.14441
Iranoan さん 03/09/06 18:31
 
 恭平さん今日は、Iranoan です。
> こんどは「未読、マーク、色付きメールがありません。」といってきます。なぜでし
> ょうか。
 最初に紹介したスレッドを読んで頂ければ解ると思いますが...。
 未読などのメールの添付ファイルは削除すると拙いかもしれないので、念の
為確認メッセージを表示しています。
 [いいえ] を選択すれば、添付ファイルの削除をします。
 まあ確認メッセージの出し方が悪いといえばそれまでですが...。

[ ]
RE:14441 一覧画面の添付ファイルの一括削No.14442
恭平 さん 03/09/06 18:34
 
たびたびご面倒をおかけします。
なんだか私信みたいになりましたが、
「いいえ」としても削除してくれません。
カーソルは最後までいきますが...。

[ ]
RE:14442 一覧画面の添付ファイルの一括削No.14443
Iranoan さん 03/09/06 18:52
 
 恭平さん今日は、Iranoan です。
> 「いいえ」としても削除してくれません。
> カーソルは最後までいきますが...。
 こうなると、私は WindowsXP の環境がありませんので、お役に立てません。
思いつくのは、
>         runsync2 "cmd /C \"rd \"" + $src + "\" /S /Q\"";

        runsync2 "cmd.exe /C rd /S /Q \"" + $src + "\"";
とするぐらいです。
 ##前回のけんいちさんの時は上手くいったのに??? ひょっとして、XP は
cmd.exe にパスが通っていないことが有るのだろうか?

[ ]
RE:14443 一覧画面の添付ファイルの一括削No.14448
恭平 さん 03/09/07 10:52
 
いろいろご面倒をおかけします。
やっぱりうまくいきません。
しばらく様子を見ることにします。
ありがとうございました。恭平

>思いつくのは、
>>         runsync2 "cmd /C \"rd \"" + $src + "\" /S /Q\"";
>を
>        runsync2 "cmd.exe /C rd /S /Q \"" + $src + "\"";
>とするぐらいです。

[ ]
RE:14443 一覧画面の添付ファイルの一括削No.14450
恭平 さん 03/09/07 11:03
 
恭平です。
お騒がせしました。
Iranoanさんのマクロで削除できました。
一覧画面で、添付ファイルのマークがついたままだったので、
削除されていないと早合点してしまいました。
ありがとうございました。

[ ]