<?php
error_reporting(0);
@header('Content-Type: application/json; charset=utf-8');
$from='лл'; // от кого (обратный адрес с сайтом, ОБЯЗАТЕЛЬНО!!!)
//$to[] ='rл'; // мое для проверки
$to[] ='о'; // кому
$Subject='Заявка с сайта'; // тема приходящего письма
//header( 'Refresh: 5; url=/' );
$m= new Mail('utf-8');
$msg='';
if (isset($_POST) && (count($_POST)>0))
{
if (isset($_POST['your-email'])) $msg.='Емайл: '.$_POST['your-email'].'<br>'."\n";
if (isset($_POST['your-phone'])) $msg.='Телефон: '.$_POST['your-phone'].'<br>'."\n";
if (isset($_POST['your-name'])) $msg.='Имя: '.$_POST['your-name'].'<br>'."\n";
if (isset($_POST['your-surname'])) $msg.='Фамилия: '.$_POST['your-surname'].'<br>'."\n";
if (isset($_POST['your-comment'])) $msg.='Комментарий: '.$_POST['your-comment'].'<br>'."\n";
if (isset($_POST['acceptance-policy'])) $msg.='Дал согласие на обработку персональных данных: '.$_POST['acceptance-policy'].'<br>'."\n";
if (isset($_POST['acceptance-offer'])) $msg.='Согласился с договором офферты: '.$_POST['acceptance-offer'].'<br>'."\n";
$m->From($from); // от кого
$m->To($to); // кому
$m->Subject($Subject);
$m->Body($msg);
$m->Priority(3) ; // установка приоритета
$m->Send(); // отправка
//echo '<pre>';
//echo "Письмо отправлено, вот исходный текст письма:<br><pre>", $m->Get(), "</pre>";
echo '{"into":"#wpcf7-f512-p109-o1","status":"mail_sent","message":"\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0412\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u041e\u043d\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e."}';
die;
} else {
echo '{"code":"rest_no_route","message":"\u041f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043b\u044f URL \u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d","data":{"status":404}}';
die;
}
/* email: repair333@yandex.ru */
class Mail
{
/* определение переменных идет через VAR, для обеспечения работы в php старых версий
массивы адресов кому отправить
@var array
*/
var $sendto = array();
/*
@var array
*/
var $acc = array();
/*
@var array
*/
var $abcc = array();
/*
прикрепляемые файлы
@var array
*/
var $aattach = array();
/*
массив заголовков
@var array
*/
var $xheaders = array();
/*
приоритеты
@var array
*/
var $priorities = array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );
/*
кодировка по умолчанию
@var string
*/
var $charset = "UTF-8";
var $ctencoding = "8bit";
var $receipt = 0;
var $text_html="text/html"; // (text/plain) формат письма. по умолчанию текстовый
var $smtp_on=false; // отправка через smtp. по умолчанию выключена
/*
конструктор тоже по старому объявлен для совместимости со старыми версиями php
пошел конструктор.
входящий параметр кодировка письма
внесено изменение webi.ru
*/
function Mail($charset="")
{
$this->autoCheck( true );
$this->boundary= "--" . md5( uniqid("myboundary") );
if( $charset != "" ) {
$this->charset = strtolower($charset);
if( $this->charset == "us-ascii" )
$this->ctencoding = "7bit";
}
}
/*
включение выключение проверки валидности email
пример: autoCheck( true ) проверка влючена
по умолчанию проверка включена
*/
function autoCheck( $bool )
{
if( $bool )
$this->checkAddress = true;
else
$this->checkAddress = false;
}
/*
Тема письма
внесено изменения кодирования не латинских символов
*/
function Subject( $subject )
{
$this->xheaders['Subject'] ="=?".$this->charset."?Q?".str_replace("+","_",str_replace("%","=",urlencode(strtr( $subject, "\r\n" , " " ))))."?=";
}
/*
от кого
*/
function From( $from )
{
if( ! is_string($from) ) {
echo "ошибка, From должен быть строкой";
exit;
}
$this->xheaders['From'] = $from;
}
/*
на какой адрес отвечать
*/
function ReplyTo( $address )
{
if( ! is_string($address) )
return false;
$this->xheaders["Reply-To"] = $address;
}
/*
Добавление заголовка для получения уведомления о прочтении. обратный адрес берется из "From" (или из "ReplyTo" если указан)
*/
function Receipt()
{
$this->receipt = 1;
}
/*
set the mail recipient
@param string $to email address, accept both a single address or an array of addresses
*/
function To( $to )
{
// если это массив
if( is_array( $to ) )
{
$this->sendto= $to;
foreach ($to as $key => $value) // перебираем массив и добавляем в массив для отправки через smtp
{
$this->smtpsendto[$value] = $value; // ключи и значения одинаковые, чтобы исключить дубли адресов
}
}
else
{
$this->sendto[] = $to;
$this->smtpsendto[$to] = $to; // ключи и значения одинаковые, чтобы исключить дубли адресов
}
if( $this->checkAddress == true )
$this->CheckAdresses( $this->sendto );
}
/* Cc()
* установка заголдовка CC ( открытая копия, все получатели будут видеть куда ушла копия )
* $cc : email address(es), accept both array and string
*/
function Cc( $cc )
{
if( is_array($cc) )
{
$this->acc= $cc;
foreach ($cc as $key => $value) // перебираем массив и добавляем в массив для отправки через smtp
{
$this->smtpsendto[$value] = $value; // ключи и значения одинаковые, чтобы исключить дубли адресов
}
}
else
{
$this->acc[]= $cc;
$this->smtpsendto[$cc] = $cc; // ключи и значения одинаковые, чтобы исключить дубли адресов
}
if( $this->checkAddress == true )
$this->CheckAdresses( $this->acc );
}
/* Bcc()
* скрытая копия. не будет помещать заголовок кому ушло письмо
* $bcc : email address(es), accept both array and string
*/
function Bcc( $bcc )
{
if( is_array($bcc) )
{
$this->abcc = $bcc;
foreach ($bcc as $key => $value) // перебираем массив и добавляем в массив для отправки через smtp
{
$this->smtpsendto[$value] = $value; // ключи и значения одинаковые, чтобы исключить дубли адресов
}
}
else
{
$this->abcc[]= $bcc;
$this->smtpsendto[$bcc] = $bcc; // ключи и значения одинаковые, чтобы исключить дубли адресов
}
if( $this->checkAddress == true )
$this->CheckAdresses( $this->abcc );
}
/* Body( text [ text_html ] )
* $text_html в каком формате будет письмо, в тексте или html. по умолчанию стоит текст
*/
function Body( $body, $text_html="" )
{
$this->body = $body;
if( $text_html == "html" ) $this->text_html = "text/html";
if( $text_html == "plain" ) $this->text_html = "text/plain";
}
/* Organization( $org )
* set the Organization header
*/
function Organization( $org )
{
if( trim( $org != "" ) )
$this->xheaders['Organization'] = $org;
}
/* Priority( $priority )
* set the mail priority
* $priority : integer taken between 1 (highest) and 5 ( lowest )
* ex: $mail->Priority(1) ; => Highest
*/
function Priority( $priority )
{
if( ! intval( $priority ) )
return false;
if( ! isset( $this->priorities[$priority-1]) )
return false;
$this->xheaders["X-Priority"] = $this->priorities[$priority-1];
return true;
}
/*
прикрепленные файлы
@param string $filename : путь к файлу, который надо отправить
@param string $webi_filename : реальное имя файла. если вдруг вставляется файл временный, то его имя будет хрен пойми каким..
@param string $filetype : MIME-тип файла. по умолчанию 'application/x-unknown-content-type'
@param string $disposition : инструкция почтовому клиенту как отображать прикрепленный файл ("inline") как часть письма или ("attachment") как прикрепленный файл
*/
function Attach( $filename, $webi_filename="", $filetype = "", $disposition = "inline" )
{
// TODO : если типа файла не указан, ставим неизвестный тип
if( $filetype == "" )
$filetype = "application/x-unknown-content-type";
$this->aattach[] = $filename;
$this->webi_filename[] = $webi_filename;
$this->actype[] = $filetype;
$this->adispo[] = $disposition;
}
/*
Собераем письмо
*/
function BuildMail()
{
$this->headers = "";
$this->xheaders['To'] = implode( ", ", $this->sendto ); // этот заголовок будет не нужен при отправке через mail()
if( count($this->acc) > 0 )
$this->xheaders['CC'] = implode( ", ", $this->acc );
if( count($this->abcc) > 0 )
$this->xheaders['BCC'] = implode( ", ", $this->abcc ); // этот заголовок будет не нужен при отправке через smtp
if( $this->receipt ) {
if( isset($this->xheaders["Reply-To"] ) )
$this->xheaders["Disposition-Notification-To"] = $this->xheaders["Reply-To"];
else
$this->xheaders["Disposition-Notification-To"] = $this->xheaders['From'];
}
if( $this->charset != "" ) {
$this->xheaders["Mime-Version"] = "1.0";
$this->xheaders["Content-Type"] = $this->text_html."; charset=$this->charset";
$this->xheaders["Content-Transfer-Encoding"] = $this->ctencoding;
}
$this->xheaders["X-Mailer"] = "Php_libMail_v_1.6";
// вставаляем файлы
if( count( $this->aattach ) > 0 ) {
$this->_build_attachement();
} else {
$this->fullBody = $this->body;
}