Example #1
0
 public function find(Message $message)
 {
     $fp = fopen('./data/ml/mail/test2.txt', 'w+');
     fwrite($fp, $message->getSubject());
     fwrite($fp, "\n");
     fwrite($fp, strip_tags($message->getBody()));
     fclose($fp);
     $output = trim(shell_exec("python ./python/src/prod_mail2_predict.py"));
     if ($output) {
         $profileRepo = $this->_lockedEm->getRepository('Common\\Entity\\Profile');
         $profile = $profileRepo->findOneBy(array('id' => $output));
         $msgProfile = new Message\Profile();
         $msgProfile->setMessage($message)->setOwner(true)->setProfile($profile);
         $message->getMessageProfiles()->add($msgProfile);
         $state = new Message\State();
         $state->setMessage($message)->setState(Message\State::STATE_OWNED);
         $message->getStates()->add($state);
     }
 }
Example #2
0
 /**
  * @param \Common\Entity\Email $email
  * @param \Zend\Mail\Storage\Message $part
  */
 protected function getState(ZendMessage $part)
 {
     $state = null;
     // state auto reply
     if (is_null($state) && !empty($part->getHeaders()) && isset($part->autosubmitted)) {
         $state = State::STATE_AUTO_REPLY;
     }
     // state delivery notice
     if (!empty($part->getHeaders()) && isset($part->contenttype)) {
         $dummy = explode(';', $part->contentType);
         if (stripos($dummy[0], 'delivery-status') !== FALSE) {
             $state = State::STATE_DELIVERY_NOTICE;
         }
     }
     // state spam
     if (is_null($state) && !empty($part->getHeaders()) && isset($part->subject)) {
         if (stripos($part->subject, 'spam-suspect') !== FALSE) {
             $state = State::STATE_SPAM;
         }
     }
     // state paypal
     $from = $this->message->getAddresses()->filter(function ($entry) {
         return $entry->getType() == Address::TYPE_FROM;
     })->first();
     if (strcasecmp($from->getAddress(), '*****@*****.**') === 0) {
         $state = State::STATE_PAYPAL;
     }
     // state ups
     $from = $this->message->getAddresses()->filter(function ($entry) {
         return $entry->getType() == Address::TYPE_FROM;
     })->first();
     if (strcasecmp($from->getAddress(), '*****@*****.**') === 0) {
         $state = State::STATE_UPS;
     }
     // state new
     if (is_null($state)) {
         $state = State::STATE_NEW;
     }
     if ($this->message->getStates()->count() > 0) {
         $currentState = $this->message->getStates()[0]->getState();
         if ($currentState !== State::STATE_NEW) {
             return;
         }
         $stateObj = $this->message->getStates()[0];
     } else {
         $stateObj = new State();
     }
     $stateObj->setMessage($this->message)->setState($state);
     $this->message->getStates()->add($stateObj);
 }