Не работает почтовая форма.

Тема в разделе "PHP", создана пользователем TranceFM, 15 фев 2011.

Модераторы: latteo
  1. TranceFM

    TranceFM Постоялец

    Регистр.:
    3 фев 2009
    Сообщения:
    68
    Симпатии:
    2
    Приветствую господа хорошие, почему-то не работает почтовая форма на сайте.

    Код:
    PHP:
    <? 
    require_once(
    'mail_class.php');
    if((!empty(
    $_POST['usr_fname']))and (!empty($_POST['usr_lname'])) and(!empty($_POST['usr_phone_1'])) and(!empty($_POST['usr_phone_2'])) and(!empty($_POST['usr_email'])) and(!empty($_POST['usr_model']))){
    /**  
    * Сообщения об ошибках на русском языке 
    */
      
    $language    = array( 
                         
                         
    'no_text'          => 'Нет текста письма',
                         
    'no_file'          => 'Не указан путь до файла',                      
                         
    'no_path'          => 'Нет файла по указанному пути',
                         
    'no_addresse'      => 'Нет адреса получателя',
                         
    'not_correct'      => 'E-mail указан некорректно',
                         
    'no_sender'        => 'Нет отправителя',                   
                         
    'no_theme'         => 'Нет темы письма',
                         
    'no_send'          => 'По техническим причинам отправка письма 
                                                в данный момент невозможна'
    ,
                    
                          );
    /**  
    * Адрес получателя 
    */  
     
    $to = array(

    'mail@example.com',
    'mail@example.com'
      
    ); 
      
    $email_amount=2;
    /**       
    * Адрес отправителя   
    */ 
      
    $from 'name@mysite.com';
        
    /**  
    * Тема письма  
    */ 
      
    $subject 'Тест';
        
    /**  
    * Текст сообщения. Можно в формате HTML  
    */    
      
    $message '<table border="0">
    <tbody>
    <tr>
    <td>Имя:</td>
    <td>'
    .mb_convert_encoding($_POST['usr_fname'],'utf-8','windows-1251').'</td>
    </tr>
    <tr>
    <td>Фамилия:</td>
    <td>'
    .mb_convert_encoding($_POST['usr_lname'],'utf-8','windows-1251').'</td>
    </tr>
    <tr>
    <td>Контактный телефон:</td>
    <td>+3 '
    mb_convert_encoding($_POST['usr_phone_1'],'utf-8','windows-1251').mb_convert_encoding($_POST['usr_phone_2'],'utf-8','windows-1251').'</td>
    </tr>
    <tr>
    <td>Контактный e-mail:</td>
    <td>'
    .mb_convert_encoding($_POST['usr_email'],'utf-8','windows-1251').'</td>
    </tr>
    <tr>
    <td>Модель</td>
    <td>'
    .mb_convert_encoding($_POST['usr_model'],'utf-8','windows-1251').'</td>
    </tr>
    </tbody>
    </table>'
    ;
        


       
    /* * 
    * Подключаем класс  
    */ 
     // include 'IRB_Mailer.php';
        
    /**     
    * Создаем новый объект. Сообщение - обязательный параметр 
    * Язык по дефолту - английский. Можно не указывать.
    */ 
    /*

    require_once('mail/class.phpmailer.php');

        $mail = new PHPMailer();
        $html = '<html><body>'.$message.'</body></html>';                
        $mail->SetFrom($_POST['email'], '');
        $mail->AddReplyTo($_POST['email'], '');
        $mail->Subject    = $subject;
        $mail->AltBody    = ""; // optional, comment out and test
        $mail->MsgHTML($html);
        
        
        foreach($to as $el){    
            $mail->AddAddress($el, "");
        }
        $mail->CharSet = 'windows-1251';
        if(!$mail->Send()) {
            //echo "Mailer Error: " . $mail->ErrorInfo;
            header('Location: http://*****/
    form_sent');
        }

        header('
    Locationhttp://*****/form_sent');
        
    return true;
    */
    for(
    $i=0;$i<=($email_amount-1);$i++){
        
    mail($to[$i],'asd','dsaasd');
        
        
        
    /* To send HTML mail, you can set the Content-type header. */
    $headers  "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=windows-1251\r\n";

    /* additional headers */
    $headers .= "To: ".$to[$i]."\r\n";
    $headers .= "From: Birthday Reminder <birthday@example.com>\r\n";

    /* and now mail it */
    mail($to[$i], $subject$message$headers);
        
        
      
    $mail = new IRB_Mailer($message$language);
         
    /**     
    * Если нужно - прикрепляем файл. Если нет - не пишем этот вызов  
    * Второй параметр указывать не обязательно. Тогда сохранится родное имя файла. 
    */  
     // $mail -> attacheFile($file, 'kartinko'); 
       
    /**  
    * Выставляем тип HTML.  Если простой текст - не пишем этот вызов  
    */  
      
    $mail -> setHtml(); 
       
    /**  
    * Кому, от кого, тема.  
    */ 
      
    $mail -> createTo($to[$i]);  
      
    $mail -> createFrom($from);  
      
    $mail -> createSubject($subject);
       
    /**   
    * Отправка. При удачной вернет NULL, при фиаско - текст ошибки  
    */ 
      
    $error $mail -> sendMail();
      
    //print_r($mail);
      /*    
    * Ну а так можно этот текст вывести и посмотреть. 
    */  
      
    echo nl2br($error); 
      
      }
      
    header('Location: http://*****/form_sent');
      }
      else{
      
    header('Location: http://*****/form_sent'); 
      }
      
    ?>
    Подскажите, формочка рабочая? Или что-то, где-то не так? Спасибо.
     
  2. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Ключевой вопрос - что находится в файле mail_class.php?
    На первый взгляд - единственная ошибка тут
    Должно быть 2 слэша
    И что такое вообще form_sent? Мутный код какой-то...
     
  3. TranceFM

    TranceFM Постоялец

    Регистр.:
    3 фев 2009
    Сообщения:
    68
    Симпатии:
    2
    Блин, не добавило закомментированный блок в код, ошибка слеша, то уже моя) Убирал прямые ссылки. Сейчас гляну класс.