/** * Cache content and split in parts if multipart * * @throws Exception\RuntimeException * @return null */ protected function _cacheContent() { // caching content if we can't fetch parts if ($this->_content === null && $this->_mail) { $this->_content = $this->_mail->getRawContent($this->_messageNum); } if (!$this->isMultipart()) { return; } // split content in parts $boundary = $this->getHeaderField('content-type', 'boundary'); if (!$boundary) { throw new Exception\RuntimeException('no boundary found in content type to split message'); } $parts = Mime\Decode::splitMessageStruct($this->_content, $boundary); if ($parts === null) { return; } $counter = 1; foreach ($parts as $part) { $this->_parts[$counter++] = new self(array('headers' => $part['header'], 'content' => $part['body'])); } }