Pear: Mail_Mime выжает 3 переноса на новую строку

clevel

Новичок
Pear: Mail_Mime выжает 3 переноса на новую строку

мне надо отправлять письма с аттачем. Класс с php.spb.ru не подошел, так как там работа с сокетами, а мне надо через стандартную функцию mail.
Посмотрел в сторону pear. Все просто - скопировал в свою диру необходимые пхп файлы:
PEAR.php
mail.php
mime.php
mimeDecode.php
mimePart.php
RFC822.php
подправил в них пути.
Вставил в тестовый скрипт прямо пример из мана, запустил - все отправляется, и html и картинка как аттачи. Но!
При этом добавляется три переноса на новую строку. Что мне это не дает сделать - потом при помощи header: location куда-нибудь юзера перебросить...
два часа убил на поиск неполадок - не могу найти, хоть убей!
Куда нужно копать?
 

ONK

Пассивист PHPСluba
включи вывод варнингов, узнаеш на какой строке начался вывод данных.
 

clevel

Новичок
пишет, что на строке 37, где у меня идет мой код вида unset(бла,бла, бла);
инклдуды для отправки писем и веь относящийся к этому код находится значительно ниже....
Весь остальной код тестился до этого, багов, варнингов не было...
комментирую именно работу с отправкой писем - все работает, переносов на новую строку не возникает.
оставляю строку while(list(,$to)=each($ma)) $mail->send($to,$hdrs,$body); появляется эта хрень...
Что менял в пиар файлах:
1. пути для require_once вида $GLOBALS['path'].'panel/mail/RFC822.php'
2. class Mail, function factory:
PHP:
//$driver = strtolower($driver);
        //@include_once($GLOBALS['path'].'panel/mail/'. $driver .'.php');
        /*
        $class = 'Mail_' . $driver;
        if (class_exists($class)) {
            return new $class($params);
        } else {
            return PEAR::raiseError('Unable to find class for driver ' . $driver);
        }
        */
        return new Mail($params);
просто закомментил все кроме инициализации нового объекта и его передачи обратно...
3.все файлы находятся в моей папке, обозначенные этим путем...
 

clevel

Новичок
проблему удалось локализовать, закомментил
PHP:
    function prepareHeaders($headers)
    {
        // Look out for the From: value to use along the way.
        $text_headers = '';  // text representation of headers
        $from = null;

        foreach ($headers as $key => $val) {
            if($key=='From'){
                /*
                include_once($GLOBALS['path'].'panel/mail/RFC822.php');
                $from_arr = Mail_RFC822::parseAddressList($val, 'localhost', false);
                $from = $from_arr[0]->mailbox . '@' . $from_arr[0]->host;
                if (strstr($from, ' ')) {
                    // Reject outright envelope From addresses with spaces.
                    return false;
                }
                */
                $text_headers .= $key . ': ' . $val . "\n";
            }elseif($key == 'Received') {
                // put Received: headers at the top, since Receieved:
                // after Subject: in the header order is somtimes used
                // as a spam trap.
                $text_headers = $key . ': ' . $val . "\n" . $text_headers;
            }else{
                $text_headers .= $key . ': ' . $val . "\n";
            }
        }
        return array($from, $text_headers);
    }
перестало выдавать левые переносы строки...
 
Сверху