Вася Патриков
Новичок
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);
здесь, третьим параметром, где должно быть тело письма, идёт фарш из заголовков и "содержимого письма" или это нормальная практика при использовании мультипартов.
Подскажите пожалуйста, как в письме отправить только картинку или звуковой файл. Делаю так:
$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);
здесь, третьим параметром, где должно быть тело письма, идёт фарш из заголовков и "содержимого письма" или это нормальная практика при использовании мультипартов.