Захват и управление данными электронной почты с помощью PHP

Я ищу способ захвата и управления данными электронной почты с помощью PHP. В основном, что я хочу сделать, это захватить все данные в электронном письме, а затем манипулировать этими данными в соответствии с моими спецификациями.

Например, скажем, я отправляю электронное письмо с прикрепленным файлом .zip на myemail@myproject.com, я хочу иметь возможность:

  1. Получите вложение и поместите его в определенную папку на моем сайте
  2. Получить текстовое содержимое письма
  3. Получить тему по электронной почте
  4. Получить информацию отправителя, т.е. адрес электронной почты

Кто-нибудь знает, как я могу сделать это эффективно с PHP. Кстати, я использую LAMP.

Благодарю.

Начните с PEAR Mail_mimeDecode . То, что вы хотите сделать, является амбициозным, но может быть сделано.

В основном, что вы будете делать:

Поручить MTA доставлять почту с адреса на канал в ваш PHP-скрипт. Postfix и Sendmail могут обрабатывать это с помощью псевдонима типа:

 myemail: "|/path/to/your/parsingscript.php" 
  • Разбор частей сообщения электронной почты MIME
  • Поиск и сохранение вложений после их декодирования из base64 (или другого кодирования)
  • Разбор заголовков.

Ваш PHP-скрипт скорее всего прочитает сообщение электронной почты из STDIN, а затем передаст строку в mimeDecode , которая создаст объект, содержащий все части MIME.

Предполагая, что ваше сообщение было получено в $str от STDIN , вам понравится что-то вроде этого:

 $mime = Mail_mimeDecode::decode(array('include_bodies'=>TRUE, 'decode_headers'=>TRUE, 'decode_bodies'=>TRUE, 'input'=>$str)); // get the recipient To address: $to = $mime->headers['to'];