I send the picture to the mail using PHP, the incoming picture does not open:

function send_mail($mail_to, $thema, $html, $path) { if ($path) { $fp = fopen($path, "rb"); if (!$fp) { print "Cannot open file"; exit(); } $file = fread($fp, filesize($path)); fclose($fp); } $name = "foto.jpg"; // в этой переменной надо сформировать имя файла (без всякого пути) $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём $boundary = "--" . md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных. $headers = "MIME-Version: 1.0;$EOL"; $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL"; $headers .= "From: zakaz@energy-trucks.ru\n"; $headers .= "Reply-To: zakaz@energy-trucks.ru\n"; $headers .= "X-Priority: 1\n"; $multipart = "--$boundary$EOL"; $multipart .= "Content-Type: text/html; charset=utf-8$EOL"; $multipart .= $EOL; // раздел между заголовками и телом html-части $multipart .= $html; $multipart .= "$EOL--$boundary$EOL"; $multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL"; $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL"; $multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла $multipart .= $file; $multipart .= "$EOL--$boundary--$EOL"; if (!mail($mail_to, $thema, $multipart, $headers)) { //// если письмо не отправлено echo "Повторите пожалуйста отправку сообщения, не сработало.."; } } 

1 answer 1

Do not confuse MIMEs, this is a bad practice. Your file is image / jpg. Still need to get the picture itself, base64 encode, split.

Here is a working example . In general, I advise PHP Mailer .