hi all. I am trying to use php to send emails with an attached excel file. A basic excel file with no formatting or anything fancy seems to work with the code below, but any excel doc with any kind of formating wont even open. Any ideas what is wrong here? I found the code below on the forums here but doesnt seem to work well for excel. thanks!
$fileatt = "../files/"; // Location of file on server
$fileatt_type = "application/vnd.ms_excel";// Type of file being sent
$fileatt_name = "binary2.xls";// Name of file
$fileatt_path = $fileatt.$fileatt_name;// Name of file
// If the file exists...
if (file_exists($fileatt_path))
{
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt_path,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "From: my_name@some_domain.com";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$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" .
$message . "\n\n";
$message .="This is an automated email sent from a php script\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$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";
$mail_to = "someemail@some.com";
$mail_subject = "Test email from";
if (!mail($mail_to, $mail_subject, $message, $headers))
echo "Mail send failed!";
else
echo "Mail sent successfully to $mail_to";
}