I am trying to send an attachment using the mail function.

The email arrives with the attachment, however the attachment is empty or blank, depending on what it is. If it is a document it is empty and if it is a jpg there is no picture.

Here is the code

$fileatt = '/srv/www/htdocs/'; // Path to the file        

$fileatt_type =  'text/plain'; // File Type 


$fileatt_name = 'test.txt' // Filename that will be used for the file as the attachment 

$email_from = me@me.org; // Who the email is from 
$email_subject = "Subject"; // The Subject of the email 
$email_txt = 'blah blah blah'; // Message that the email has in it 

$email_to = "you@me.net"; // Who the email is too 

$headers = "From: ".$email_from; 

$file = fopen($fileatt,'rb'); 

$data = fread($file,filesize($fileatt)); 



fclose($file); 

$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

$headers .= "\nMIME-Version: 1.0\n" . 
            "Content-Type: multipart/mixed;\n" . 
            " boundary=\"{$mime_boundary}\""; 

$email_message .= "This is a multi-part message in MIME format.\n\n" . 
                "--{$mime_boundary}\n" . 
                "Content-Type:text/html; charset=\"iso-8859-1\"\n" . 
               "Content-Transfer-Encoding: 7bit\n\n" . 
$email_txt . "\n\n";  

$data = chunk_split(base64_encode($data)); 

$email_message .= "--{$mime_boundary}\n" . 
                  "Content-Type: {$fileatt_type};\n" . 
                  " name=\"{$fileatt_name}\"\n" . 
                  //"Content-Disposition: attachment;\n" . 
                  //" filename=\"{$fileatt_name}\"\n" . 
                  "Content-Transfer-Encoding: base64\n\n" . 
                 $data . "\n\n" . 
                  "--{$mime_boundary}--\n"; 

$ok = @mail($email_to, $email_subject, $email_message, $headers); 

if($ok) { 
echo "<font face=verdana size=2>The file was successfully sent!</font>"; 
} else { 
die("Sorry but the email could not be sent. Please go back and try again!"); 
} 

As I said, the email arrives with an attachment, however all the attachments are blank or empty.

Thanks.

    Save yourself time - download phpmailer from sourceforge. I was stupid and wrote a mime mailer myself, and realise what an utter waste of time it all was.

      Write a Reply...