Fatal error: Uncaught exception 'Zend\Mail\Exception\RuntimeException' with message 'Malformed header detected' in /var/www/html/plugins/ZendFramework/ZendFramework-2.4.7/library/Zend/Mail/Headers.php on line 88ZendMail - ошибка в заголовках
Это сообщение об ошибке, которое я получаю, когда пытаюсь использовать функцию Zend\Mail\Storage\Imap::getMessage()
. Если я прокомментирую строку, где вызывается ошибка (точнее, я должен прокомментировать обе строки, где эта же ошибка выбрасывается из одной и той же функции), я могу прочитать тему сообщения, но позже на некоторых электронные письма, которые я получаю:
Fatal error: Uncaught exception 'Zend\Mail\Header\Exception\InvalidArgumentException' with message 'Invalid header value detected' in /var/www/html/plugins/ZendFramework/ZendFramework-2.4.7/library/Zend/Mail/Header/GenericHeader.php on line 61
Как я тестировал плагин, я не использовал любое другое расширение или плагин в то время как я получил эти ошибки, только расширение PHP Xdebug, для целей отладки. Вот весь мой код:
try {
$mail = new Zend\Mail\Storage\Imap(array('host' => 'my.mail.host',
'user' => '[email protected]',
'password' => 'xxxxxxxxx'));
}
catch (Zend\Mail\Exception $e) {
print_r($e);
}
$undecodable=array();
$mail->selectFolder('INBOX');
$list=array(1,2,3,4);
foreach ($list as $mid) {
$message=$mail->getMessage($mid);
$content=array(
'html' => array(
'part' => null,
'content' => null
),
'plain' => array(
'part' => null,
'content' => null
)
);
foreach (new RecursiveIteratorIterator($message) as $part) {
try {
$strtok=strtok($part->contentType, ';');
if (($strtok == 'text/html') || ($strtok == 'text/plain')) {
switch ($part->contentTransferEncoding) {
case 'base64':
$contentDecoded = base64_decode($part->getContent());
break;
case 'quoted-printable':
$contentDecoded = quoted_printable_decode($part->getContent());
break;
case 'default':
$contentDecoded='undecodable';
$undecodable[]=$part->contentTransferEncoding;
break;
}
$strtok=explode("/",$strtok);
$strtok=$strtok[1];
$content[$strtok]['part']=$part;
$content[$strtok]['content']=$contentDecoded;
}
} catch (Zend\Mail\Exception $e) {
// ignore
}
}
echo "Message: " . $message->subject."<BR>";
if (!empty($content['html']['content'])) echo "HTML part found! ";
if (!empty($content['plain']['content'])) echo "Plain part found! ";
echo "<BR><BR>Next message";
}
exit;
ПРИМЕЧАНИЕ: сообщение идентификаторы правильно, я могу принести все из по telneting почтового сервера, все они существуют