マクロの記録機能No.02966
ちーとあー さん 18/02/28 12:03
 
お世話になっております。

1)不要なメール(ソーシャル系)をゴミ箱に移動させたいのですが(最終的には削
除)、簡単振り分け作業を自動化する方法はないでしょうか?


以下のような作業を何度も繰り返し実行しています。
1)不要なメールを選択して、右クリック、簡単メール振り分け設定を選ぶ
2)一番上の「送信元が○○のメールを選ぶ」
3)「ゴミ箱直行」を選ぶ
4)振るいわけを新規作成、優先順位最高
5)今すぐ振り分ける
6)現在のフォルダ内メールすべてを対象とする

よろしくお願い致します。



[ ]
RE:02966 マクロの記録機能No.02969
秀まるお2 さん 18/02/28 13:48
 
 簡単振り分け設定は、一度特定のやり方で実行すると、次回からは同じルールがお
およそデフォルトになってダイアログボックスが進むようになってます。

 例えば「送信元が○○のメール」を選択して一回実行すれば、次回も同じ設定で出
てきます。

 一回設定して、それと同じ設定を繰り返しだけなら、Enterキーを押してくだけで
いいです。なのでそんなに面倒なことは無いんじゃないかと思います。

 自動でやるとしたら、マクロを使って振り分け設定用のファイルを直接書き換える
手があるにはありまして、昔似たような問い合わせがあった時にマクロの例をお返事
したことがありました。

 とりあえず、From:のメールアドレスを限定してゴミ箱フォルダに振り分けるだけ
でしたら、以下のようなマクロになります。ただ、マクロを使って簡単に設定してし
まうと、間違ってマクロ実行して大事なメールが全部ゴミ箱行きになってた、なんて
こともありえるので、その辺は注意が必要かと思います。特に複数選択して実行した
ら選択してるメール全部ゴミ箱行きっていうのは危険なので、マクロではそこまでや
ってないです。

 (今まさら同じような話が届いてる所だし)

-------------------------マクロ内容-----------------------------------------
    //現在選択してるメールのFrom:メールアドレスで振り分け設定を追加する。
    //振り分け先は、ゴミ箱固定とする。「通知無し」もセット。
    //
    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→ 通知無し+\"\\\\ゴミ箱\"に移動する";

    #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 );
    }

[ ]