|
回答ありがとうございます。
メールを受信した後に
以前にアドバイスをいただいたマクロを自動起動で流しております。
メールを振り分けるような設定はしてないです。(もちろんコピーも)
アカウントもひとつしか設定してないです。
>対症療法として、そういうヘッダがあってエラーになったとしても、それが受信
>の最中であったとしたら、エラーメッセージを表示することなく受信を完了し、
>受信が完了した後にまとめてエラーを表示するって修正をさせていただきます。
上記の対処療法は次のバージョンアップの際にってことでしょうか??
また、こちらの事情ではありますが、
メールをすべて回収してしまっているので「全検索」ができませんでした。
すみません。
---マクロ内容---
// 1アカウント丸ごとエクスポートマクロ
loaddll "TKInfo.dll";
if ( !result ) endmacro;
if ( !dllfunc( "IsTuruKame" ) ) endmacro;
// エクスポート先のベースディレクトリ
// 適宜修正してください
$base_dir = "C:\\temp\\mail\\";
#n = dllfunc( "SelectFolder", "", "" );
$currentAccount = dllfuncstr( "CurrentAccount" ); // アカウント名を記録しておく
while (1) {
#n = dllfunc( "ExpandFolder", 1 );
#n = dllfunc("NextFolder");
if (#n == 0) {
goto DeleteAll
endmacro;
}
$account = dllfuncstr( "CurrentAccount" );
if ($account != $currentAccount) {
goto DeleteAll
endmacro;
}
$folder = dllfuncstr( "CurrentFolder" );
if ($folder == "受信" || $folder == "未送信" || $folder == "草稿" || $folde
r == "ゴミ箱") continue; // エクスポート対象外
call ExportAllMails;
}
endmacro;
// 渡されたパスのディレクトリを作成するサブルーチン
// MakeSureDirectoryPathExists関数と同じ
CreateDirectory:
$$dir = $$1;
$$mkdir = "";
##pos = strstr($$dir, "\\");
while (##pos >= 0) {
if (strlen($$mkdir) > 0) $$mkdir = $$mkdir + "\\";
$$mkdir = $$mkdir + leftstr($$dir, ##pos);
$$dir = rightstr($$dir, strlen($$dir) - ##pos - 1);
##n = dllfunc("Bypass_CreateDirectory", $$mkdir);
##pos = strstr($$dir, "\\");
}
if (strlen($$dir) > 0 ) {
if (strlen($$mkdir) > 0) $$mkdir = $$mkdir + "\\";
$$mkdir = $$mkdir + $$dir;
##n = dllfunc("Bypass_CreateDirectory", $$mkdir);
}
return;
// 現在選択されているフォルダの、全てのメールをエクスポートするサブルーチン
ExportAllMails:
##n = dllfunc( "GetFolderMailCount", "", "", "all");
if (##n == 0) return;
##n = dllfunc("SetViewArea", 0);
##n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);
$$folder = dllfuncstr( "CurrentFolder" );
call CreateDirectory $base_dir + $$folder;
##n = dllfunc("Export", $base_dir + $$folder, "eml-number", "encode-attach",
"orikaeshi");
return;
DeleteAll:
#n = dllfunc("SelectFolder", $currentAccount, "" );
if( #n == 0 ) endmacro;
while (1) {
#n = dllfunc( "ExpandFolder", 1 );
#n = dllfunc("NextFolder");
if (#n == 0) {
break;
}
$account = dllfuncstr( "CurrentAccount" );
if ($account != $currentAccount) {
break;
}
$folder = dllfuncstr( "CurrentFolder" );
if ($folder == "未送信" || $folder == "草稿") continue;
#n = dllfunc("SetViewArea", 0);
#n = dllfunc("SelectAllMail");
#n = dllfunc("Delete", 1);
}
#n = dllfunc( "SelectFolder", $currentAccount, "" );
endmacro;
|
|