Я пытаюсь отправить изображение на свой сервер в виде вложения. Для выполнения этой задачи я использовал следующий скрипт PHP, который захватывает JPG (называемый «php.jpg»), расположенный в каталоге с именем «скриншоты», с моего сервера и отправляет его в виде вложения.
<?php
$path = "screenshots/php.jpg";
$fp = fopen($path, 'r');
do //we loop until there is no data left
{
$data = fread($fp, 8192);
if (strlen($data) == 0) break;
$content .= $data;
} while (true);
$content_encode = chunk_split(base64_encode($content));
$mime_boundary = "<<<--==+X[".md5(time())."]";
$headers .= "From: Automatic <an.e.mail@domain.net>\r\n";
$headers .= "To: SomeName <me@gmail.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;\r\n";
$headers .= " boundary=\"".$mime_boundary."\"";
$message .= "This is a multi-part message in MIME format.\r\n";
$message .= "\r\n";
$message .= "--".$mime_boundary."\r\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "\r\n";
$message .= "Email content and what not: \r\n";
$message .= "This is the file you asked for! \r\n";
$message .= "--".$mime_boundary."\r\n";
$message .= "Content-Type: image/jpeg;\r\n";
$message .= " name=\"php.jpg\"\r\n";
$message .= "Content-Transfer-Encoding: quoted-printable\r\n";
$message .= "Content-Disposition: attachment;\r\n";
$message .= " filename=\"php.jpg\"\r\n";
$message .= "\r\n";
$message .= $content_encode;
$message .= "\r\n";
$message .= "--".$mime_boundary."\r\n";
$ok = mail("me@gmail.com", "file by email", $message, $headers);
В целом, скрипт работает. Я получаю электронное письмо в своем почтовом ящике, содержащее текст сообщения, указанный выше, и вложение в формате JPG. Переполнение стека не позволит мне опубликовать фотографию, потому что я новичок, но скриншот сообщения доступен здесь: http://i48.tinypic.com/xfuee0.png
Моя проблема возникает, когда я пытаюсь просмотреть вложение. При нажатии на вложение просто открывается новое окно браузера и отображается значок отсутствующего изображения.
Видите ли вы какие-либо проблемы с моим скриптом, которые могут помешать появлению изображения?
Любая информация была бы отличной. Спасибо!