atheneris Posted January 4, 2011 Share Posted January 4, 2011 Hello, I'm trying to send an email with a PDF attachment. The email is sending, but the attachment will not open. Any help you can give is appreciated. Code snippets below: function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) { $file = $path.$filename; $file_size = filesize($file); $handle = fopen($file, "r"); $content = fread($handle, $file_size); fclose($handle); $content = chunk_split(base64_encode($content)); $uid = md5(uniqid(time())); $name = basename($file); $header = "From: ".$from_name." <".$from_mail.">\r\n"; $header .= "Reply-To: ".$replyto."\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; $header .= "This is a multi-part message in MIME format.\r\n"; $header .= "--".$uid."\r\n"; $header .= "Content-type:text/plain; charset=iso-8859-1\r\n"; $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $header .= $message."\r\n\r\n"; $header .= "--".$uid."\r\n"; $header .= "Content-Type: application/pdf; name=\"".$filename."\"\r\n"; // use different content types here $header .= "Content-Transfer-Encoding: base64\r\n"; $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; $header .= $content."\r\n\r\n"; $header .= "--".$uid."--"; if (mail($mailto, $subject, "", $header)) { print("mail send ... OK"); // or use booleans here } else { print("mail send ... ERROR!"); } } $my_file = "Adol_Packet_v2.pdf"; $my_path = $_SERVER['DOCUMENT_ROOT']."/homepages/35/d350375870/htdocs/html/"; $my_name = "Company Name"; $my_mail = "atheneris@yahoo.com"; $my_replyto = "atheneris@yahoo.com"; $my_subject = "Welcome Email From Carlock & Associates"; $my_message = "Test Message"; mail_attachment($my_file, $my_path, $email_to, $my_mail, $my_name, $my_replyto, $my_subject, $my_message); Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/ Share on other sites More sharing options...
MadTechie Posted January 4, 2011 Share Posted January 4, 2011 So is the attachment being sent ? if so can you post the file that was received. Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154712 Share on other sites More sharing options...
atheneris Posted January 4, 2011 Author Share Posted January 4, 2011 The attachment is being sent. I'm getting an error when I try to open it that the file is either not a pdf or has been corrupted. Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154715 Share on other sites More sharing options...
MadTechie Posted January 4, 2011 Share Posted January 4, 2011 really need to see the file, without it, it makes it harder to find the problem, Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154729 Share on other sites More sharing options...
atheneris Posted January 4, 2011 Author Share Posted January 4, 2011 The PHP file or the sent email file? Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154737 Share on other sites More sharing options...
BlueSkyIS Posted January 4, 2011 Share Posted January 4, 2011 question: are you able to manually email the PDF and receive it without error? if so, you might want to try sending with this class. i use it to send pdf's all the time. http://www.phpguru.org/downloads/Rmail/Rmail%20for%20PHP/ Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154741 Share on other sites More sharing options...
atheneris Posted January 4, 2011 Author Share Posted January 4, 2011 I can manually send the PDF and receive it with no errors. It's also viewed (from the same server) on the company website. It's only when I send with PHP that there is a problem. Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154766 Share on other sites More sharing options...
atheneris Posted January 4, 2011 Author Share Posted January 4, 2011 BlueSkyIS, I tried that email function, but get an error. Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in homepages/35/htdocs/html/Rmail.php on line 23. I have not changed anything in the Rmail.php file. Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154782 Share on other sites More sharing options...
BlueSkyIS Posted January 4, 2011 Share Posted January 4, 2011 i suspect you are not using PHP 5, which is required by that class. Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1154804 Share on other sites More sharing options...
MadTechie Posted January 5, 2011 Share Posted January 5, 2011 The PHP file or the sent email file? The PDF that was received by the clients email, try adding this after $file = $path.$filename; add if(!file_exists($file)){ echo "File not Found"; return false; } Quote Link to comment https://forums.phpfreaks.com/topic/223380-sending-emails-with-attachments/#findComment-1155054 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.