|
いつも秀丸メール便利に活用させて頂いております
さて
掲題につき
(背景1)
In-Reply-To:ヘッダがある場合は、
振り分け設定で、優先順位最下位に「フォルダへ移動」の所に
「\((スレッドの親メールと同じフォルダ)」を指定して、
振り分けコマンド時のみ有効、として、
「受信」フォルダで新着を閲覧後に振り分けコマンドを実行して、
各関連フォルダに移動させて保存しています。
(背景2)
類似の操作を、In-Reply-To:ヘッダが無いメールに対しても
行いたいのですが、連結先候補が複数出現する可能性が有り、
確認してから、移動する、というワークフローが期待されます。
そこでとりあえず、
Re:で始まるメールを無理矢理連結する候補先の検索方法を考えました。
候補先を特定するための検索設定は、内部的にあるのかと思います。
その設定値を関数なりで取り出せると便利かと思いましたが、
とりあえず、ヘルプを参考に頑張って文字列編集のマクロを組んでみました。
以下の点で請助言;
1)文字列操作のための新規エディタでの処理をステルス化出来ないか。
2)文字列操作は正しいか(内部処理とほぼ同一か)。
3)「移動先候補フォルダ名の取得→移動」まで半自動化できないか。
たとえば、第一候補を表示して、移動して良いか問いあわせる、など。
以下マクロ(案)
loaddll "TKInfo.dll";
$Subject = dllfuncstr("CurrentHeader", "Subject:");
//以下ヘルプを参考に作成
#n = dllfunc("NewMail");
#headerView = dllfunc("HeaderView");
#n = dllfunc("SwitchHeaderView", 0);
selectall
delete
insert $Subject;
clearupdated
replaceall "\\[.+\\]", "", regular;
replaceall "re:", "";
replaceall "fw:", "";
replaceall "^ +", "", regular;
if( updated ) {
selectall
cut
beginclipboardread;
$Subject = getclipboard;
}
#n = dllfunc("SwitchHeaderView", #headerView);
#TempWnd = hidemaruhandle(0);
#n = dllfunc( "SetMainWndTop" ); //本体に移動
closehidemaruforced #TempWnd;
// Grep実行(SetFindPackのパラメタの指定が難しい)
#n = dllfunc("SetFindPack", "(\""+$Subject+"\", target=subject), inmail=2");
#n = dllfunc("DoGrep2", "\\CurrentAccount", "", 1);
endmacro;
|
|