public function testAddAttachmentPart() { $hf = $this->getMockedHeaderFactory(); $part = $this->getMockedPart(); $part->method('getHeaderValue')->willReturn('image/png'); $message = new Message($hf); $message->addPart($part); $this->assertNull($message->getHtmlPart()); $this->assertNull($message->getTextPart()); $this->assertSame($part, $message->getAttachmentPart(0)); }
/** * @param \ZBateson\MailMimeParser\MimePart[] $mimePart * @param \ZBateson\MailMimeParser\Message $message * @return array */ function files_parser($message, $messageData) { $i = 0; $files = []; while ($att = $message->getAttachmentPart($i)) { try { //$typeHeaders = $att->getHeaders(); $typeHeader = $att->getHeader('Content-Type'); $filetype = $typeHeader->getValue(); $filename = trim(explode('name=', $typeHeader->getRawValue())[1], "\"'"); $filecontent = stream_get_contents($att->getContentResourceHandle()); $tmp_name = APPROOT . '/temp/' . time() . '-' . $messageData['from'] . '-' . $filename; if (file_put_contents($tmp_name, $filecontent)) { chmod($tmp_name, 0777); //chown($tmp_name, 'www-data'); $files[$i]['filename'] = $filename; $files[$i]['filetype'] = $filetype; $files[$i]['tmpfile'] = $tmp_name; } else { loger_error("Line: " . __LINE__ . "; Error save file part: {$i}; name: {$filename};"); } } catch (Exception $error) { loger_error("Line: " . __LINE__ . "; Error parse file part {$i}. Message error: " . $error->getMessage()); } $i++; } return $files; }