Помогите разобраться с классом PEAR::Mail

Freeman

Новичок
Помогите разобраться с классом PEAR::Mail

Надо отправлять email с приаттаченными файлами. Попробовал PEAR.
PHP:
if (isset($_FILES) && !$_FILES['userfile']['error'])
  		{
  			if (is_uploaded_file($_FILES['userfile']['tmp_name']))  
				$attach_files = $_FILES['userfile'];
  			include('mail.php');
  			include('../inc/mail/mime.php');
  			$crlf = "\r\n";
  			$mime = new Mail_mime($crlf); 
 			$mime->addAttachment($attach_files['name']); 
 			$hdrs = array(
                'From'    => '',
                'Subject' => $subj
              );
  			$mime->setTXTBody($text);
  			$body = $mime->get();
  			$hdrs = $mime->headers($hdrs);
  			$mail = & Mail::factory('mail');
  			$status = $mail->send($email, $hdrs, $body);  			if (PEAR::isError($status)) 
 			{
   				print("***ERROR");
  			}
  			else
  				echo "<h3>Ваше сообщение отправлено.</h3><br>";
  		}
Так вот после $mail = & Mail::factory('mail') все глохнет: ничего не выводится (ни ошибки, ни текст). error_reporting(E_ALL).
Пробовал указывать smtp в качестве параметра, ни фига. В чем я не прав?
 

Макс

Старожил PHPClub
ты все классы установил ?
должны быть как минимум файлы:
Mail.php
Mail/mime.php
Mail/mail.php
Mail/smtp.php - если через SMTP-слать

что выводит :
PHP:
$mail = & Mail::factory('mail'); 
print_r($mail);
?
 

Freeman

Новичок
Автор оригинала: Maxim Matyukhin
ты все классы установил ?
должны быть как минимум файлы:
Mail.php
Mail/mime.php
Mail/mail.php
Mail/smtp.php - если через SMTP-слать

что выводит :
PHP:
$mail = & Mail::factory('mail'); 
print_r($mail);
?
Спасибо, я уже разобрался. Ошибка была в том, что include('mail.php'), а не include('Mail.php'). Странно другое, почему он не выдавал ошибки (файл не найден, класс не определен...):confused:
Кстати заодно спрошу про Content-type: если возможна отсылка различных файлов, то достаточно указать в addAttachment() 'application/octet-stream' или лучше брать $_FILES['userfile']['type']?
P.S. За точность не ручаюсь, пишу по памяти;)
 

Макс

Старожил PHPClub
хмм, может у тебя diaplay_errors Off ?

content-type можно определять с помощью [m]mime_content_type[/m]
Данным из $_FILES['userfile']['type'] доверять нельзя - их шлет броузер.
Если тебя устраивает 'application/octet-stream' - то можешь оставить его.
 

Freeman

Новичок
Автор оригинала: Maxim Matyukhin
хмм, может у тебя diaplay_errors Off ?
Не-е, при error_reporting(E_ALL) выдаются все ошибки, варнинги и нотайсы. Потому и удивляюсь.
content-type можно определять с помощью [m]mime_content_type[/m]
Данным из $_FILES['userfile']['type'] доверять нельзя - их шлет броузер.
Если тебя устраивает 'application/octet-stream' - то можешь оставить его.
Понял, попробуем. Сенк за помощь.
 

Frol

Новичок
Сверху