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

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

Сохраните класс отправки почты под именем mail_class.php. Скрипт проверки можете сохранить под любым именем, например sendmail.php.
Внимание! В тексте скрипта предварительно подставьте реальный почтовый адрес. Запустите на выполнение проверочный скрипт sendmail.php. Если все сработало правильно, то вам придет письмо на тот адрес, что вы указали в проверочном скрипте.
... Хотя в некоторых случаях подобное письмо может не дойти до адресата. Например, оно может быть заблокировано антиспамовыми фильтрами.

Класс отправки сообщения (mail_class.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,3}/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 = "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.";
//сюда подставляется реальный адрес
$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);
?>