2016-10-19 2 views
0

У меня есть html-форма, где я прошу своих пользователей заполнить их личные и карьерные данные и приложить их резюме. Я хотел бы получить эти данные (данные формы и вложение), отправленные по электронной почте с использованием php .... Любая помощь будет очень благодарна ....Как отправить вложение файла по почте вместе с другими данными формы в php?

вот мой код для отправки почты ... Используя этот код я получаю файл вложения, но не другие данные формы ... Просьба помочь, где я буду неправильно ...

<?php 
// Settings - working good 
$name  = "Name goes here"; 
$email  = "[email protected]"; 
$to   = "$name <$email>"; 
$from  = "Vijay"; 
$subject  = "Here is your attachment"; 
$mainMessage = "Hi, here's the file."; 
$attachments = $_FILES['attachment']; 

if(empty($_POST['title'])  || 

    empty($_POST['exp'])   || 

    empty($_POST['skill'])   || 

    empty($_POST['qual'])   || 

    empty($_POST['certf'])   || 

    empty($_POST['domain'])  || 

    empty($_POST['fname'])  || 

    empty($_POST['lname'])  || 

    empty($_POST['phone'])  || 

    empty($_POST['email'])  || 

    empty($_POST['csal'])  || 

    empty($_POST['job'])   || 

// empty($_POST['file'])  || 

    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 

    { 

    echo "No arguments Provided!"; 



    return false; 

    }$title = strip_tags(htmlspecialchars($_POST['title'])); 

$exp = strip_tags(htmlspecialchars($_POST['exp'])); 

$skill = strip_tags(htmlspecialchars($_POST['skill'])); 

$qual = strip_tags(htmlspecialchars($_POST['qual'])); 

$certf = strip_tags(htmlspecialchars($_POST['certf'])); 

$domain = strip_tags(htmlspecialchars($_POST['domain'])); 

$fname = strip_tags(htmlspecialchars($_POST['fname'])); 

$lname = strip_tags(htmlspecialchars($_POST['lname'])); 

$phone = strip_tags(htmlspecialchars($_POST['phone'])); 

$email_address = strip_tags(htmlspecialchars($_POST['email'])); 

$csal = strip_tags(htmlspecialchars($_POST['csal'])); 

$job = strip_tags(htmlspecialchars($_POST['job'])); 



// File 
//Get uploaded file data 
    $file_tmp_name = $_FILES['attachment']['tmp_name']; 
    $file_name  = $_FILES['attachment']['name']; 
    $file_size  = $_FILES['attachment']['size']; 
    $file_type  = $_FILES['attachment']['type']; 
    $file_error  = $_FILES['attachment']['error']; 

    if($file_error > 0) 
    { 
     die('Upload error or No files uploaded'); 
    } 
    //read from the uploaded file & base64_encode content for the mail 
    $handle = fopen($file_tmp_name, "r"); 
    $content = fread($handle, $file_size); 
    fclose($handle); 
    $encoded_content = chunk_split(base64_encode($content)); 

     $boundary = md5("sanwebe"); 
     //header 
     $headers = "MIME-Version: 1.0\r\n"; 
     $headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n"; 

     //plain text 
     $body = "--$boundary\r\n"; 
     $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n"; 
     $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; 
     $body .= chunk_split(base64_encode($Message)); 

     //attachment 
     $body .= "--$boundary\r\n"; 
     $body .="Content-Type: $file_type; name=".$file_name."\r\n"; 
     $body .="Content-Disposition: attachment; filename=".$file_name."\r\n"; 
     $body .="Content-Transfer-Encoding: base64\r\n"; 
     $body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n"; 
     $body .= $encoded_content; 
$Message = "You have received a new resume from your website career application form.\n\n"."Here are the details:\n\n 

Title: ".$title."\n 
Experience: ".$exp."\n 
Skill: ".$skill."\n 
Qualification: ".$qual."\n 
Domain: ".$domain."\n 
First Name: ".$fname."\n 
Last Name: ".$lname."\n 
Phone: ".$phone."\n 
Email: ".$email_address."\n\n 

Current Salary: ".$csal."\n\n 

Job: ".$job."\n\n"; 
$data = chunk_split(base64_encode($data)); 
$message .= "--{$mime_boundary}\n" . 
"Content-Type: {$fileatttype};\n" . 
" name=\"{$fileattname}\"\n" . 
"Content-Disposition: attachment;\n" . 
" filename=\"{$fileattname}\"\n" . 
"Content-Transfer-Encoding: base64\n\n" . 
$data . "\n\n" . 
"-{$mime_boundary}-\n"; 
// Send the email 
if(mail($to, $subject, $Message, $headers)) { 
    echo "The email was sent."; 
echo "$fileattname"; 
} 
else { 
    echo "There was an error sending the mail."; 
} 
?> 
+0

Возможно, это полезно: [Alredy A] (http://stackoverflow.com/questions/12301358/send-attachments-with-php-mail) –

+0

Просто используйте класс phpmailer https://github.com/ PHPMailer/PHPMailer –

ответ

0

проверить следующую ссылку Send PHP mail with attachment

Это то, что вы ищете

+0

привет, спасибо за быстрый ответ ... Извините, если я могу спросить об этом еще раз ... я попытался использовать этот код, но я не получил другие данные из формы, может ли помочь вам ... если я не против, я могу отправить u html-форму, которую я использую. – Praveen

+0

Вот мой код для функции php mail .... используя это, я получаю только вложение, а не другие данные формы ... я ошибаюсь .. – Praveen

+0

Пожалуйста, введите код (в котором вы определяете $ message), прежде чем начинать определять переменную $ body ... Пожалуйста, дайте мне знать, если вам нужна дополнительная помощь или вы не можете понять – Amrinder

0

Вы хотите использовать проверенные, хорошо протестированные библиотеки, такие как Swiftmailer или Zend \ Mail вместо написания кода, как и вы.