initialize(); // batch process here error_reporting(E_ALL); //var_dump(imap_open ("{mail.klape.cz:993/pop3/ssl/novalidate-cert}INBOX", POP3_USER, POP3_PASS)); //var_dump(imap_last_error()); $inbox = imap_open(POP3_HOST, POP3_USER, POP3_PASS); if ($inbox) { print("INFO: Připojeni ke schránce proběhlo vpořádku.\n"); $list = imap_list($inbox, POP3_HOST, "*"); if (is_array($list)) { print("INFO: Vypisuji zprávy.\n"); $num = 1; foreach ($list as $message) { $header = imap_headerinfo($inbox, $num); $body = imap_body($inbox, $num); if ($header && $body) { $handle = fopen(dirname(__FILE__).'/fio-mails/'.date('Y-m-d_His').'-'.$num, 'w'); if(!$handle) { die('Neporarilo se vytvorit zalohu!!!!'); } fwrite($handle, $body); fclose($handle); if ($header->subject == 'Fio banka - prijem na konte') { print("ZPRÁVA: " . $num . '-' . $header->subject . "\n"); $result = parseInBody($body); } elseif ($header->subject == 'Fio banka - vydaj na konte') { print("ZPRÁVA: " . $num . '-' . $header->subject . "\n"); $result = parseOutBody($body); } else { print("PŘESKAKUJI: " . $header->subject . "\n"); continue; } $fio = new Fio(); $fio->setOffset($result['offset']); $fio->setAmount(str_replace(',','.',str_replace(' ','',$result['amount']))); $fio->setVs($result['vs']); $fio->setNote($result['note']); $fio->setAccount($result['account']); $fio->setSs($result['ss']); $fio->setKs($result['ks']); $fio->setType($result['type']); $fio->setPristupyId(getPristupyId($result['vs'])); $fio->save(); } imap_delete($inbox, $num); $num++; } imap_expunge($inbox); } } print("KONEC.\n"); function getPristupyId($vs) { /* switch ($vs) { case '20070': case '20080': case '20090': case '20100': case '28702': case '29702': return 2; // Hracicka case '28071': case '29071': return 3; // Hardware, dom�ny, hosting case '28704': case '29704': return 4; // Bajo vsechno case '28703': case '29703': return 5; case '28705': case '29705': return 0; // IT default: return 0; // nyc } */ return 2; // vzdycky Hracicka } function parseInBody($body) { $result = array(); $lines = explode("\n", $body); $result['type'] = 1; $result['offset'] = substr($lines[0], strlen('P=F8=EDjem na kont=EC: ')); $result['amount'] = substr($lines[1], strlen('=C8=E1stka: ')); $result['vs'] = substr($lines[2], strlen('VS: ')); $result['note'] = substr($lines[3], strlen('Zpr=E1va p=F8=EDjemci: ')); $result['balance'] = substr($lines[4], strlen('Aktu=E1ln=ED z=F9statek: ')); $result['account'] = substr($lines[5], strlen('Proti=FA=E8et: ')); $result['ss'] = substr($lines[6], strlen('SS: ')); $result['ks'] = substr($lines[7], strlen('KS: ')); return $result; } function parseOutBody($body) { $result = array(); $lines = explode("\n", $body); $result['type'] = 0; $result['offset'] = substr($lines[0], strlen('Prijem na konte: ')); $result['amount'] = substr($lines[1], strlen('=C8=E1stka: ')); $result['vs'] = substr($lines[2], strlen('VS: ')); $result['note'] = substr($lines[3], strlen('US: ')); $result['balance'] = substr($lines[4], strlen('Aktu=E1ln=ED z=F9statek: ')); $result['account'] = substr($lines[5], strlen('Proti=FA=E8et: ')); $result['ss'] = substr($lines[6], strlen('SS: ')); $result['ks'] = substr($lines[7], strlen('KS: ')); return $result; }