|
サンプルマクロできました。
もしもマクロにバグがあると、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 );
}
|
|