Ошибка получения email через pipe

  • Автор темы Илья2
  • Дата начала

Илья2

Guest
Ошибка получения email через pipe

Здравствуйте!

у меня следующая задача - получить через pipe емейл сообщение скриптом. все настроено, скрипт (при поступлении письма) запускается и читает из stdin-потока контент.

на текстовых письмах работает, но когда посылаю письмо с аттачем (порядка 300кб) контент "портится", и я не могу его декодировать.

код получения stdin потока следующий:
PHP:
  $message = '';
  $in = fopen("php://stdin","rb") or die();
  while( !feof( $in ) ){
    $message .= fgets( $in, 2048);
  }
  fclose($in);
в чем может быть проблема?

Илья
 

Bermuda

Новичок
Re: Ошибка получения email через pipe

Автор оригинала: Илья2
на текстовых письмах работает, но когда посылаю письмо с аттачем (порядка 300кб) контент "портится", и я не могу его декодировать.
Что значит "портится"?

Попробуй использовать Pear::Mail/Mime
 

Илья2

Guest
что потом происходит с $message?
для тестовых целей я просто записываю его на диск
PHP:
  $im = fopen( $path2store.'/in_message.dat', 'wb' );
  fputs( $im, $message );
  fclose( $im );
Что значит "портится"?
скачиваю себе файл in_message.dat и пытаюсь его "распарсить":
PHP:
require 'mimeDecode.php';
$params = array(
                'input'          => $message,
                'crlf'           => "\r\n",
                'include_bodies' => TRUE,
                'decode_headers' => TRUE,
                'decode_bodies'  => TRUE
                );

$data = 'in_message.dat';
$message = fread( fopen($data, 'rb'), filesize( $data ) );
$md = new Mail_mimeDecode( $message );
$result = $md->decode($params);

print_r($result);
и возвращается пустой массив.

кажется я понял в чем возможно проблема, проблема с переносами строк,
PHP:
                'crlf'           => "\r\n",
я открыл файл in_message.dat и там все переносы строк - '0A', я сохранил его как Dos/Windows формат, и все заработало.

только замена, на
PHP:
                'crlf'           => "\n",
не решило проблемы, для парсинга оригинального сообщения.

Илья
 
Сверху