/** * 检查未读邮件 */ public function checkAction() { //$address = $this->_request->getQuery('address'); $emails = $this->_daoEmail->getEmails(array('orgid' => $this->_user->orgId, 'userid' => $this->_user->userId)); $result = array(); foreach ($emails as $email) { if (null != $email && $email->protocol == 'imap' && $email->host) { $port = $email->port ? $email->port : ($email->isSsl ? 993 : 143); $imap = new Zend_Mail_Protocol_Imap(); try { $connect = $imap->connect($email->host, $port, $email->isSsl); } catch (Zend_Mail_Protocol_Exception $e) { continue; } $login = $imap->login($email->address, $email->password); // 登录邮箱 if (!$login) { $result[$email->address] = array('msg' => sprintf($this->lang['mailbox_login_failure'], $email->address, $email->address)); continue; } // 打开INBOX $ret = $imap->examineOrSelect(); if (false !== $ret && isset($ret['recent'])) { $email->unreadNum = (int) $ret['recent']; // 查找新邮件 /*$records = $imap->search('RECENT'); if (false !== $records) { }*/ $result[$email->address] = array('recent' => $email->unreadNum); $this->_daoEmail->updateEmail($email->orgId, $email->userId, $email->address, array('lastcheckinfo' => implode("\n", array($email->unreadNum, $email->lastMailId, $email->lastMailSubject, $email->lastMailFrom)), 'lastchecktime' => time())); } $imap->logout(); } } $this->json(true, null, $result); }