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.';
[email protected]'; // 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