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); } }
/** * @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); }