function pollMonitoredInboxesForBouncedCampaignEmails() { $GLOBALS['log']->info('----->Scheduler job of type pollMonitoredInboxesForBouncedCampaignEmails()'); global $dictionary; $ie = new InboundEmail(); $r = $ie->db->query('SELECT id FROM inbound_email WHERE deleted=0 AND status=\'Active\' AND mailbox_type=\'bounce\''); while ($a = $ie->db->fetchByAssoc($r)) { $ieX = new InboundEmail(); $ieX->retrieve($a['id']); $ieX->connectMailserver(); $GLOBALS['log']->info("Bounced campaign scheduler connected to mail server id: {$a['id']} "); $newMsgs = array(); if ($ieX->isPop3Protocol()) { $newMsgs = $ieX->getPop3NewMessagesToDownload(); } else { $newMsgs = $ieX->getNewMessageIds(); } //$newMsgs = $ieX->getNewMessageIds(); if (is_array($newMsgs)) { foreach ($newMsgs as $k => $msgNo) { $uid = $msgNo; if ($ieX->isPop3Protocol()) { $uid = $ieX->getUIDLForMessage($msgNo); } else { $uid = imap_uid($ieX->conn, $msgNo); } // else $GLOBALS['log']->info("Bounced campaign scheduler will import message no: {$msgNo}"); $ieX->importOneEmail($msgNo, $uid, false, false); } } imap_expunge($ieX->conn); imap_close($ieX->conn); } return true; }
} } } header('Location: index.php?module=Emails&action=ListView&type=inbound&assigned_user_id=' . $current_user->id); } elseif (isset($_REQUEST['type']) && $_REQUEST['type'] == 'group') { $ie = new InboundEmail(); // this query only polls Group Inboxes $r = $ie->db->query('SELECT inbound_email.id FROM inbound_email JOIN users ON inbound_email.group_id = users.id WHERE inbound_email.deleted=0 AND inbound_email.status = \'Active\' AND mailbox_type != \'bounce\' AND users.deleted = 0 AND users.is_group = 1'); while ($a = $ie->db->fetchByAssoc($r)) { $ieX = new InboundEmail(); $ieX->retrieve($a['id']); $ieX->connectMailserver(); //$newMsgs = $ieX->getNewMessageIds(); $newMsgs = array(); if ($ieX->isPop3Protocol()) { $newMsgs = $ieX->getPop3NewMessagesToDownload(); } else { $newMsgs = $ieX->getNewMessageIds(); } if (is_array($newMsgs)) { foreach ($newMsgs as $k => $msgNo) { $uid = $msgNo; if ($ieX->isPop3Protocol()) { $uid = $ieX->getUIDLForMessage($msgNo); } else { $uid = imap_uid($ieX->conn, $msgNo); } // else $ieX->importOneEmail($msgNo, $uid); } }
public function testgetPop3NewMessagesToDownload() { $inboundEmail = new InboundEmail(); $inboundEmail->mailbox = 'INBOX,OUTBOX'; $result = $inboundEmail->getPop3NewMessagesToDownload(); $this->assertTrue(is_array($result)); }