Как извлечь почтовую атаку с помощью PHP?

Я извлекаю письма из базы данных, где они хранятся в виде строк. Мне нужно разобрать эти письма, чтобы извлечь их вложения. Я предполагаю, что для этого достаточно библиотеки, но я не могу ее найти.

Solutions Collecting From Web of "Как извлечь почтовую атаку с помощью PHP?"

PEAR :: Mail :: mimeDecode должен делать то, что вы ищете

PHP имеет расширение MailParse, которое намного быстрее, чем использование альтернативы PEAR, которая является родным PHP.

Вот библиотека, которая обертывает это расширение:

http://code.google.com/p/php-mime-mail-parser/

Пример:

// require mime parser library require_once('MimeMailParser.class.php'); // instantiate the mime parser $Parser = new MimeMailParser(); // set the email text for parsing $Parser->setText($text); // get attachments $attachments = $Parser->getAttachments(); 

Это можно сделать, используя компонент Zend_Mail в Zend Framework

Возможно, этот пример, который также можно найти в документации, помогает:

 // get the first none multipart part $part = $message; while ($part->isMultipart()) { $part = $message->getPart(1); } echo 'Type of this part is ' . strtok($part->contentType, ';') . "\n"; echo "Content:\n"; echo $part->getContent(); 

Однако я не знаю, как вы можете сказать Zend Mail читать строки, возможно, для этого требуется какая-то работа, но тогда у вас будет полнофункциональная библиотека, которая сделает то, что вы хотите, и еще несколько (например, чтение темы , и т.д.).

Изменить :

Я просто второй раз посмотрел на него и понял, что все, что вам нужно сделать, это написать собственную реализацию хранилища (подкласс Zend_Mail_Storage_Abstract), который не так сложно сделать.

Я думаю, это самое чистое решение, которое вы получите, хотя для его работы требуется небольшое усилие.

Если вы ищете более быстрое «грязное» решение, кто-то может помочь вам.

Надеюсь, это поможет.

PhpMimeParser – разбор мультиплеерного сообщения mime (вложения, встроенные изображения, base64, кавычки) https://github.com/breakermind/PhpMimeParser Вы можете вырезать mime-сообщения из файлов, строки.

 // Load .eml mime message from file $str = file_get_contents('mime-mixed-related-alternative.eml'); // Format output echo "<pre>"; // Create object MimeParser $m = new PhpMimeParser($str); // Show Emails print_r($m->mTo); print_r($m->mFrom); print_r($m->mBcc); print_r($m->mCc); // Show Message echo $m->mSubject; echo $m->mHtml; echo $m->mText; print_r($m->mInlineList); // Show Files print_r($m->mFiles); 

Вложения электронной почты кодируются MIME и добавляются в тело сообщения с использованием заголовков. Пакет декодирования PEAR MIME сделает все, что вам нужно: http://pear.php.net/package/Mail_mimeDecode