Захват и управление данными электронной почты с PHP - PullRequest
2 голосов
/ 11 августа 2011

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

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

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

Кто-нибудь знает, как я могу сделать это эффективно с помощью PHP. Кстати, я использую ЛАМПУ.

Спасибо.

1 Ответ

2 голосов
/ 11 августа 2011

Начните с 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'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...