Форма отправки заказа на сайт

A7
На сайте с 14.09.2006
Offline
106
733

Есть форма отправки заявки на сайт на php. Эта форма отправляет заказ на емейл и дублирует его в txt файл на сервере. Но проблема, в том, что не всегда приходит письмо на емейл. Или бывает с задержкой. В то время, как в txt файл инфо попадает вовремя. Происходит это на разных хостингах. Но везде на mail.ru.

Возможно ли как-то сделать так, чтобы своевременно контролировать было ли письмо отправлено с сайта? Т.е. может смс или как-то еще варианты?

Заранее спасибо!

DT
На сайте с 28.11.2006
Offline
298
#1

А что с политикой дэмарк? Надо посмотреть, как отправляются письма. Скорее всего мейл.ру их в спам режет.

Дешевый CloudLinux хостинг (http://www.provisov.net) много площадок в России, Франции, Украине, Германии, Нидерландах, США, Канаде. SSL-сертификат (https://www.provisov.net/blog/2016/10/26/besplatnyj-ssl-sertifikat-dlya-vsex-vashix-sajtov/) бесплатный и предустановленный для всех доменов
VHS
На сайте с 28.09.2007
Offline
142
VHS
#2

Проще завести почту на gmail, yandex и т.п. и отправлять по двум адресам одновременно. Так можно выявить, проблема с конкретным почтовым сервисом или на сервере. На 99% что у майла режется в спам. С майлом и рамблером у меня очень часто возникали проблемы.

A7
На сайте с 14.09.2006
Offline
106
#3
dmitrii_trof:
А что с политикой дэмарк? Надо посмотреть, как отправляются письма. Скорее всего мейл.ру их в спам режет.

вот такой код. Тут делалось еще подтверждение ввиде копии письма на емейл. Поначалу приходило, потом перестало. Особо оно не нужно было. Т.к. они либо приходило вдвоем или ниодного. Сейчас подтверждение вообще не приходит

<?php

function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {

$file = $path.$filename;

$file_size = filesize($file);

$handle = fopen($file, "r");

$content = fread($handle, $file_size);

fclose($handle);

$content = chunk_split(base64_encode($content));

$uid = md5(uniqid(time()));

$name = basename($file);

$header = "From: ".$from_name." <".$from_mail.">\r\n";

$header .= "Reply-To: ".$replyto."\r\n";

$header .= "MIME-Version: 1.0\r\n";

$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";

$header .= "This is a multi-part message in MIME format.\r\n";

$header .= "--".$uid."\r\n";

$header .= "Content-Type: text/plain; charset=windows-1251\r\n";

$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";

$header .= $message."\r\n\r\n";

$header .= "--".$uid."\r\n";

$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here

$header .= "Content-Transfer-Encoding: base64\r\n";

$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";

$header .= $content."\r\n\r\n";

$header .= "--".$uid."--";

if (mail($mailto, $subject, "", $header)) {

echo "Письмо отправлено"; // or use booleans here

} else {

echo "Ошибка отправки";

}

}

$tema = trim($_POST["tema"]);

$disc = trim($_POST["disc"]);

$worktype = trim($_POST["worktype"]);

$kol = trim($_POST["kol"]);

$srok = trim($_POST["srok"]);

$name = trim($_POST["name"]);

$email = trim($_POST["email"]);

$tel = trim($_POST["tel"]);

$price = trim($_POST["price"]);

$practical = trim($_POST["practical"]);

$payment = trim($_POST["payment"]);

$comm = trim($_POST["comm"]);

if (($name == "Имя") || ($tema == "Тема работы") || ($kol == "Объем (страниц)") || ($srok == "Срок выполнения") || ($email == "Ваш E-mail"))

{

echo '<font face="times new roman"><center><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b><br><br></P> Заполните, пожалуйста, все поля!</br><br><a href="javascript:history.go(-1)">Назад</a></font>';

}

else{

echo '<font face="times new roman"><center><b><h2>Ваш заказ отправлен!</h2></b></center><br>Спасибо, что решили воспользоваться нашими услугами!<br>В ближайшее время мы свяжемся с Вами для подтверждения заказа<br><br>Оформить еще <a href=orderform.htm>заказ</a><br></font>';

$date = date("d.m.Y - H:i:s");

$body = "Заявка с сайта $site\n\n

Имя (ник): $name\n

e-mail: $email\n

Дата: $date\n\n

Тема:$tema\n

Дисциплина (предмет): $disc\n

Тип работы: $worktype\n

Практика $practical\n

Количество страниц: $kol\n

Срок выполнения (дата): $srok\n

Телефон: $tel\n

Предполагаемая стоимость: $price\n

Способ оплаты: $payment\n

Пожелания:\n$comm\n";

/*

$headers = "From: $email\n";

$headers .= "X-Sender: $email\n";

$headers .= "Content-Type: text/plain; charset=windows-1251";

*/

//*** Uniqid Session ***//

$strSid = md5(uniqid(time()));

$headers = "";

$headers = "From: $email\n";

$headers .= "MIME-Version: 1.0\n";

$headers .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n";

$headers .= "This is a multi-part message in MIME format.\n";

$headers .= "--".$strSid."\n";

$headers .= "Content-Type: text/plain; charset=windows-1251\n";

$headers .= "Content-Transfer-Encoding: 7bit\n\n";

$headers .= $body."\n\n";

//*** Attachment ***//

if($_FILES["fileAttach"]["name"] != "")

{

$strFilesName = $_FILES["fileAttach"]["name"];

$strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"])));

$headers .= "--".$strSid."\n";

$headers .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n";

$headers .= "Content-Transfer-Encoding: base64\n";

$headers .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";

$headers .= $strContent."\n\n";

}

/*send function*/

mail($admin,$subject,null,$headers);

//дубль в файл

$fg = @file_get_contents('clients.txt');

$fp = fopen('clients.txt','w');

fwrite($fp,"Имя (ник): $name\r\ne-mail: $email\r\nДата: $date\r\n\r\nТема:$tema\r\nДисциплина (предмет): $disc\r\nТип работы: $worktype\r\nПрактика $practical\r\nКоличество страниц: $kol\r\nСрок выполнения (дата): $srok\r\nТелефон: $tel\r\nПредполагаемая стоимость: $price\r\nСпособ оплаты: $payment\r\nПожелания:\r\n$comm\r\n-------------------------\r\n");

if($fg !== '') {

fwrite($fp,$fg);

}

fclose($fp);

}

//отправка файла

$to_mail = $admin; // кому письмо

$my_file = 'clients.txt'; //имя фала

$my_path = $_SERVER['DOCUMENT_ROOT'].'/'; //путь до папки с файлом

$my_name = '';

$my_mail = $admin; // email отправителя

$my_replyto = ''; // копия

$my_subject = 'Файл клиентов';

$my_message = '';

mail_attachment($my_file, $my_path, $to_mail, $my_mail, $my_name, $my_replyto, $my_subject, $my_message);

?>

VHS
На сайте с 28.09.2007
Offline
142
VHS
#4
alex7722:
вот такой код.

dmitrii_trof имел в виду логи почтовых сообщений с заголовками видимо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий