振り分け範囲についてNo.34554
#funayuki1 さん 08/08/15 12:30
 
#funayuki1です。

振り分け、一括振り分けを行うと、指定されているフォルダのみ
対象となっておりサブフォルダは対象となっていないように見えます、

サブフォルダも振り分け対象とすることやアカウント全体を対象とする事は出来ない
でしょうか。
(振り分け条件を追加した際、過去に振り分けたメールを含めて
振り分けなおしたい為)




[ ]
RE:34554 振り分け範囲についてNo.34563
秀まるお2 さん 08/08/17 10:00
 
 サブフォルダも含めて振り分けたりアカウント全体を振り分けるって機能はす
みませんが存在しないです。

 マクロでやろうと思えば出来るので、マクロでやって欲しいです。

 選択したフォルダ配下のメールを全部振り分け直す例:

    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    $folder = dllfuncstr("CurrentFolder");
    if( $folder != "" ) {
        $folder = $folder + "\\";
    }
    #len = strlen($folder);
    while(1) {
        if( $folder2 != "受信ログ" && $folder2 != "送信ログ" ) {
            #n = dllfunc("SelectAllMail");
            if( dllfunc("SelectedMailCount") != 0 ) {
                #n = dllfunc("DoFilter", 0, 0, 0 );
            }
        }
        #n = dllfunc("ExpandFolder", 1);
        #n = dllfunc("NextFolder");
        if( dllfuncstr("CurrentAccount") != $account ) {
            break;
        }
        $folder2 = dllfuncstr("CurrentFolder");
        if( strlen($folder2) <= #len ) {
            break;
        }
        if( leftstr($folder2, #len) != $folder ) {
            break;
        }
    }

[ ]
RE:34563 振り分け範囲についてNo.34573
#funayuki1 さん 08/08/18 23:21
 
#funayuki1です。

秀まるお2殿、情報のご提供ありがとうございます。
試してみます。

> サブフォルダも含めて振り分けたりアカウント全体を振り分けるって機能はす
>みませんが存在しないです。
>
> マクロでやろうと思えば出来るので、マクロでやって欲しいです。
>
> 選択したフォルダ配下のメールを全部振り分け直す例:
>
>    loaddll "tkinfo.dll";
>    $account = dllfuncstr("CurrentAccount");
>    $folder = dllfuncstr("CurrentFolder");
>    if( $folder != "" ) {
>        $folder = $folder + "\\";
>    }
>    #len = strlen($folder);
>    while(1) {
>        if( $folder2 != "受信ログ" && $folder2 != "送信ログ" ) {
>            #n = dllfunc("SelectAllMail");
>            if( dllfunc("SelectedMailCount") != 0 ) {
>                #n = dllfunc("DoFilter", 0, 0, 0 );
>            }
>        }
>        #n = dllfunc("ExpandFolder", 1);
>        #n = dllfunc("NextFolder");
>        if( dllfuncstr("CurrentAccount") != $account ) {
>            break;
>        }
>        $folder2 = dllfuncstr("CurrentFolder");
>        if( strlen($folder2) <= #len ) {
>            break;
>        }
>        if( leftstr($folder2, #len) != $folder ) {
>            break;
>        }
>    }

[ ]
RE:34573 振り分け範囲についてNo.34590
#funayuki1 さん 08/08/20 09:35
 
#funayuki1です。
試してみた結果の報告です。

マクロ実行時のカレントディレクトリと同じ階層のディレクトリが
最後まで検出されないと無限ループに入ってしまう様でした。
(マクロが終了しませんでした。)

また、マクロ終了後、各フォルダのメールが全選択のままになって
いました。
そこで、いただいたマクロ例を以下の様に手直ししてみました。

    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    $folder = dllfuncstr("CurrentFolder");
    if( $folder != "" ) {
        $folder = $folder + "\\";
    }
    #len = strlen($folder);
    while(1) {
        if( $folder2 != "受信ログ" && $folder2 != "送信ログ" ) {
            #n = dllfunc("SelectAllMail");
            if( dllfunc("SelectedMailCount") != 0 ) {
                #n = dllfunc("DoFilter", 0, 0, 0 );
            }
        }
        #n = dllfunc("SetMailIndex", 0);          //<--追加@
        #n = dllfunc("ExpandFolder", 1);
        #n = dllfunc("NextFolder");
        if( dllfuncstr("CurrentAccount") != $account ) {
            break;
        }
        $folder2 = dllfuncstr("CurrentFolder");
        if( strlen($folder2) <= #len ) {
            break;
        }
        if( leftstr($folder2, #len) != $folder ) {
            break;
        }
        if(dllfuncstr("GetNextFolder",$account, $folder2) == "")  break;    
         //<--追加A
    }

追加@
  振り分け後、全選択を解除し、フォルダの先頭メールに位置づける

追加A
  次のフォルダが無い場合はループを終了

問題が有る場合ご指摘いただけると助かります。

以上。

>#funayuki1です。
>
>秀まるお2殿、情報のご提供ありがとうございます。
>試してみます。
>
>> サブフォルダも含めて振り分けたりアカウント全体を振り分けるって機能はす
>>みませんが存在しないです。
>>
>> マクロでやろうと思えば出来るので、マクロでやって欲しいです。
>>
>> 選択したフォルダ配下のメールを全部振り分け直す例:
>>
>>    loaddll "tkinfo.dll";
>>    $account = dllfuncstr("CurrentAccount");
>>    $folder = dllfuncstr("CurrentFolder");
>>    if( $folder != "" ) {
>>        $folder = $folder + "\\";
>>    }
>>    #len = strlen($folder);
>>    while(1) {
>>        if( $folder2 != "受信ログ" && $folder2 != "送信ログ" ) {
>>            #n = dllfunc("SelectAllMail");
>>            if( dllfunc("SelectedMailCount") != 0 ) {
>>                #n = dllfunc("DoFilter", 0, 0, 0 );
>>            }
>>        }
>>        #n = dllfunc("ExpandFolder", 1);
>>        #n = dllfunc("NextFolder");
>>        if( dllfuncstr("CurrentAccount") != $account ) {
>>            break;
>>        }
>>        $folder2 = dllfuncstr("CurrentFolder");
>>        if( strlen($folder2) <= #len ) {
>>            break;
>>        }
>>        if( leftstr($folder2, #len) != $folder ) {
>>            break;
>>        }
>>    }

[ ]
RE:34590 振り分け範囲についてNo.34592
秀まるお2 さん 08/08/20 10:42
 
 マクロ改良ありがとうごさいます。

 問題ないと思います。

[ ]