PHP webform — получение в письме только имени вложения, а не исходного вложения

Webform работает нормально, кроме вложений электронной почты. Я получаю только имя вложения в письме. К письму следует приложить оригинальный файл. Любая помощь?

Проверьте приведенные ниже коды & дайте мне знать, как я могу решить эту проблему.

Заранее спасибо.

<?php

if ( isset( $_POST['submit']))
{

$fname=$_POST['fname'];
$lname=$_POST['lname'];
$city=$_POST['city'];
$state=$_POST['state'];
$country=$_POST['country'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$gender=$_POST['gender'];
$field1=$_POST['field1'];
$field2=$_POST['field2'];
$link=$_POST['link'];
$twit=$_POST['twit'];
$field3=$_POST['field3'];
$field4=$_POST['field4'];
$field5=$_POST['field5'];
$document1=$_FILES['b_plan']['name'];
$document2=$_FILES['presentation']['tmp_name'];
$document3=$_FILES['founder_cvs']['name'];
//echo $title;
//echo $document;
//$path =ABSPATH.'/uploads/applications/'.$_FILES['presentation']['name'];
//$path =ABSPATH.'/uploads/applications/'.$_FILES['b_plan']['name'];
$path =ABSPATH.'/uploads/applications/';

if(isset($_FILES['presentation']['name']))
{
move_uploaded_file($_FILES['presentation']['tmp_name'], $path.$_FILES['presentation']['name']);
}
if(isset($_FILES['founder_cvs']['name']))
{
move_uploaded_file($_FILES['b_plan']['tmp_name'], $path.$_FILES['b_plan']['name']);
}
if(isset($_FILES['founder_cvs']['name']))
{
move_uploaded_file($_FILES['founder_cvs']['tmp_name'], $path.$_FILES['founder_cvs']['name']);
}
//$path =ABSPATH.'wp-content/plugins/document-listing/uploads/'.$_FILES['presentation']['name'];

//wp-content/plugins/document-listing/uploads/
//echo $path;
global $wpdb;
$n = $wpdb->insert(
'wp__form',
array(

'first_name' => $fname,
'last_name' => $lname,
'city' => $city,
'state' => $state,
'country' => $country,
'phone' => $phone,
'email'=>$email,
'gender'=>$gender,
'field1'=>$field1,
'field2'=>$field2,
'link' => $link,
'twit' => $twit,
'field3' => $field3,
'field4' => $field4,
'field5' => $field5,
'b_plan' => $document1,
'presentation' => $document2,
'founder_cvs' =>$document3
)
);
$to= "mehreeen786@gmail.com";
//echo $to; die;

$subject=" application on ";

$attachment = chunk_split(base64_encode(file_get_contents($_FILES['presentation']['tmp_name'])));
$document2 = $_FILES['presentation']['name'];

$body = "<p>Dear Admin</p>
<p>An  application has been received. Please find below the details:</p>
Title: ".$title."<br/>
First Name: ".$fname."<br/>
Last Name: ".$lname."<br/>
City: ".$city."<br/>
Emirate/Province: ".$state."<br/>
Country: ".$country."<br/>
Phone Number: ".$phone."<br/>
Email: ".$email."<br/>
Gender: ".$gender."<br/>
How did you hear about ?: ".$field1."<br/>
Company Name: ".$fields2."<br/>
Management Team (short bios with names, educations, and experience): ".$field3."<br/>
LinkedIn: ".$link."<br/>
Twitter: ".$twit."<br/>
Executive Summary : ".$field4."<br/>
Anything else you want to add? : ".$field5."<br/>
Founder CV: ".$document3."<br/>
Presentation Deck: ".$document2."<br/>
Financial Projections: ".$document1."<br/>
<p>Thanks </p>
<p> Team </p>   ";$headers = 'From: '.$email.''. "\r\n" .
'Reply-To: '.$email."\r\n".
'MIME-Version: 1.0' . "\r\n".
'Content-type: text/html; charset=iso-8859-1';if(mail($to,$subject,$body,$headers))
{
header('Location:/thankyou/');

}

}//echo $msg;
?>

1

Решение

Похоже, вы на самом деле ничего не прикрепляете к своей электронной почте. Вы определяете $attachment, но это никогда нигде не привыкает. Я бы предложил использовать что-то вроде PHPMailer чтобы сделать это проще. После того, как вы импортируете PHPMailer, прикреплять вещи довольно просто:

$email = new PHPMailer();

$email->From      = 'you@example.com';
$email->FromName  = 'Your Name';
$email->Subject   = $subject;
$email->Body      = $body;
$email->AddAddress( $to );

$email->AddAttachment( $path . $document2 , $document2 );

$email->Send();
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector