コード例 #1
0
ファイル: Check.php プロジェクト: sysraj86/carnivalcrm
    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);
            }
        }
        imap_expunge($ieX->conn);
        imap_close($ieX->conn);
    }
    header('Location: index.php?module=Emails&action=ListViewGroup');
} else {
    // fail gracefully
    header('Location: index.php?module=Emails&action=index');
}
コード例 #2
0
ファイル: EmailUI.php プロジェクト: NALSS/SuiteCRM
 function doAssignment($distributeMethod, $ieid, $folder, $uids, $users)
 {
     global $app_strings;
     $users = explode(",", $users);
     $emailIds = explode($app_strings['LBL_EMAIL_DELIMITER'], $uids);
     $out = "";
     if ($folder != 'sugar::Emails') {
         $emailIds = array();
         $uids = explode($app_strings['LBL_EMAIL_DELIMITER'], $uids);
         $ie = new InboundEmail();
         $ie->retrieve($ieid);
         $messageIndex = 1;
         // dealing with an inbound email data so we need to import an email and then
         foreach ($uids as $uid) {
             $ie->mailbox = $folder;
             $ie->connectMailserver();
             $msgNo = $uid;
             if (!$ie->isPop3Protocol()) {
                 $msgNo = imap_msgno($ie->conn, $uid);
             } else {
                 $msgNo = $ie->getCorrectMessageNoForPop3($uid);
             }
             if (!empty($msgNo)) {
                 if ($ie->importOneEmail($msgNo, $uid)) {
                     $emailIds[] = $ie->email->id;
                     $ie->deleteMessageOnMailServer($uid);
                     //$ie->retrieve($ieid);
                     //$ie->connectMailserver();
                     $ie->mailbox = $folder;
                     $ie->deleteMessageFromCache($uids[] = $uid);
                 } else {
                     $out = $out . "Message No : " . $messageIndex . " failed. Reason : Message already imported \r\n";
                 }
             }
             $messageIndex++;
         }
         // for
     }
     // if
     if (count($emailIds) > 0) {
         $this->doDistributionWithMethod($users, $emailIds, $distributeMethod);
     }
     // if
     return $out;
 }
コード例 #3
0
ファイル: _AddJobsHere.php プロジェクト: sysraj86/carnivalcrm
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;
}
コード例 #4
0
function pollMonitoredInboxesForBouncedCampaignEmails()
{
    $GLOBALS['log']->info('----->Scheduler job of type pollMonitoredInboxesForBouncedCampaignEmails()');
    global $dictionary;
    require_once 'modules/InboundEmail/InboundEmail.php';
    $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();
        $newMsgs = $ieX->getNewMessageIds();
        if (is_array($newMsgs)) {
            foreach ($newMsgs as $k => $msgNo) {
                $ieX->importOneEmail($msgNo);
            }
        }
        imap_expunge($ieX->conn);
        imap_close($ieX->conn);
    }
    return true;
}
コード例 #5
0
                        $bean->importOneEmail($msgNo);
                    }
                }
                imap_expunge($bean->conn);
                imap_close($bean->conn);
            }
        }
    }
    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();
        if (is_array($newMsgs)) {
            foreach ($newMsgs as $k => $msgNo) {
                $ieX->importOneEmail($msgNo);
            }
        }
        imap_expunge($ieX->conn);
        imap_close($ieX->conn);
    }
    header('Location: index.php?module=Emails&action=ListViewGroup');
} else {
    // fail gracefully
    header('Location: index.php?module=Emails&action=index');
}
コード例 #6
0
 public function testimportOneEmail()
 {
     $inboundEmail = new InboundEmail();
     $inboundEmail->mailbox = 'INBOX';
     $inboundEmail->id = 1;
     //execute the method and test if it works and does not throws an exception.
     try {
         $result = $inboundEmail->importOneEmail('1', '1');
         $this->assertEquals(false, $result);
     } catch (Exception $e) {
         $this->fail();
     }
 }