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