2017-04-21 1 views
0

Cela m'a vraiment donné des défis, et je voulais être sûr de ce que je fais réellement. Maintenant, je pense que j'ajoute le tmp_name au message afin de joindre le PDF qui a été consulté depuis le côté client html.PHP côté serveur ne pas Envoyer PDF à l'adresse e-mail

Je pensais que je fais comme ça

<?php 
$ip = getenv('REMOTE_ADDR'); 
$hostname = gethostbyaddr($ip); 

$email_to = "[email protected]"; 
$email_subject = "My subject"; 
$fullname = $_POST['fullname']; 
$institution = $_POST['institution']; 
$month = $_POST['month']; 
$Day = $_POST['Day']; 
$year = $_POST['year']; 
$courses = $_POST['courses']; 
$marital_status = $_POST['marital_status']; 
$cover_letter = $_POST['cover_letter']; 
$file_name = $_FILES['resume']['name']; 
$file_size = $_FILES['resume']['size']; 
$file_type = $_FILES['resume']['type']; 
$tmp_name = $_FILES['resume']['tmp_name']; 

$email_msg = "IP: $ip\n Host Name: $hostname\n Name in Full : $fullname\n Institution: $institution\n DOB : $month/$Day/$year\n Courses: $courses\n Marital Status: $marital_status\n Cover Letter : $cover_letter\n Attachment: $tmp_name\n\n"; 

$file = fopen($tmp_name,'rb'); 
$data = fread($file,filesize($tmp_name)); 
fclose($file); 

$semi_rand  = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
$headers = "MIME-Version: 1.0\r\n" . 
"Content-Type: multipart/mixed;\r\n" ; 
$message = "This is a multi-part message in MIME format.\n\n" . 
"-{$mime_boundary}\n" . 
"Content-Type: text/plain; charset=\"iso-8859-1\n" . 
"Content-Transfer-Encoding: 7bit\n\n" . 
$email_msg . "\n\n"; 
$data = chunk_split(base64_encode($data)); 
$message .= "--{$mime_boundary}\n" . 
"Content-Type: {$file_type};\n" . 
" name=\"{$tmp_name}\"\n" . 
"Content-Disposition: attachment;\n" . 
" filename=\"{$tmp_name}\"\n" . 
"Content-Transfer-Encoding: base64\n\n" . 
$data . "\n\n" . 
"-{$mime_boundary}-\n"; 




$sendmemail = @mail($email_to, $email_subject, $email_msg, $headers); 

if($sendmemail) 
    { 

       echo ("<SCRIPT LANGUAGE='JavaScript'> 
       window.alert('Registeration Complete') 
       window.location.href='[url]'; 
       </SCRIPT>"); 
    } 

?> 

Où tmp_name de $ est le nom de la pièce jointe (PDF, DOC, DOCX, RTF), etc.

+0

et la question est? – nogad

+0

utilise phpmailer pour envoyer des pièces jointes. – SoftwareDev

+0

son envoi d'autres informations, bien et bon, mais ce n'est même pas essayer d'envoyer le fichier parcouru dans la page Web @nogad – RealMary

Répondre

0

Je mince, vous devez utiliser $data Installez $tmp_name voir l'exemple ci-dessous.
$ file = file_get_contents ("picture.jpg");

$message .= "Content-Type: image/jpg; name=\"picture.jpg\"\r\n" 
    ."Content-Transfer-Encoding: base64\r\n" 
    ."Content-disposition: attachment; file=\"picture.jpg\"\r\n" 
    ."\r\n" 
    .chunk_split(base64_encode($file)) 
    ."--1a2a3a--";