/**
  * (@inherit)
  */
 public function setFlags(EmailFolder $folder, Email $email, $flags)
 {
     $repoImapEmail = $this->em->getRepository('OroImapBundle:ImapEmail');
     $uid = $repoImapEmail->getUid($folder->getId(), $email->getId());
     $this->connector->selectFolder($folder->getFullName());
     $this->connector->setFlags($uid, $flags);
 }
 public function testGetItem()
 {
     $msg = new \stdClass();
     $this->storage->expects($this->at(0))->method('getNumberByUniqueId')->with($this->equalTo(123))->will($this->returnValue(12345));
     $this->storage->expects($this->at(1))->method('getMessage')->with($this->equalTo(12345))->will($this->returnValue($msg));
     $result = $this->connector->getItem(123);
     $this->assertTrue($msg === $result);
 }
 /**
  * Gets UIDVALIDITY of the given folder
  *
  * @param EmailFolder|Folder|string $folder
  *
  * @return int|null
  */
 public function getUidValidity($folder)
 {
     if ($folder instanceof Folder) {
         $folderName = $folder->getGlobalName();
     } elseif ($folder instanceof EmailFolder) {
         $folderName = $folder->getFullName();
     } elseif (is_string($folder)) {
         $folderName = $folder;
     }
     if (!isset($folderName)) {
         throw new \RuntimeException('Invalid argument passed to getUidValidity method');
     }
     try {
         $this->connector->selectFolder($folderName);
         return $this->connector->getUidValidity();
     } catch (\Exception $e) {
         return null;
     }
 }
 public function testSetFlags()
 {
     $uid = 123;
     $id = 12345;
     $flags = [];
     $this->storage->expects($this->once())->method('getNumberByUniqueId')->with($this->equalTo($uid))->will($this->returnValue($id));
     $this->storage->expects($this->once())->method('setFlags')->with($id, $flags);
     $response = $this->connector->setFlags($uid, $flags);
     $this->assertInstanceOf('Oro\\Bundle\\ImapBundle\\Connector\\ImapConnector', $response);
 }
 /**
  * Creates Email DTO for the given email message
  *
  * @param Message $msg
  *
  * @return Email
  */
 public function convertToEmail(Message $msg)
 {
     $headers = $msg->getHeaders();
     $email = new Email($msg);
     $email->setId(new ItemId(intval($headers->get('UID')->getFieldValue()), $this->connector->getUidValidity()))->setSubject($this->getString($headers, 'Subject'))->setFrom($this->getString($headers, 'From'))->setSentAt($this->getDateTime($headers, 'Date'))->setReceivedAt($this->getReceivedAt($headers))->setInternalDate($this->getDateTime($headers, 'InternalDate'))->setImportance($this->getImportance($headers))->setMessageId($this->getString($headers, 'Message-ID'))->setXMessageId($this->getString($headers, 'X-GM-MSG-ID'))->setXThreadId($this->getString($headers, 'X-GM-THR-ID'));
     foreach ($this->getRecipients($headers, 'To') as $val) {
         $email->addToRecipient($val);
     }
     foreach ($this->getRecipients($headers, 'Cc') as $val) {
         $email->addCcRecipient($val);
     }
     foreach ($this->getRecipients($headers, 'Bcc') as $val) {
         $email->addBccRecipient($val);
     }
     return $email;
 }
Exemple #6
0
 /**
  * Creates Email DTO for the given email message
  *
  * @param Message $msg
  *
  * @return Email
  *
  * @throws \RuntimeException if the given message cannot be converted to {@see Email} object
  */
 public function convertToEmail(Message $msg)
 {
     $headers = $msg->getHeaders();
     $email = new Email($msg);
     try {
         $email->setId(new ItemId(intval($headers->get('UID')->getFieldValue()), $this->connector->getUidValidity()))->setSubject($this->getString($headers, 'Subject'))->setFrom($this->getString($headers, 'From'))->setSentAt($this->getDateTime($headers, 'Date'))->setReceivedAt($this->getReceivedAt($headers))->setInternalDate($this->getDateTime($headers, 'InternalDate'))->setImportance($this->getImportance($headers))->setRefs($this->getReferences($headers, 'References'))->setXMessageId($this->getString($headers, 'X-GM-MSG-ID'))->setXThreadId($this->getString($headers, 'X-GM-THR-ID'))->setMessageId($this->getMessageId($headers, 'Message-ID'))->setMultiMessageId($this->getMultiMessageId($headers, 'Message-ID'))->setAcceptLanguageHeader($this->getAcceptLanguageHeader($headers));
         foreach ($this->getRecipients($headers, 'To') as $val) {
             $email->addToRecipient($val);
         }
         foreach ($this->getRecipients($headers, 'Cc') as $val) {
             $email->addCcRecipient($val);
         }
         foreach ($this->getRecipients($headers, 'Bcc') as $val) {
             $email->addBccRecipient($val);
         }
         return $email;
     } catch (\Exception $e) {
         throw new \RuntimeException(sprintf('Cannot parse email message. Subject: %s. Error: %s', $email->getSubject(), $e->getMessage()), 0, $e);
     }
 }