|
送受信処理を実施したアカウント情報の取得について
(1)一つのアカウントで送受信された
(2)すべて送受信系コマンドで実施された
(3)アカウントグループを選択して、送受信された
(4)定期受信で受信された
のどれを実施されたものなのか判別する方法はないものかなと調べていたら
GetTransmitCommandCodeというのがあるのに初めて気づきました。
(1),(2),(3)は下記のような方法で送信、受信を実施したアカウントを特定
できるかなと考えました。
定期受信で受信したアカウントを特定する方法がよくわかりませんでした。
GetAccountPropのfExcludeFromAutoDownで受信したアカウントを特定できるかなと
おもったのですが、"何回に1回の割合で対象とするか"を設定していた場合、
どのアカウントで実施したのかわかりません。
どのようにすれば、受信したアカウント情報を取得できるでしょうか?。
回答よろしくお願いいたします。
どのアカウントで送受信を実施されたかどうかの情報を取得するのに、
(1)の場合は、
は、CurrentAccountでわかると認識しています。
$$account = dllfuncstr( "CurrentAccount" );
message "実施アカウント=" + $$account ;
(2)の場合は、すべてのアカウントでGetAccountPropを利用して
"すべて送受信"の対象であるかどうかを判別すれば、どのアカウントで
受信処理をしたのか取得できると認識しています。
##cnt = 0;
while( 1 ) {
$$account = dllfuncstr( "Account", ##cnt );
if( $$account == "" ) break;
##n = dllfunc("LoadAccountProp", $$account );
//LoadAccountProp関数でメモリ上にロードされたプロパティを
//GetAccountProp関数で参照できます。
//秀丸メール本体上でもエディタ上ででも実行可能です。
//このアカウントを「すべて送受信」の対象外とするかどうかのフラグ
//1の時に対象外となる
##n = dllfunc("GetAccountProp","fExcludeFromAllTransmit")
if(##n ==0){
message "実施アカウント=" + $$account ;
}
##cnt = ##cnt + 1;
}
(3)の場合は、CurrentAccountGroupの情報で、どのアカウントで受信したのか
取得できると認識しています。
$$s = dllfuncstr("CurrentAccountGroup");
$$a = dllfuncstr( "CurrentAccount" );
//CurrentAccountGroup情報が取得できたand
//CurrentAccount情報が無しの場合、アカウントグループが選択されて処理されたと
//判断する
if( ($$a == "") &&
($$s != "")){
##cnt = 0;
while( 1 ) {
$$account = dllfuncstr( "Account", ##cnt );
if( $$account == "" ) break;
##n = dllfunc("LoadAccountProp", $$account );
//LoadAccountProp関数でメモリ上にロードされたプロパティを
//GetAccountProp関数で参照できます。
//秀丸メール本体上でもエディタ上ででも実行可能です。
//このアカウントを「すべて送受信」の対象外とするかどうかのフラグ
//1の時に対象外となる
$$wk = dllfuncstr("GetAccountProp","szAccountGroup") ;
if($$s == $$wk){
message "実施アカウント=" + $$account ;
}
##cnt = ##cnt + 1;
}
}
|
|