複数メールの添付削除No.20558
ワッキー さん 04/11/16 23:55
 
送信済みのメールを整理してて思ったのですが。

複数メールを選択して添付ファイルをすべて削除という操作はでき
ませんでしょうか?
私の場合、送信した添付ファイルって、保管が必要なものは他の場
所にオリジナルがありますもので(添付する時にわざわざオリジナ
ルを消したりしませんので)、整理する時は過去の適当な範囲(一
番古いものから何ヶ月前までとかを選択して)のものを一気に削除
でかまわないという状況です。

やはり、マクロでしょうか?

[ ]
RE:20558 複数メールの添付削除No.20568
Iranoan さん 04/11/17 12:18
 
 ワッキーさん今日は、Iranoan です。
> 複数メールを選択して添付ファイルをすべて削除という操作はでき
> ませんでしょうか?
<中略>
> やはり、マクロでしょうか?
 そうなると思います。仮にマクロを作って頂くにしても、細かな希望仕様を
書き込む必要があります。今思いつくのは、次の通りです。
・添付ファイルを削除するときの処理は、削除するときにでるダイアログ・
  ボックスの内、何れに当たる処理か?
・電子署名の時も構わず削除すればよいか?
    その時 S/MIME や PGP で使われるファイル名は?
・HTML メールはどうするか?
・メールがコピーされているときの処理は?

[ ]
RE:20558 複数メールの添付削除No.20583
秀まるお2 さん 04/11/17 16:23
 
 マクロでやってください。ただし、今いろいろ忙しいのでマクロを作って差し
上げる余裕は無いです。

 バグ修正に追われてます。

[ ]
RE:20583 複数メールの添付削除No.20600
Iranoan さん 04/11/18 12:29
 
 ワッキーさん今日は、Iranoan です。
>  マクロでやってください。ただし、今いろいろ忙しいのでマクロを作って差し
> 上げる余裕は無いです。
 取り敢えず作ってみました。何か希望と異なっていたら、改めて書き込んで
ください。
//---------- 選択したメールの添付ファイル削除 ------------------------
//添付ファイルを削除するだけ
//メールがコピーされていても考慮せずに削除
//HTML メールの index.htm はそのまま
loaddll "tkinfo.dll";
#tmp = dllfunc( "DisableDraw", 0 );
#j = dllfunc( "LockSelection" );
$dir = dllfuncstr( "HomeDir" ) + dllfuncstr( "CurrentAccount" ) + "\\";
while( #i < #j ){
  #tmp = dllfunc( "EnumSelection", 1 );
  #attach = dllfunc( "CountCurrentHeader", "X-Attach" );
  if( #attach ){
    while( #k < #attach ){
      $attach = dllfuncstr( "CurrentHeader2", "X-Attach", #k );
      #tmp = dllfunc( "Bypass_DeleteFile", $dir + $attach );
      message $dir + $attach;
      #k = #k + 1;
    }
    call strstr2 $attach, "\\";
    $attach = $dir + leftstr($attach, ##return );
    if( dllfunc( "Bypass_DeleteFile", $attach +
        "\\$$$ReferenceCount$$$.$$$" ) != 0xFFFFFFFF ){
      #tmp = dllfunc( "Bypass_DeleteFile", $attach +
          "\\$$$ReferenceCount$$$.$$$" );
    }
    if( dllfunc( "Bypass_GetFileAttributes", $attach )&0x10 ){
      #tmp = dllfunc( "Bypass_RemoveDirectory", $attach );
    }
  }
  #i = #i + 1;
}
#tmp = dllfunc( "UnlockSelection", 1 );
#tmp = dllfunc( "EnableDraw" );
freedll;
endmacro;

strstr2:// 文字列の後方から文字列を検索するサブルーチン
  ##RC = -1;
  ##Size = strlen($$2);
  while( 1 ){
    ##Pos = strstr( $$1, $$2 );
    if( ##Pos == -1 )break;
    ##RC = ##RC + ##Pos + ##Size;
    $$1 = rightstr( $$1, strlen( $$1 ) - ##Pos - ##Size );
  }
  return ##RC;

[ ]
RE:20600 複数メールの添付削除No.20613
ワッキー さん 04/11/18 23:45
 
>  取り敢えず作ってみました。

ありがとうございます。
ちらっと試してみましたが、エラーメッセージが出たり(内容は見
逃してしまいましたが、invalidなんたらかんたらでした)、一回
では削除できなかったり(2通のメールの5個の添付ファイルのう
ち3個しか削除されない等)など不安定なので、もう少し色々試し
てみます。

[ ]
RE:20613 複数メールの添付削除No.20627
Iranoan さん 04/11/20 16:07
 
 ワッキーさん今日は、Iranoan です。
> ちらっと試してみましたが、エラーメッセージが出たり(内容は見
> 逃してしまいましたが、invalidなんたらかんたらでした)、一回
> では削除できなかったり(2通のメールの5個の添付ファイルのう
> ち3個しか削除されない等)など不安定なので、もう少し色々試し
> てみます。
 何か条件が解りましたらお知らせください。

[ ]