Задать вопрос
@Gambi-Titto
Начинающий програмист

Как отправить форму обратной связи на почту?

Как это всё написать или перенести в Laravel 8 ??

Буду очень благодарен тому кто поможет решить вопрос..

PHP
<?php
if (isset ($_POST['contactFF'])) {
  $to = "test@test.ru"; 
  $from = $_POST['contactFF'];
  $e_mail = "test@test.ru";
  $subject = "Образовательный Центр";
  $message = "Email: ".$from. "\nID: " .$_POST['idnumber']. "\nФИО: ".$_POST['fio'].  "\nТелефон: ".$_POST['phone']. "\nРазмер помещения: " .$_POST['sizePlace']. "\nНазвание ОЦ: " .$_POST['nameoz']. "\nАдрес ОЦ с индексом: " .$_POST['adres']; 

  $boundary = md5(date('r', time()));
  $filesize = '';
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= "From: " . $e_mail . "\r\n";
  $headers .= "Reply-To: " . $from . "\r\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  $message="
Content-Type: multipart/mixed; boundary=\"$boundary\"

--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit

$message";
  for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
     if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
         $filename = $_FILES['fileFF']['name'][$i];
         $filetype = $_FILES['fileFF']['type'][$i];
         $filesize += $_FILES['fileFF']['size'][$i];
         $message.="

--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"

$attachment";
     }
   }
   $message.="
--$boundary--";

  if ($filesize < 100000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
    mail($to, $subject, $message, $headers);
    echo $_POST['fio'].', Окончательное решение об открытии центра будет принято Компанией на основании анализа экономической целесообразности.';
  } else {
    echo 'Извините, письмо не отправлено. Размер всех файлов превышает 100 МБ.';
  }
}
?>
  • Вопрос задан
  • 442 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
https://github.com/avsbru/laravel-docs-8.x-ru/blob...

UPD

делаем маршрут на получение данных, в обработчике, получаем запрос, проводим валидацию, вытаскиваем из запроса файлы и отправляем их по почте

Итого:
  • Прописать маршрут в routes/web.php
  • Создать класс контроллера-обработчика для маршрута
  • Создать класс почтового отправления
  • Создать файл представления почтового отправления (blade или markdown)
  • Закодить в контроллере вышеописанное
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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