mime заголовки в теле письма

mime заголовки в теле письма

Подскажите пожалуйста, как в письме отправить только картинку или звуковой файл. Делаю так:
$filename = "Natalie.jpg";
$f = fopen($filename,"rb");
$headers = "Mime-Version: 1.0\n";
$headers.= "\nContent-Type: image/jpeg; name=$filename";
$headers.= "\nContent-Transfer-Encoding: base64\n\n";
$message= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";
mail($email, "only image", $message, $headers);

приходит:
Content-Type: image/jpeg; name=Natalie.jpg
Content-Transfer-Encoding: base64
/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQE.......... и т.д.

Так и должно быть ? Просто, типа мой клиент не умеет отображать чисто картинки. Вопрос чисто теоретический, понятно что картику можно и приатачить и в виде хтмл отослать. а как же с музыкой - только атачить. Это только для этого придумали audio/ну пусть будет mp3 ?

И ещё вопрос - почему нижеописанный код нормально работает (в отличае от моего) :
............... $un = uniqid(time());
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";
mail("$to", "$subj", $zag, $head);

здесь, третьим параметром, где должно быть тело письма, идёт фарш из заголовков и "содержимого письма" или это нормальная практика при использовании мультипартов.
 

totamon

Новичок
просто типа никакой клиент не умеет отображать чисто картинки... а еще проигрывать аудиофайлы... а еще показывать фильмы...
главное что он умеет принимать и получать ПИСЬМА...
 

Фанат

oncle terrible
Команда форума
Вася Патриков
Вот меня всегда удивляло стремление некоторых людей заставить с помощью пхп некоторые вещи делать то, чего те не умеют.
Или просто сделать то, чего в природе не бывает.
Ты видел такие письма, в которых "только картинка"?
здесь, третьим параметром, где должно быть тело письма, идёт фарш из заголовков и "содержимого письма" или это нормальная практика при использовании мультипартов.
Нормальная практика - это RTFM
 
Нет не видел, просто хотел узнать, может кто другой видел. А вообще стремленья наши безвозмездны :) Ну так как нащёт фарша ? И вообще, я на самом деле облазил все ссылки с которых кидает местный фак, но фиг где найдёшь нормальное описание параметров ф-ии mail. Вот если вышеуказанный пример работает нормально, зачем тогда в mail() пятый параметр. На самом деле столько готовых примеров, а основ никто не обьясняет, все гуру думают что и так всё понятно. А ещё, вымораживает, что каждый второй при этом стремится впарить работу с библиотеками Mail и Mail_Mime, как будто бы это панацея. А мне нет необходимости и возможности использовать тысячестрочные библиотеки, подключать левые классы. Так что не надо ... это ... того. Обьяснение работы ф-ии mail() в пхп это тоже самое, что на java-форуме спросить в чём отличае path от classpath. Тоже напарят,а я сижу и думаю, он сам то понял что сказал про classpath или просто тупо знает как ей пользоваться или вообще за него это его IDE делает автоматом. Всё выговорился. Често долго искал/читал про почту. Даже рфк по смтп начал читать... и кончил :). ...почему в теле идут заголовки ? зачем тогда 5-ый параметр.
 

Фанат

oncle terrible
Команда форума
зачем 5-ый параметр, написано в документации.
чтобы понять, что писать в остальных параметрах, надо читать не "рфк по смтп " а rfc про MIME
тысячестрочные библиотеки я и сам не люблю.

а просто смотрю, как устроено письмо, которое мне нужно, и пишу код, который создает аналогичный текст
 
Сверху