public function fetchFolderContent($userid, $folderName, $lastupdate, $type) { Logger::log("fetching folder: " . $folderName); $details = self::$gmailDAO->getGmailAccessDetailsForUser($userid); $username = ""; $password = ""; foreach ($details as $key => $value) { if ($key == 'username') { $username = $value; } else { if ($key == 'password') { $password = $value; } } } $inbox = $this->getImapConnection($username, $password, $folderName); $tomorrow = date('d-M-Y', mktime(0, 0, 0, date("m", time()), date("d", time()) + 1, date("Y", time()))); Logger::log("Tomorrow: " . $tomorrow); $startDate = date('d-M-Y', mktime(0, 0, 0, date("m", strtotime($lastupdate)), date("d", strtotime($lastupdate)) - 1, date("Y", strtotime($lastupdate)))); while ($startDate != $tomorrow) { try { set_time_limit(1800); Logger::log("fetching Gmail content for date: " . $startDate); $emails = imap_search($inbox, 'ON ' . $startDate); if ($emails) { $output = ''; Logger::log("Found (" . sizeof($emails) . ") communications [" . $type . "]"); rsort($emails); foreach ($emails as $email_number) { set_time_limit(0); $overview = imap_fetch_overview($inbox, $email_number, 0); if ($type == 'sms') { $message = quoted_printable_decode(imap_fetchbody($inbox, $email_number, 1)); } else { $dataTxt = EmailUtil::get_part($inbox, $email_number, "TEXT/PLAIN"); // GET HTML BODY $dataHtml = EmailUtil::get_part($inbox, $email_number, "TEXT/HTML"); if ($dataHtml != "") { $message = $dataHtml; $mailformat = "html"; } else { $message = ereg_replace("\n", "<br>", $dataTxt); $mailformat = "text"; } } $messageDate = $overview[0]->date; $gmtTimezone = new DateTimeZone('Africa/Johannesburg'); $myDateTime = new DateTime($messageDate, $gmtTimezone); $theDate = date('c', $myDateTime->format('U') + 1); $theDate = date('Y-m-d H:i:s', strtotime($theDate)); $recipient = quoted_printable_decode($overview[0]->to); $subject = Util::ShortenString(quoted_printable_decode($overview[0]->subject), 250); $from = quoted_printable_decode($overview[0]->from); $dayid = self::$pictureDAO->createDay($userid, $theDate); //Logger::log($messageDate." --- ".$message); //Logger::log($message); try { self::$gmailDAO->saveCommunication($subject, $message, $theDate, $dayid, $from, $type, $recipient); } catch (Exception $e) { } } } } catch (Exception $e) { Logger::log($e->getMessage()); } self::$gmailDAO->updateLastUpdate($userid, $type . "_gmail", date("Y-m-d", strtotime($startDate))); $tempDate = mktime(0, 0, 0, date("m", strtotime($startDate)), date("d", strtotime($startDate)) + 1, date("Y", strtotime($startDate))); $startDate = date("d-M-Y", $tempDate); } imap_close($inbox); }