CheckDuplication関数(TKInfo.dll)(Ver5.78対応版)
 CheckDuplication関数は、重複メールのチェックコマンドを実行します。この関数は、メニュー上で「重複メールのチェック」コマンドを実行する場合よりも細かい動作を指定することができます。
 この関数は秀丸メール本体ウィンドウ上でのみ実行できます。
パラメータ1(文字列型)
 CheckDuplication関数の動作についてのモードを指定します。モードの指定は文字列を使い、複数ある場合は"+"記号を使って連結させて指定します。
 たとえば、"batch"と"under"を両方指定したい場合は、"batch+under"と指定します。

 指定できるモードは以下の通りです。
"batch"  重複メールを見つけた時の問い合わせダイアログボックスを出さずに、暗黙のうちに重複メールを削除します。ダイアログボックス中の「1つだけ残すの一括処理」ボタンを押したのと同じ動作となります。
"under" 指定された対象フォルダの配下のフォルダすべてについて「重複メールのチェック」を実行します。
"hotonly"  新着メールかどうかのフラグを利用して、重複メールのチェック処理を高速化します。このオプションを指定した場合、新着でないメール間での重複チェックが行われなくなります。 何かメールを受信して、そのメールが重複した物になっているかどうか調べるだけの場合にはこのオプションを指定してください。
"smallretain" 重複メールを「1つだけ残す」とした場合に、普通はサイズの一番大きいメールだけが残りますが、このモードを指定すると、サイズの一番小さいメールだけが残るようになります。
"yesall""  batch"を指定していてもなお出てくる問い合わせメッセージをすべて省略します。それらの問い合わせメッセージに対してすべて「はい」を押したのと同じ扱いにになります。 具体的には、メモ付き/色つき/マーク付きメールが見つかった場合の問い合わせメッセージ、Date:ヘッダが違っている時の問い合わせメッセージを出さなくします。
 モード指定が必要ない場合は、""を指定するか、またはパラメータ自体を省略できます。


パラメータ2、パラメータ3(文字列型)
 パラメータ2およびパラメータ3で、チェック対象のフォルダを指定します。パラメータ2側ではアカウント名、パラメータ3側ではフォルダ名を指定します。
 パラメータ2とパラメータ3の両方を省略した場合(または両方とも""を指定した場合)には、現在選択しているフォルダを対象として動作します。
 パラメータ3のみを省略した場合、パラメータ2で指定したアカウント自体が対象となります(この場合はパラメータ1で"under"が指定されてないとうまく動作しませんが)。


返り値(数値型)
 パラメータが間違っている場合や何らかのエラーが発生した場合は0を返します。
 重複メールの問い合わせダイアログボックスが出てユーザーがキャンセルした場合は1を返します。この場合、重複メールの一部は削除済みである可能性があります。
 重複メールが無かった場合は2を返します。
 重複メールがあってすべて適当に処理された場合は3を返します。


#n = dllfunc( "CheckDuplication", "batch" );
    // 現在フォルダの重複メールチェック、自動処理
#n = dllfunc( "CheckDuplication", "batch", dllfuncstr("CurrentAccount") );
    // 現在アカウント全体の重複メールチェック
#n = dllfunc( "CheckDuplication", "under+batch+hotonly", "TestAccount", "ML" );
    // 特定フォルダ配下(たとえばメーリングリスト用のフォルダ全体)についての重複メールチェック
備考
 メーリングリストなどの特定の種類のメールが重複して受信してしまうことがある場合には、受信が一段落した時用のマクロを適当に登録し、そのマクロ内でCheckDuplication関数を実行すると便利です。この場合、モード指定で"batch+hotonly"を指定するといいです。



戻る