Почему форма не отправляется на email?

Вот код формы html:
<form action="php/upload.php" enctype="multipart/form-data" method="post">
					<h2 class="send_zay" align="center">Отправить заявку</h2><br>
					<input type="text" name="name" placeholder="Ваше имя" class="s_input"><br>
					<input type="text" name="phone" placeholder="Ваш телефон" class="s_input"><br>
					<input type="text" name="message" placeholder="Ваша заявка" class="big_input s_input"><br>
					<div class="file-upload3">
					    <label>
					        <input type="file" name="mail_file">
					    </label>
					</div>
					<input type="submit" name="submit" value="" class="submitter1">
				</form>


Вот код PHP:
php
header('Content-Type: text/html; charset=utf-8');

$thm = "Сообщение с сайта, форма 1.";
$msg = "ИМЯ: ".$_POST['name']."ТЕЛЕФОН: "."\n".$_POST['phone']."\n"."СООБЩЕНИЕ: ".$_POST['message'];
$admin = "fayzrakhman7@gmail.com";
$doc = ""; 

  if (!empty($_FILES['mail_file']['tmp_name'])) 
  { 
    // Закачиваем файл 
    $path = $_FILES['mail_file']['name']; 
    if (copy($_FILES['mail_file']['tmp_name'], $path)) $doc = $path; 
  } 

  if(empty($doc)) mail($admin, $thm, $msg); 
  else send_mail($admin, $thm, $msg, $doc); 
  // Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
  function send_mail($admin, $thema, $html, $path)   
  { if ($path) {  
    $fp = fopen($path,"rb");   
    if (!$fp)   
    { print "Cannot open file";   
      exit();   
    }   
    $file = fread($fp, filesize($path));   
    fclose($fp);   
    }  
    $name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)  
    $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
    $boundary     = "--".md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.  
    $headers    = "MIME-Version: 1.0;$EOL";   
    $headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";  
    $headers   .= "From: address@server.com";  
      
    $multipart  = "--$boundary$EOL";   
    $multipart .= "Content-Type: text/html; charset=windows-1251$EOL";   
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   
    $multipart .= $EOL; // раздел между заголовками и телом html-части 
    $multipart .= chunk_split(base64_encode($html));   

    $multipart .=  "$EOL--$boundary$EOL";   
    $multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";   
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   
    $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";   
    $multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла 
    $multipart .= chunk_split(base64_encode($file));   

    $multipart .= "$EOL--$boundary--$EOL";   
      
        if(!mail($admin, $thema, $multipart, $headers))   
         {return False;           //если не письмо не отправлено
      }  
    else { //// если письмо отправлено
    return True;  
    }  
  exit;  
  }

?>

Форма не приходит на fayzrakhman7@gmail.com. Почему?
P.S. Форма с файлом.
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ninazu
@Ninazu
Я думал в 2016 уже такой код не пишут) Аж вена где-то в голове лопнула. Может всё таки какой-то легковесный фреймворк поставите(Лично мне нравится Yii2)? Тут вам и Sanitize и MVC и SMTP
А из готовых библиотек
swiftmailer.org/download
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы