Подскажите - установить pear + mail_mime и mail

jabbaxatt

Добрый модератор
Регистрация
21 Янв 2009
Сообщения
902
Реакции
432
Подскажите пожалуйста.
В линуксе я нуб, английского не знаю. Так что гугл не помог.

На сайте нужно сделать отправку писем с приаттачеными файлами.

Для этого нужно поставить Mail_Mime и Mail. (курю страницу Для просмотра ссылки Войди или Зарегистрируйся код PHP что там приводится понятен, но у меня не установлен ни PEAR, ни Mail_Mime ни Mail)

1) Как я понял для установки Mail_Mime и Mail нужно залить архивы в директорию php ( у меня - /usr/local/etc/php5/)
б) Заходим в шелл (командная строка), и через команду cd входим в каталог с php
в) Набираем в шелле: pear install имя_файла.tgz и таким образом устанавливаем обе библиотеки. - у меня пишет ошибку (код ошибки 127, line 22 pear: command not fond)

Судя по всему у меня не установлен PEAR, но я не могу найти как его установить. Скачал архив PEAR-1.9.4.tgz но не пойму что с ним делать?

В общем - 2 вопроса.
1) Правильно ли я понимаю ситуацию.
2) Пожалуйста, объясните на пальцах, без английского, как дураку, как поставить PEAR на Linux.
 
Так и не разобрался и не понял.
Вместо PEAR решил использовать следующую функцию:
PHP:
Function mail_to($to, $from, $subj, $text, $files=null){
$boundary = md5(uniqid(time()));
$headers[] ="MIME-Version: 1.0";
$headers[] ="Content-Type: multipart/mixed;boundary=\"$boundary\"; type=\"text/html;\"";
$headers[] ="From: ".$from;
$headers[] ="Reply-To: ".$from;
$headers[] ="Return-Path: ".$from;
$headers[] ="X-Mailer: PHP/" . phpversion();
 
$multipart[]= "--".$boundary;
$multipart[]= "Content-Type: text/html; charset=utf-8";
$multipart[]= "Content-Transfer-Encoding: Quot-Printed";
$multipart[]= ""; // раздел между заголовками и телом html-части
$multipart[]= $text;
$multipart[]= "";
 
if ((is_array($files))&&(!empty($files)))
  {
  foreach($files as $filename => $filecontent)
        {
      $multipart[]="--".$boundary;
      $multipart[]= "Content-Type: application/octet-stream; name=\"".$filename."\"";
      $multipart[]= "Content-Transfer-Encoding: base64";
        $multipart[]= "Content-Disposition: attachment; filename=\"".$filename."\"";
        $multipart[]= "";
        $multipart[]= chunk_split(base64_encode($filecontent));
        }
    }
 
$multipart[]= "--$boundary--";
$multipart[]= "";
$headers=implode("\r\n", $headers);
$multipart=implode("\r\n", $multipart);
//if (mb_detect_encoding($subj, "UTF-8")==FALSE)
//$subj= mb_encode_mimeheader($subj,"UTF-8", "B", "\n");
   
return mail($to, $subj, $multipart, $headers);
}
// конец функции

Вроде работает.
 
Назад
Сверху