I'm using mail() of php for sending mail from my server. I want to send a jpg as attachment but I always receive a 0 lenght file. I'm stuck on it.
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);
$eol = PHP_EOL;
// Basic headers
$header = "From: ".$from_name." <".$from_mail.">".$eol;
$header .= "Reply-To: ".$replyto.$eol;
$header .= "MIME-Version: 1.0".$eol;
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"";
// Put everything else in $message
$message = "--".$uid.$eol;
$message .= "Content-Type: text/html; charset=ISO-8859-1".$eol;
$message .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$message .= $message.$eol;
$message .= "--".$uid."--".$eol;
$message .= "Content-Type: image/jpg; name=\"".$filename."\"".$eol;
$message .= "Content-Transfer-Encoding: base64".$eol;
$message .= "Content-Disposition: attachment; file=\"".$filename."\"".$eol;
$message .= $content.$eol;
$message .= "--".$uid."--".$eol;
if (mail($mailto, $subject, $message, $header))
{
echo "mail_success";
}
else
{
echo "mail_error";
}