/** * Get email attachments * * @return EmailAttachment[] */ public function getAttachments() { if ($this->attachments === null) { $this->attachments = array(); foreach ($this->message->getAttachments() as $a) { $content = $a->getContent(); $attachment = new EmailAttachment(); $attachment->setFileName($a->getFileName()->getDecodedValue())->setContent($content->getContent())->setContentType($content->getContentType())->setContentTransferEncoding($content->getContentTransferEncoding()); $this->attachments[] = $attachment; } } return $this->attachments; }
/** * Check exists flag * * @param string $flag * * @return bool */ public function hasFlag($flag) { $flags = $this->message->getFlags(); if (in_array($flag, $flags)) { return true; } return false; }
/** * 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); } }