簡単振り分け設定を行うマクロNo.02535
おざ さん 17/12/01 13:37
 
秀まるお様

常駐アイコンの色に関してはご教授ありがとうございました。
丁寧にサポートしていただき、とても助かっています。

簡単振り分け設定に関する質問です。
現在行っている次の一連の動作を行うマクロを作りたいのですが、
ヒントがあればお願いします。

選択している(複数の)メールについて、
設定/簡単振り分け設定/次へ/次へ/次へ/今すぐ振り分ける/振り分け!
というクリック作業

SPAMフォルダーへのメールの移動は
#n = dllfunc("Move", $curAcc, "User\\SPAM");
で行えていますので、簡単振り分け設定への(選択項目は
defaultでの)登録を行うマクロでもOKです。
defaultはfromがxxxをで始まる、としています。

Win7でver.6.22です。よろしくお願いします。


[ ]
RE:02535 簡単振り分け設定を行うマクロNo.02536
秀まるお2 さん 17/12/01 17:13
 
 簡単振り分け設定のダイアログボックス操作をマクロでってのは無理があります。

 振り分け設定をマクロでなんとかするってことなら可能ではあります。振り分け設
定は、アカウント用のフォルダ配下にある「filter.txt」ってファイルにテキスト形
式で記述されてるので、それをマクロで書き換えてやる作戦になります。

> defaultはfromがxxxをで始まる、としています。

 From:のメールアドレスを使って振り分け設定を作成することは出来ると思います
が、振り分け先のフォルダはどういうルールになるのかによります。

 例えばFrom:のメールアドレスとまったく同じ名前のフォルダを受信フォルダ配下
に新規作成して、そこに振り分けるようにするとか、そういうシンプルなルールでい
いなら、そういうマクロのサンプルを作って差し上げることは出来ると思います。

[ ]
RE:02536 簡単振り分け設定を行うマクロNo.02540
おざ さん 17/12/04 14:31
 
秀まるお2様

ご教授、ありがとうございます。

> 振り分け設定をマクロでなんとかするってことなら可能ではあります。振り分け
>設定は、アカウント用のフォルダ配下にある「filter.txt」ってファイルにテキス
>ト形式で記述されてるので、それをマクロで書き換えてやる作戦になります。

なるほど、filter.txtに条件が書き込まれています。

> From:のメールアドレスを使って振り分け設定を作成することは出来ると思います
>が、振り分け先のフォルダはどういうルールになるのかによります。
>
> 例えばFrom:のメールアドレスとまったく同じ名前のフォルダを受信フォルダ配下
>に新規作成して、そこに振り分けるようにするとか、そういうシンプルなルールで
>いいなら、そういうマクロのサンプルを作って差し上げることは出来ると思います。

"From:" が "\"fanny\" <xxxxx@2017meeting.com>" で始まる または....で始まる
→ 通知無し+"\\User\\SPAM"に移動する

このように振り分け先のフォルダは全て\\User\\SPAMでOKです。
サンプルを頂ければ助かります。

よろしくお願いします。


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:02540 簡単振り分け設定を行うマクロNo.02549
秀まるお2 さん 17/12/04 18:06
 
 サンプルマクロ作ってみます。少々お待ちください。

[ ]
RE:02540 簡単振り分け設定を行うマクロNo.02551
秀まるお2 さん 17/12/04 18:56
 
 サンプルマクロできました。

 もしもマクロにバグがあると、filter.txtファイルが壊れます。なので、一応、保
存の前に、既存のfilter.txtファイルを「filter.bak」ファイルに保存してから更新
するようにしています。

 何か問題があった場合はエクスプローラを使うなどしてfilter.bakファイルからfi
lter.txtファイルを復元してください。

----------------マクロ---------------------------------------------------
    //現在選択してるメールのFrom:メールアドレスで振り分け設定を追加する。
    //振り分け先は、"^^User\\SPAM"固定とする。「通知無し」もセット。
    //
    loaddll "tkinfo.dll";
    #n = dllfunc("SetJapaneseCodePageMode", 1);
    $account = dllfuncstr("CurrentAccount");
    $homedir = dllfuncstr("HomeDir");
    $from = dllfuncstr("CurrentHeader", "From");
    $from = dllfuncstr("SetEmailOnly", $from);
    if( $from == "" ) {
        message "メールの差出人(From:)が不明です。";
        endmacro;
    }
    if( strstr( $from, "\"" ) >= 0 ) {
        message "From:メールアドレスにおかしい文字があります。";
        endmacro;
    }
    $filter1 = "\t\"From:\" が \"" + $from + "\" のメールアドレスを含む";
    $filter2 = "\t→ 通知無し+\"\\\\User\\\\SPAM\"に移動する";

    #n = dllfunc("NewMail");
    #n = dllfunc("SwitchHeaderView", 0);
    gofiletop;
    beginsel;
    gofileend;
    delete;
    $filename = $homedir + $account + "\\filter.txt";
    $bakfilename = $homedir + $account + "\\filter.bak";
    insertfile $filename;
    gofiletop;
    searchdown $filter1;
    if( result ) {
        message "振り分け設定の中に、現在のメールに対する振り分け項目が既に
あります。何もしないでおきます。";
        endmacro;
    }
    gofileend;
    insert $from + "\n" + $filter1 + "\n" + $filter2 + "\n";

    //バックアップ作成(念のため)
    #n = dllfunc("Bypass_CopyFile", $filename, $bakfilename, 0);

    //保存
    saveas $filename, unicode, bom;
    if( !result ) {
        message "振り分け設定ファイルの保存に失敗しました。";:
        endmacro;
    }
    #handle = hidemaruhandle(0);
    #n = dllfunc("SetMainWndTop");
    closehidemaruforced #handle;
    question "振り分け設定が完了しました。今すぐ振り分けますか?";
    if( result == yes ) {
        #n = dllfunc("DoFilter", 0, 0, 0 );
    }

[ ]
RE:02551 簡単振り分け設定を行うマクロNo.02555
おざ さん 17/12/05 15:19
 
秀まるお2様

サンプルマクロうまく動作しました。
とても助かります。
大変ありがとうございました。

サンプルマクロもいただけて、すばらしいサポートに驚きました。
今後ともよろしくお願いします。

[ ]