Как отправить прикрепленный файл с формы на почту?

Моя форма для отправки.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['radiotest'])) {$radiotest = $_POST['radiotest'];}
    if (isset($_POST['check'])) {$check = $_POST['check'];}
    if (isset($_POST['pol'])) {$pol = $_POST['pol'];}
    if (isset($_FILES['file'])) {$file = $_FILES['file'];}
     if (isset($_POST['service'])) {$service = $_POST['service'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
    $to = "matreshka.ask@gmail.com, moscow.elektrik@yandex.ru, pl_maxim@list.ru "; /*Адрес, на который должно приходить письмо*/
    $sendfrom   = ""; /*Адрес, с которого будет приходить письмо*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "<b>Заявка с сайта ММ</b> <br>";
    $message = "<b>Тема:</b> $formData \n \n <br>";

     if (isset($name))
    {
    $message = $message."<b>Имя:</b> ". htmlspecialchars($name)." \n \n <br>";
    }
     if (isset($file))
    {
    $message = $message."<b>Имя:</b> ". htmlspecialchars($file)." \n \n <br>";
    }
    if (isset($phone))
    {
    $message = $message."<b>Телефон:</b> ". htmlspecialchars($phone)." \n \n <br>";
    }
    if (isset($phone1))
    {
    $message = $message."<b>Телефон:</b> ". htmlspecialchars($phone1)." \n \n <br>";
    }
    if (isset($file))
    {
    $message = $message."<b>файл:</b> ". htmlspecialchars($file)." \n \n <br>";
    }
    if (isset($service))
    {
    $message = $message."<b>Колличество:</b> ". htmlspecialchars($service)." \n \n <br>";
    }
     if (isset($pol))
    {
    $message = $message."<b>Площадь пола:</b> ". htmlspecialchars($pol)." \n \n <br>";
    }
     if (isset($check))
    {
    $message = $message. htmlspecialchars($check)." \n \n <br>";
    }
    if (isset($radiotest))
    {
    $message = $message. "<b>Что для вас наиболее важно при выборе электромонтажника:</b> ". htmlspecialchars($radiotest)." \n \n <br>";
    }
    $message .= '<b>Заявка пришла со страницы:</b> ' . $_SERVER["HTTP_REFERER"] .'<br>'; 

    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo '';
    }
    else 
    {
    echo '<center><p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p></center>';
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
?>
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
функция mail() конечно отправляет почту, но обычно используют smtp или api сторонних сервисов. Все что отправлено через mail() имеет большой шанс попасть в спам. Это самая популярная дыра, ее вообще в php.ini рекомендуют отключать. Так что мой Вам совет, разберитесь с альтернативными методами. Многие из них проще даже, самые популярные:
библиотеки:
https://github.com/PHPMailer/PHPMailer
https://github.com/swiftmailer/swiftmailer
сервисы:
https://www.mailgun.com/
https://mailchimp.com/

Но если онанизм все же Вам ближе, чем ООП, то:
https://habr.com/sandbox/48759/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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