SelectRecvMail関数(TKInfo.dll)(Ver7.22対応版)
 この関数は、直前の受信動作によって受信したメールを1つ選択します。現在のフォルダにある場合はそれを、現在のフォルダに無い場合は他のフォルダを探して選択します。アカウントもまたがってメールを選択します。 選択したメールは、「新着メール」のフラグがOFFになり、また、RecvMailCountInFolderの返す値も減っていきます。
 「新着メール」のフラグがOFFになるのは、秀丸メール内部で「SelectRecvMail済みかどうか」を判定するのに仕方のない処置です。

 この関数で選択できるのは、あくまで「直前の受信動作で受信したメール」だけであって、直前よりもっと前に受信したメールは選択できません。具体的には、メールの送受信日時が直前の受信動作の開始時刻よりも後のメールしか選択されません。

補足:秀丸メールのVersion 6.98までは、「全般的な設定・未読メールの閲覧」の中の未読から既読への自動切り替えの設定によっては選択されたメールが自動で既読に切り替わることがありました。Version 6.99β1からは自動切り替えされない仕様になりました。
返り値(数値型)
 選択に成功した場合は1、失敗した場合は0を返します。


while( dllfunc( "SelectRecvMail" ) ) {
    message "受信したメールを選択しました。";
}

例(添付ファイルを特定フォルダに保存する例)
    $destfolder = "C:\\添付ファイル";
    loaddll "tkinfo.dll";
    $prevaccount = dllfuncstr("CurrentAccount");
    $prevfolder = dllfuncstr("CurrentFolder");
    while( dllfunc( "SelectRecvMail" ) ) {
        #count = dllfunc("CountCurrentHeader", "X-Attach");
        if( #count > 0 ) {
            #i = 0;
            while( #i 'lt; #count ) {
                $attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
                if( dllfuncstr("ToLower", rightstr($attach,4)) == ".p7s" ) {
                    //スキップ
                } else {
                    $src = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\" + $attach;
                    $basename = midstr( $attach, strrstr($attach, "\\") + 1 );
                    $dest = $destfolder + "\\" + $basename;
                    #n = dllfunc("Bypass_CopyFile", $src, $dest, 0 );
                    #n = dllfunc("Bypass_SetFileAttributes", $dest, 0x20 );
                }
                #i = #i + 1;
            }
        }
    }
    #n = dllfunc("SelectFolder", $prevaccount, $prevfolder);

参照:SelectRecvMailInFolder関数