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

Тема в разделе "Администрирование серверов", создана пользователем jabbaxatt, 1 фев 2012.

Модераторы: mefish, stooper
  1. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    890
    Симпатии:
    418
    Подскажите пожалуйста.
    В линуксе я нуб, английского не знаю. Так что гугл не помог.

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

    Для этого нужно поставить 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.
     
  2. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    890
    Симпатии:
    418
    Так и не разобрался и не понял.
    Вместо 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);
    }
    // конец функции 
    Вроде работает.