|
ということで適当に作ってみました。
そのままでいけるかどうか分かりませんが、とりあえずこんなマクロになるっ
てことで試してみて欲しいです。
----------------------------
loaddll "tkinfo.dll";
//グローバル変数:
// #inner_count ... 社内のメールアドレスの数
// #outer_count ... 社外のメールアドレスの数
// #book_count ... 社内/社外のグループとは別のグループのメンバー
// $unknown_list ... 登録されてない人の宛先のリスト
#inner_count = 0;
#outer_count = 0;
#book_count = 0;
$unknown_list = "";
##to_count = dllfunc("CountCurrentHeader", "To");
##cc_count = dllfunc("CountCurrentHeader", "Cc");
##bcc_count = dllfunc("CountCurrentHeader", "Bcc");
##i = 0;
while( ##i < ##to_count ) {
$$s = dllfuncstr("CurrentHeader2", "To", ##i);
call BookConvert $$s;
##i = ##i + 1;
}
##i = 0;
while( ##i < ##cc_count ) {
$$s = dllfuncstr("CurrentHeader2", "Cc", ##i);
call BookConvert $$s;
##i = ##i + 1;
}
##i = 0;
while( ##i < ##bcc_count ) {
$$s = dllfuncstr("CurrentHeader2", "Bcc", ##i);
call BookConvert $$s;
##i = ##i + 1;
}
if( #unknown_count != 0 ) {
if( #inner_count != 0 ) {
if( #outer_count != 0 ) {
$message = "社内/社外/未知の宛先が全部混在しています。";
} else {
$message = "社内のメンバーと未知の宛先が混在しています。";
}
} else {
if( #outer_count != 0 ) {
$message = "社外のメンバーと未知の宛先が混在しています。";
} else {
$message = "未知の宛先にメールを送ろうとしています。";
}
}
$message = $message + "このまま送信してもいいですか?\n\n" +
"未知の宛先:\n" + $unknown_list;
#result = dllfunc("Bypass_MessageBox"
, hidemaruhandle(0)
, $message
, "送信前の宛先の確認"
, 0x30 + 3 + 0x100 );
} else {
#button = 0x40 + 1;
if( #inner_count != 0 ) {
if( #outer_count != 0 ) {
$message = "社内と社外の宛先が混在しています。" +
"かまわずに送信しますか?";
#button = 0x30 + 3 + 0x100;
} else {
$message = "このメールの宛先はすべて社内です。";
}
} else {
if( #outer_count != 0 ) {
$message = "このメールの宛先はすべて社外です。";
} else {
$message = "宛先がありません。";
}
}
#result = dllfunc("Bypass_MessageBox"
, hidemaruhandle(0)
, $message
, "送信前の宛先の確認"
, #button );
}
if( #result != 1 && #result != 6 ) {
#n = dllfunc("SetCancel", 1);
}
endmacro;
BookConvert:
##c = dllfunc("CountEmailList", $$1);
##i = 0;
$$result = "";
while( ##i < ##c ) {
$$one = dllfuncstr("GetEmailList", $$1, ##i);
$$email = dllfuncstr("SetEmailOnly", $$one);
if( $$email == "" ) {
#unknown_count = #unknown_count + 1;
$unknown_list = $unknown_list + $$one + "\n";
} else {
$$group = dllfuncstr("FindBookGroupPath", $$email);
if( $$group == "" ) {
#unknown_count = #unknown_count + 1;
$unknown_list = $unknown_list + $$one + "\n";
} else if( leftstr($$group, 16) == "\\アドレス帳\\社内" ) {
#inner_count = #inner_count + 1;
} else if( leftstr($$group, 16) == "\\アドレス帳\\社外" ) {
#outer_count = #outer_count + 1;
} else {
#unknown_count = #unknown_count + 1;
$unknown_list = $unknown_list + $$one + "\n";
}
}
##i = ##i + 1;
}
return $$result;
|
|