@Eshaphot

Не отправляется файл с формы на почту при помощи php. Что делать?

У меня имеется форма, которая содержит поля куда вводится информация и отправляется на почту. Сегодня был добавлен элемент который загружает файл на форму. У меня возникла проблема в том, что файл не отправляется на почту.
HTML форма
<form action="email.php" class="u-clearfix u-form-spacing-15 u-form-vertical u-inner-form" style="padding: 0;" source="email" method="post" name="form" enctype="multipart/form-data">
                    <div class="u-form-group u-form-name u-label-top">
                      <label for="name-daf4" class="u-label">Имя</label>
                      <input type="text" id="name-daf4" name="your_name" class="u-border-black u-border-no-left u-border-no-right u-border-no-top u-input u-input-rectangle" required="" wfd-id="id385">
                    </div>
                    <div class="u-form-group u-label-top">
                      <label for="email-daf4" class="u-label">Почта или телефон</label>
                      <input type="text" id="email-daf4" name="your_contact" class="u-border-black u-border-no-left u-border-no-right u-border-no-top u-input u-input-rectangle" required="required" wfd-id="id386">
                    </div>
                    <div class="u-form-group u-form-message u-label-top">
                      <label for="message-daf4" class="u-label">Сообщение</label>
                      <textarea placeholder="" rows="4" cols="50" id="message-daf4" name="message" class="u-border-black u-border-no-left u-border-no-right u-border-no-top u-input u-input-rectangle" required=""></textarea>
                    </div>
                    <div class = "u-form-group u-form-file">
                       <label for="file-daf4" class="u-label-file">Прикрепить файл</label>
                       <P>
                           <input type="file" name="attachment">
                       </P>
                    </div>
                    <div class="u-form-agree u-form-group u-label-top u-form-group-4">
                      <label class="u-field-label"></label>
                      <input type="checkbox" id="agree-f183" name="agree" class="u-agree-checkbox u-field-input" required="" wfd-id="id387">
                      <label for="agree-f183" class="u-agree-label u-field-label" style="">
                        <a class="u-active-none u-border-none u-btn u-button-link u-button-style u-hover-none u-none u-text-palette-1-base u-btn-2" href="%D0%9F%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0-%D0%BF%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.html">Я согласен с   политикой конфиденциальности</a>
                      </label>
                    </div>
                    <div class="u-align-center u-form-group u-form-submit u-label-top">
                      <a href="#" class="u-btn u-btn-round u-btn-submit u-button-style u-hover-palette-1-dark-1 u-palette-1-base u-radius-50 u-btn-3">Отправить</a>
                      <input type="submit" value="submit" class="u-form-control-hidden" wfd-id="id388">
                    </div>
                    <div class="u-form-send-success u-form-send-messages">Сообщение успешно отправлено!</div>
                    <div class="u-form-send-error u-form-send-message">Сообщение успешно отправлено!</div>
                  </form>


email.php 
<?php
    $to = "example@gmail.com";//Почтовый ящик на который будет отправленно сообщение
    $subject = "Тема сообщения";//Тема сообщения
    $headers = "Content-type: text/html; charset=utf-8 \r\n";//Шапка сообщения 
    
    // Проверка введенных данных
  if (empty($to)) {
    http_response_code(400);
    echo "Пожалуйста, заполните форму и повторите попытку.";
    exit;
  }
  
if($_SERVER["REQUEST_METHOD"] == "POST"){
    if(isset($_POST["your_name"]))
    {
      $name = trim(strip_tags($_POST["your_name"]));
    }
    if(isset($_POST["your_contact"]))
    {
      $number = trim(strip_tags($_POST["your_contact"]));
    }
    if (isset( $_POST["message"])) {
      $question = trim(strip_tags($_POST["message"]));
    }
    
    if (isset($_POST['send'])){
        if (!empty($_FILES['attachment']['name'])){
            //переменные
            $file_name = $_FILES['attachment']['name'];
            $temp_name = $_FILES['attachment']['tmp_name'];
            $file_type = $_FILES['attachment']['type'];
            
            // получить расширение файла
            $base = basename($file_name);
            $extension = substr($base, strlen($base)-4,strlen($base));
            
            $file = $temp_name;
            $content = chunk_split(base64_encode(file_get_contents($file)));
            $uid = md5(uniqid(time()));
        }
    }
    
    
      $message  = "<html>";
        $message  .= "<body>";
        $message  .= "Телефон: ".$number;
        $message  .= "<br />";
        $message  .= "Имя: ".$name;
        $message  .= "<br />";
        $message  .= "Вопрос: ".$question;
        $message  .= "<br />";
        
        //$headers .= "--".$uid."\r\n";
        //$headers .= "Content-Type:". $file_type.":name=\"".$file_name."\"\r\n";
        //$headers .= "Content-Transfer-Encoding: base64\r\n";
        //$headers .= "Content-Description: attachment;filename=\"".$file_name."\r\n";
        $message .= "Файл: ".$content."\r\n\r\n";
        
        $message  .= "</body>";
      $message  .= "</html>";
      $sent = mail ($to, $subject, $message, $headers);
      
      //include 'reload_page.php';
      //reload_page();
      
}
else
{
 exit();
} 
?>


Можете пожалуйста помочь дописать php файл, чтобы он отправлял письма с вложенным файлом на почту.
Заранее вам благодарен!
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы