За последние 24 часа нас посетили 22138 программистов и 1055 роботов. Сейчас ищут 712 программистов ...

Отправка файлов на почту

Тема в разделе "Работа с почтой", создана пользователем Dv1zhok, 29 май 2018.

  1. Dv1zhok

    Dv1zhok Новичок

    С нами с:
    29 май 2018
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток! Помогите решить вопрос: На сайте, в форме есть несколько полей input type="file" с name="file", всего 8 (нужны именно несколько, а не multiple, т.к. несколько шагов заполнения и загружаются разные документы), а так же, помимо них другие поля. Использую phpmailer письмо приходит на почту отлично, но без вложений( Как можно решить вопрос? всем input, отвечающим за загрузку файлов давать различные имена пробовал, и так же добавлять addAttachment в обработчик, не помогает. Сам в PHP не силен.

    Отрывок из HTML файла ниже:

    HTML:
    1. <div class="inputs-file">
    2. <p>
    3. <label for="passport-photo">
    4.   <input type="file" name="file" id="passport-photo" required/>
    5.   <strong id="passport-photo-name">Разворот с фотографией*</strong>
    6.   <small id="passport-photo-img"></small>
    7.   <span>Загрузить</span>
    8. </p>
    9. <p>
    10. <label for="passport-location">
    11.   <input type="file" name="file" id="passport-location" required/>
    12.   <strong id="passport-location-name">Разворот с местом прописки*</strong>
    13.   <small id="passport-location-img"></small>
    14.   <span>Загрузить</span>
    15. </p>
    16. <p>
    17. <label for="driver-card-photo">
    18.   <input type="file" name="file" id="driver-card-photo" required/>
    19.   <strong id="driver-card-photo-name">Сторона с фотографией*</strong>
    20.   <small id="driver-card-photo-img"></small>
    21.   <span>Загрузить</span>
    22. </p>
    23. </div>
    Сам обработчик:

    PHP:
    1. <?php
    2.  
    3. require_once('phpmailer/PHPMailerAutoload.php');
    4. $mail = new PHPMailer;
    5. $mail->CharSet = 'utf-8';
    6.  
    7. $fio = $_POST['fio']; //ФИО
    8. $phone = $_POST['phone']; //Телефон
    9. $type_application = $_POST['type_application']; //Тип заявления
    10. $type_card = $_POST['type_card']; //Тип карты
    11. $delivery_method = $_POST['delivery_method']; //Способ доставки
    12. $delivery_region = $_POST['delivery_region']; //Регион
    13. $settlement = $_POST['settlement']; //Населенный пункт
    14. $street = $_POST['street']; //Улица
    15. $index = $_POST['index']; //Индекс
    16. $house = $_POST['house']; //Дом
    17. $apartment = $_POST['apartment']; //Квартира
    18. $fio_recipient = $_POST['fio_recipient']; //ФИО получателя
    19.  
    20. //$mail->SMTPDebug = 3;                               // Enable verbose debug output
    21.  
    22. $mail->isSMTP();                                      // Set mailer to use SMTP
    23. $mail->Host = 'smtp.mail.ru';                                                                                              // Specify main and backup SMTP servers
    24. $mail->SMTPAuth = true;                               // Enable SMTP authentication
    25. $mail->Username = '******'; // Ваш логин от почты с которой будут отправляться письма
    26. $mail->Password = '******'; // Ваш пароль от почты с которой будут отправляться письма
    27. $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    28. $mail->Port = 465; // TCP port to connect to / этот порт может отличаться у других провайдеров
    29.  
    30. $mail->setFrom('*****'); // от кого будет уходить письмо?
    31. $mail->addAddress('*****');     // Кому будет уходить письмо
    32. //$mail->addAddress('ellen@example.com');               // Name is optional
    33. //$mail->addReplyTo('info@example.com', 'Information');
    34. //$mail->addCC('cc@example.com');
    35. //$mail->addBCC('bcc@example.com');
    36. //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    37. $mail->addAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);
    38. $mail->isHTML(true);                                  // Set email format to HTML
    39.  
    40. $mail->Subject = 'Заявка с сайта';
    41. $mail->Body    = '' .$fio . ' оставил заявку, <br>Eго телефон: ' .$phone. '<br>Тип заявления: ' .$type_application. '<br>Тип карты: ' .$type_card. '<br>Способ доставки: ' .$delivery_method. '<br>Регион: ' .$delivery_region. '<br>Населенный пункт: ' .$settlement. '<br>Улица: ' .$street. '<br>Индекс: ' .$index. '<br>Дом: ' .$house. '<br>Квартира: ' .$apartment. '<br>ФИО получателя: ' .$fio_recipient;
    42. $mail->AltBody = '';
    43.  
    44. if(!$mail->send()) {
    45.     echo 'Error';
    46. } else {
    47.     header('location: index.html');
    48. }
    49. ?>
     
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    вместо
    HTML:
    1. name="file"
    можно указать
    HTML:
    1. name="files[]"
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Или file1, file2 и т.п.
    --- Добавлено ---
    Если проблемы именно в обработке, за вас их решать вряд ли кто станет. Там не сложно. В цикле или тупо линейно присоединяете вложения к письму. Может, получится.