pswitzeny Posted November 15, 2012 Share Posted November 15, 2012 Hello, Basically, here is the short version of what I am doing. Someone goes to a web forum, fill out some information, and the then a PDF (using domPDF) is generated based on the input, then the PDF is e-mail as an attachment. What I have works, but I strongly suspect that it doesn't follow best practices. I'm a new to PHP and e-mail stuff, so I need a little help as I want to do this properly. $empName = $empNickName.; $fileatt = "prints/".$fileName; // Path to the file $fileatt_type = "application/pdf"; // File Type $fileatt_name = $fileName; // Filename that will be used for the file as the attachment $email_from = $emailFrom; // Who the email is from $email_subject = $emailSubject; // The Subject of the email $email_message = nl2br($emailMessage)."<br /><br /><br /> <img src='http://sitedomain.co...go.jpg'><br />"; $email_to = $emailTo.'; contact@sitedomain.com'; // Who the email is to, plus CC me $headers = "From: ".$empName." <".$email_from.">"; $mailParams = "-f$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_message .= "\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, $mailParams); if($ok) { echo "The ".DispOrderType($orderType)." has been sent to the following address:<br>".$email_to."."; } else { echo "Sorry but the email could not be sent."; } Is this the best way to accomplish this? Thank you for your help in advance! -Paul Quote Link to comment https://forums.phpfreaks.com/topic/270739-help-with-e-mail-and-attachments/ Share on other sites More sharing options...
JD* Posted November 19, 2012 Share Posted November 19, 2012 It seems pretty good, but if you want to try something a little easier you can look into the phpmailer class, which allows for attachments, connection to smtp and a lot of other stuff. Check it out here: phpmailer Quote Link to comment https://forums.phpfreaks.com/topic/270739-help-with-e-mail-and-attachments/#findComment-1393490 Share on other sites More sharing options...
pswitzeny Posted November 19, 2012 Author Share Posted November 19, 2012 Thanks JD! I downloaded phpMailer and had a look - it looks really nice and simple. Thank you very much! Quote Link to comment https://forums.phpfreaks.com/topic/270739-help-with-e-mail-and-attachments/#findComment-1393531 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.