public function testGetHeaderFieldInvalid() { $message = new Message(array('file' => $this->_file)); try { $message->getHeaderField('fake-header-name', 'foo'); } catch (MailException\ExceptionInterface $e) { return; } $this->fail('No exception thrown while requesting invalid field name'); }
/** * convert raw mail to common array format. * * @param ReceiveMessage $rawMail * * common mail array format * * @return null|MailPart */ private function parseMailParts(ReceiveMessage $rawMail) { $rawMailHeaders = $rawMail->getHeaders(); $contentType = isset($rawMail->content_type) ? $rawMail->getHeaderField('Content-Type') : 'no_content_type'; $part = $this->configurePart($contentType); if (is_null($part)) { // prn('first'); return $part; } if ($rawMail->isMultipart()) { $partResult = []; try { foreach ($rawMail as $rawPart) { // prn($rawPart); $tres = $this->parseMailParts($rawPart); // prn($tres); if (!isset($tres)) { continue; } $partResult[] = $tres; } } catch (\Zend\Mail\Header\Exception\InvalidArgumentException $exc) { // prn($exc->getMessage()); } // prn($partResult); $part->setContent($partResult); $part->setHeaders($rawMailHeaders); } else { $isAttachment = in_array(explode('/', $contentType)[0], $this::$attachmentTypes); $partResult = $rawMail->getContent(); if (in_array('Content-Transfer-Encoding', array_keys($rawMailHeaders->toArray())) && isset($partResult)) { $partResult = $this->decode($partResult, $rawMail->contentTransferEncoding); $rawMailHeaders->removeHeader('Content-Transfer-Encoding'); } if ($isAttachment) { switch ($this->attachmentProcessingType) { case self::AttachmentNone: // prn('second'); return null; break; case self::AttachmentInfo: $partResult = null; break; case self::AttachmentFiles: break; } } else { try { $mailCharset = $rawMail->getHeaderField('content-type', 'charset'); } catch (\Exception $ex) { $mailCharset = null; } $partResult = $this->setMailEncoding($partResult, $mailCharset); } } $part->setContent($partResult); $part->setHeaders($rawMailHeaders); // prn('third'); return $part; }