Отправка почты на php (Функция mail)

Отправка почты осуществляется с помощью специального созданного PHP клаccа для отправки сообщений

 

Сохраните класс отправки почты под именем mail_class.php. Скрипт проверки можете сохранить под любым именем, например sendmail.php. 

Внимание! В тексте скрипта предварительно подставьте реальный почтовый адрес. Запустите на выполнение проверочный скрипт sendmail.php. Если все сработало правильно, то вам придет письмо на тот адрес, что вы указали в проверочном скрипте.

... Хотя в некоторых случаях подобное письмо может не дойти до адресата. Например, оно может быть заблокировано антиспамовыми фильтрами.

 

<?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,6}/i", $this -> to))

       {

          return false;

       }

       return true;

    }

  }

    

  function send()

  /* метод отправки сообщения */

  {

     if(!$this -> check_fields()) return true;

     if (mail($this -> to, htmlspecialchars( stripslashes(trim($this -> subject))),

        htmlspecialchars(stripslashes(trim($this -> msg)))))

     {

        return true;

     }else{

        return false;

     } 

  }

}

?>

Проверочный скрипт (senmail.php)

<?php

    include("./mail_class.php");

    $mail = new Mail();

    $mail -> to = "kuznetsov@softtime.ru"; 

    //сюда подставляется реальный адрес

    $mail -> subject = "test";

    $mail -> msg = "testing...";

    $mail -> msg = "testing...";

    $mail -> rigorous_email_check = 0;

    if($mail->send()){

        echo "success";

    }else{

        echo "error";

    }

    echo "<br>";

    echo $mail -> msg;

?>




Рекомендуем почитать

 

Добавить комментарий


Ваше имя:


Комментарий:


Введите: Картинка