Как через форму загрузить файл и отправить на почту?
Здравствуйте все!
Возникла проблемка, т.к. я не владею программированием. К делу:
Есть форма на сайте:
<tr> <td colspan="2" align="center"> <p><input style="color:#05ff0a;" type="file" title="Загрузите документ" name="documents" accept="image/jpeg, application/pdf"><br> <span style="font-size: 12px; color: gray;">Возможно ....<br> ....</span></p> </td> </tr>
как прикрепить файл и его отправить на почту?
Частичный код PHP:
if (isset($_POST['documents'])) {$documents = $_POST['documents'];}
if(isset($submit)):
$filename = trim(html_filter($file_name));
/* Сюда впишите свою эл. почту */
$address = "dkp_noreply@lbolimp.ru";
/* А здесь прописывается текст сообщения, \n - перенос строки */
$mes = "Данные продавца \n\nФамилия, имя, отчество: $nameSeller \nДата рождения: $dateSeller \nПАСПОРТ: \nСерия: $nameSellerPS \nНомер: $nameSellerPN \nКем выдан: $nameSellerPI \nКод подразделения: $nameSellerPU \nДата выдачи: $dateSellerPI\n Адрес регистрации: $nameSellerAR\n\nДАННЫЕ ПОКУПАТЕЛЯ \n\nФамилия, имя, отчество: $nameBuyer \nДата рождения: $dateBuyer \nПАСПОРТ: \nСерия: $nameBuyerPS \nНомер: $nameBuyerPN \nКем выдан: $nameBuyerPI \nКод подразделения: $nameBuyerPU \nдата выдачи: $dateBuyerPI \nАдрес регистрации: $nameBuyerAR \n\nДАННЫЕ из ПТС \n\nПаспорт Транспортного Средства: \nсерия: $namePOtVS \nномер: $namePOtVN \nНаименование организации, выдавшей паспорт: $namePOtVOIP \nАдрес: $namePOtVAOIP \nДата выдачи паспорта: $datePOtV \n\nДАННЫЕ СТС \n\nСвидетельство о регистрации ТС: \nсерия: $nameRegCertS \nномер: $nameRegCertN \nРегистрационный знак: $nameRegCertRS \nИдентификационный номер (VIN): $nameRegCertVIN \nМарка, модель: $nameRegCertMM \nТип ТС: $nameRegCertTV \nКатегория ТС (ABCD, прицеп): $nameRegCertCV \nГод выпуска ТС: $nameRegCertYV\nМодель двигателя: $nameRegCertME \nДвигатель №:$nameRegCertNE \nШасси (рама) №:$nameRegCertCE \nКузов (коляска) №: $nameRegCertBN \nЦвет: $nameRegCertC \nМощность двигателя, кВт/л.с.: $nameRegCertPE \nРабочий объём двигателя, см3: $nameRegCertJVE \nРазрешённая max масса, кг: $nameRegCertMaxW \nМасса без нагрузки, кг: $nameRegCertRegCertMaxWL \nПаспорт ТС: \nсерия: $namePOtVS1 \nномер: $namePOtVN1 \n\nДАННЫЕ О ПЛАТЕЛЬЩИКЕ \n\nВаша фамилия: $nameDatPSurname \nВаше имя: $nameDatPName \nВаше отчество: $nameDatPMN \nЭл. почта: $email \nКонтактный телефон: $tel \nВаш заказ: $TCoSC \nКомментарий: $body \nДокумент: $documents";
/* А эта функция как раз занимается отправкой письма на указанный вами email */
//Если прикреплен файл
if($filename!="" and $file_size>0):
if(XMail($address,$TCoSC,$mes,$documents,$file)==1){header("Location:?send=ok");}
endif;
//Если Не прикреплен файл
if($filename=="" or $file_size==0):
if(EMail($address,$TCoSC,$mes)==1){header("Location:?send=ok");}
endif;
if ($send == 'true')
{
echo $a = "<br>\nТакже Вы можете воспользоваться ..... \n<br>\n<br>\n<a href='http://.....ru/usluga/.....><img src='http://.......ru/feedbackmess/image/....online(500x221).png' border=0 title='Перейти'></a><br>\n<br>\nСообщение успешно отправлено.<br><br>\nВы будете перенаправлены на форму оплаты в течении 10 секунд.<br>\n<br>\nЕсли не хотите ждать, <a href='http://......ru/...../'>нажмите на эту ссылку</a> чтобы перейти к оплате сразу.";
}
else
{
echo $a = "<a href='http:/..../feedback>'><img src='http://.../feedbackmess/image/...jpg' border=0 title='Перейти'></a><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости вы что-то, где-то не указали в форме, <br>\nи Вы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n Просто нажмите <a href=http://..../feedback>сюда</a>";
}
Если это делается на базе WP, а мы тут именно этот движок рассматриваем, то советую поставить плагин Contact Form 7, в нем Вы это реализуете в считанные минуты.
Вам вместо функции XMail (да и вместо EMail) нужно использовать встроенную функцию WordPress wp_mail().
Пример из описания, который как раз подходит под ваши нужды:
// это if(XMail($address,$TCoSC,$mes,$documents,$file)==1){header("Location:?send=ok");} // заменяем на это // удалим фильтры, которые могут изменять заголовок $headers // remove_all_filters( 'wp_mail_from' ); // remove_all_filters( 'wp_mail_from_name' ); $files = array( $_FILES['file1']['file_name'] ); // путь к файлу который прикрепляем //$headers = 'From: My Name <myname@mydomain.com>' . "\r\n"; // отправляем письмо $send = wp_mail( $address, $TCoSC, $mes, '', $files ); if( $send ){ header("Location:?send=ok"); }