Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Отправка Email

Сообщения:  [1-10]   [11-18] 

 
 автор: nameIvan   (23.03.2009 в 15:20)   письмо автору
 
   для: Trianon   (23.03.2009 в 15:14)
 


<?php 

class Mail 
  
{
  
// создаем переменные, в которых хранится содержимое заголовков
  
var $to '';
  var 
$from '';
  var 
$reply_to '';
  var 
$cc '';
  var 
$bcc '';
  var 
$subject '';
  var 
$msg '';
  var 
$validate_email true
  
// проверяет допустимость почтовых адресов
  
var $rigorous_email_check true
  
// проверяет допустимость доменных имен по записям DNS
  
var $allow_empty_subject false
  
// допустимость пустого поля subject
  
var $allow_empty_msg false
  
// допустимость пустого поля msg
    
  
var $headers = array();   
  
/* массив $headers содержит все поля заголовка, кроме to и subject*/
    
  
function check_fields()
    
/* метод, проверяющий, переданы ли все значения заголовков
    и проверку допустимости почтовых адресов */
  
{
    if(empty(
$this -> to))
    {
      return 
false;       
    }
    if(!
$this -> allow_empty_subject && empty($this -> subject))
    {
      return 
false;       
    }
    if(!
$this -> allow_empty_msg && empty($this -> msg))
    {
      return 
false;       
    }
    
/* если есть дополнительные заголовки, помещаем их в массив $headers*/
    
if(!empty($this -> from))
    {
      
$this->headers[] = "From: $this -> from";
    }
    if(!empty(
$this -> reply_to))
    {
      
$this -> headers[] = "Reply_to: $this -> reply_to";
    } 
    
// проверяем допустимость почтового адреса      
    
if ($this -> validate_email)
    {
       if (!
preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$this -> to))
       {
          return 
false;
       }
       return 
true;
    }
  }
    
  function 
send()
  
/* метод отправки сообщения */
  
{
     if(!
$this -> check_fields()) return true;
     if (
mail($this -> tohtmlspecialcharsstripslashes(trim($this -> subject))),
        
htmlspecialchars(stripslashes(trim($this -> msg)))))
     {
        return 
true;
     }else{
        return 
false;
     } 
  }
}
?>


include("send_mail.php");
    $mail = new Mail();
    $mail -> to = $email; //сюда подставляется реальный адрес
    $mail -> subject = "test";
    $mail -> msg = "testing...";
    $mail -> msg = "testing...";
    $mail -> rigorous_email_check = 0;
    if($mail->send()){
        echo $email; 
        echo("<br>Success");
        
    }else{
        echo("error");
    }
    echo("<br>");
    echo($mail -> msg);        

  Ответить  
 
 автор: Trianon   (23.03.2009 в 15:14)   письмо автору
 
   для: nameIvan   (23.03.2009 в 15:13)
 

показывайте фрагмент обращения к классу.
и лучше бы Вы сделали echo( $mail -> to );

  Ответить  
 
 автор: nameIvan   (23.03.2009 в 15:13)   письмо автору
 
   для: Trianon   (23.03.2009 в 15:10)
 

странно
если выводить $email до
include("send_mail.php");
$mail = new Mail();
$mail -> to = $email; //сюда подставляется реальный адрес
$mail -> subject = "test";
$mail -> msg = "testing...";
$mail -> msg = "testing...";
$mail -> rigorous_email_check = 0;

то адрес есть, а если после то ничего не выводит

  Ответить  
 
 автор: yuk   (23.03.2009 в 15:13)   письмо автору
 
   для: nameIvan   (23.03.2009 в 15:01)
 

var $to = '$email';

РНР код не обрабатывается в одинарных кавычках - ставьте двойные.
В данном случае лучше уж совсем без них.

  Ответить  
 
 автор: Trianon   (23.03.2009 в 15:10)   письмо автору
 
   для: nameIvan   (23.03.2009 в 15:01)
 

значит в переменной $email нет адреса.

  Ответить  
 
 автор: nameIvan   (23.03.2009 в 15:01)   письмо автору
 
   для: Trianon   (23.03.2009 в 14:59)
 

нет не работает
проблема здесь $mail -> to = "$email"; переменная $email хранит адрес который ввел пользователь, и если здесь вписать конктерный алрес то все ОК, а если передавать через переменную то не работат

  Ответить  
 
 автор: Trianon   (23.03.2009 в 14:59)   письмо автору
 
   для: nameIvan   (23.03.2009 в 14:55)
 

вообще-то там в примере указано, как задавать адрес назначения. Делайте как в примере, если уж взялись использовать чужой класс.
Другое дело, что скрипт рушится, при попытке задать from или reply_to, но Вы же их не применяете...

  Ответить  
 
 автор: Dobrynin   (23.03.2009 в 14:58)   письмо автору
 
   для: nameIvan   (23.03.2009 в 14:55)
 

теперь всё работает?

  Ответить  
 
 автор: nameIvan   (23.03.2009 в 14:55)   письмо автору
 
   для: Trianon   (23.03.2009 в 14:39)
 

верно, там написано так
var $to = '';

я же попытался передать в эту переменную адрес который ввел пользователь

  Ответить  
 
 автор: Trianon   (23.03.2009 в 14:39)   письмо автору
 
   для: nameIvan   (23.03.2009 в 14:19)
 

замечу, что строки var $to = '$email'; в том варианте что висит в примерах скриптов портала - нет.

  Ответить  

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования