Вам потребуется MIME-анализатор для обработки данных MIME. В PHP расширение Mailparse может сделать это за вас. Это довольно простая библиотека, поэтому обертка, такая как php-mime-mail-parser, может значительно упростить ситуацию. В любом случае, если предположить, Mailparse, основной контур процесса заключается в следующем: нагрузка/разобрать электронную почту, а затем enumate все части и подразделы, где выполняются следующие условия:
Content-Disposition
заголовок для части является attachment
,
- Декодированный параметр
filename
заголовка Content-Dispositon
заканчивается буквами .xml
или .txt
. В качестве альтернативы вы можете положиться на заголовок Content-Type
для определения типа (text/XML
и text/plain
, соответственно), но это будет менее надежным, поскольку он зависит от отправителя электронной почты, который определяет правильный тип MIME для прикрепленного документа.
После нахождения частей вложений они могут быть декодированы из представления MIME с использованием предоставленных PHP функций для BASE64 или декодирования с кавычками.
Может ли Mailparse быть установленным внешним? У меня WHM, и я предпочитаю не вмешиваться в это, так как это не во встроенных параметрах WHM, а просто класть библиотеку в папку. – mikl
@mikl: Я не знаком с WHM, но из того, что я собираю, PHP Extension Manager поставляется вместе с ним. '/ scripts/phpextensionmgr' с параметром' install' должен помочь установить расширение (опять же, просто подсказку). – PeterK
Ops, просто сделал это. Пошел в Software/Module Installers/PHP Pecl, а остальное довольно интуитивно. – mikl