searchMailbox('ALL FROM "'.trim($conf['from_sender']).'"'); } else { $date = date("j F Y", strtotime('-1 day')); if($debug){ $date = '19 July 2024'; echo $date.'***'; var_dump($target_uid); } if (!is_null($target_uid) || ( (int)$conf['id_agent'] == 11082 && ($conf['track_code'] == 'last_checked_mail4_id' || $conf['track_code'] == 'last_checked_mail5_id') ) || ( (int)$conf['id_agent'] == 17453 && $conf['track_code'] == 'last_checked_mail32_id' ) || ( (int)$conf['id_agent'] == 10429 && ($conf['track_code'] == 'last_checked_mail14_id' || $conf['track_code'] == 'last_checked_mail16_id' || $conf['track_code'] == 'last_checked_mail141_id') ) || ( (int)$conf['id_agent'] == 14453 && $conf['track_code'] == 'last_checked_mail15_id' ) ) $mailsIds = $mailbox->searchMailbox('ALL'); else if ((int)$conf['id_agent'] == 13154 && $date == '19 July 2024'){ echo "******"; $mailsIds = $mailbox->searchMailBox('SINCE "'.date('d-M-Y').'"'); } else $mailsIds = $mailbox->searchMailbox('SINCE "'.$date.'"'); } if($debug){ var_dump($mailsIds); } } catch(PhpImap\Exceptions\ConnectionException $ex) { echo "IMAP connection failed: " . $ex; } // If $mailsIds is empty, no emails could be found if(!$mailsIds) { echo 'Mailbox is empty'; } else { if (!is_null($conf['mailbox'])) echo '

Get mails from ' . $conf['mailbox']['login']." at ".date('d.m.Y H:i:s')."

"; $latest_uid = 0; if ($debug && isset($_GET['latest_uid'])) { $latest_uid = intval($_GET['latest_uid']); } else { // обходим все ИД и смотрим, какие мы еще не обрабатывали $sql = "SELECT `value` FROM `params` WHERE `code` = 'last_checked_mail_id'"; if (isset($conf['track_code'])) $sql = "SELECT `value` FROM `params` WHERE `code` = '{$conf['track_code']}'"; $result = mysql_query($sql, $mdb); $m = mysql_fetch_row($result); $latest_uid = $m[0]; } if (!is_null($conf['id_agent'])) $id_agent = (int)$conf['id_agent']; else $id_agent = 9799; if (!is_null($conf['who_work_id'])) $who_work_id = (int)$conf['who_work_id']; else $who_work_id = $id_agent; $doer_id = null; if (!empty($conf['doer_id'])) $doer_id = (int)$conf['doer_id']; //var_export($mailsIds); $messages = []; if ($debug) echo '

Debug mode!

'; echo '

Mails ID: '.implode(', ', $mailsIds).'

'; //застройщики if ($id_agent == 19570 || $id_agent == 20947 || $id_agent == 20197) { $agency_id = $id_agent; } else { $agency_id = User::getAgencyIdForUser($id_agent); } $agency_users_ids = User::getAllAgencyUsers($agency_id); foreach ($mailsIds as $newId) { //echo $newId."\n"; if (($newId > $latest_uid) || (!is_null($target_uid) && $target_uid == $newId) || $debug) { $clients = new Clients(); $requisitions = new Requisitions(); echo '

New e-mail ID: '.$newId.'

'; $mail = $mailbox->getMail($newId); $mailInfo = $mailbox->getMailsInfo([$newId]); // getMailsInfo() возвращает массив объектов-заголовков, берём первый элемент $mailInfoItem = (!empty($mailInfo) && isset($mailInfo[0])) ? $mailInfo[0] : null; $mailFrom = (is_object($mailInfoItem) && isset($mailInfoItem->from)) ? $mailInfoItem->from : ''; $html = str_get_html($mail->textHtml); if (!empty($conf['subj_contains']) && strpos($mail->subject, $conf['subj_contains']) === false) { echo '
SKIP Mail ID: ' . $newId . ' / Subject: ' . $mail->subject . ' / From: <' . $mailFrom . '>'; continue; } // Пропускаем письма от неизвестных источников, если указаны в конфигурации парсера if (!empty($mailFrom) && !empty($conf['only_from'])) { if (!in_array($mailFrom, $conf['only_from'])) { echo '
SKIP Mail ID: ' . $newId . ' / Subject: ' . $mail->subject . ' / From: <' . $mailFrom . '>'; continue; } } if ($debug) echo '
Processing Mail ID: '.$newId.' / Subject: '.$mail->subject.' / From: <'.$mailFrom.'>'; if ($debug) { echo 'RAW: ' . '
'; } if ((int)$conf['id_agent'] == 11082 && ($conf['track_code'] == 'last_checked_mail13_id' || $conf['track_code'] == 'last_checked_mail4_id' || $conf['track_code'] == 'last_checked_mail5_id' || $conf['track_code'] == 'last_checked_mail7_id' || $conf['track_code'] == 'last_checked_mail8_id' || $conf['track_code'] == 'last_checked_mail11_id')) { $body = strip_tags(trim($mail->textPlain), 'br,p,strong,h2'); $body = var_export($body, true); $body = ltrim($body, "'"); $body = rtrim($body, "'"); } else { if ((int)$conf['id_agent'] == 18763 && $conf['track_code'] == 'last_checked_mail31_id') { $body = strip_tags(trim($mail->textPlain), 'br,p,strong,h2'); $body = var_export($body, true); $body = ltrim($body, "'"); $body = rtrim($body, "'"); } else { $body = strip_tags($html->innertext, '
,br,p,strong,h2'); } } if ((int)$id_agent == 10429 || (int)$id_agent == 17453 || (int)$id_agent == 19932) $body = preg_replace('/\s+/', ' ', $body); echo 'Mail: ' . ''; $phone = ''; $fio = ''; $mail = ''; $tag_name = ''; $utm = ''; $target_site = null; if ((int)$id_agent == 13154) { //Приведи друга $phoneFriend = false; $fioFriand = false; $clientIdFriand = 0; } if ((int)$id_agent == 11082 || (int)$id_agent == 10429 || (int)$id_agent == 19932 || (int)$id_agent == 17453 || (int)$id_agent == 14453 || ((int)$conf['id_agent'] == 18763 && $conf['track_code'] == 'last_checked_mail31_id')) { $body_cl = cleanHtml($body, '