Как отправить через PHP письмо с картинкой внутри html? Отправляю html письмо в PHP скрипте. Внутри картинка с прямым адресом. В гугл почте все работает, картинка корректно показывается. В яндекс почте не показывается. Пробовал через Content-id, такая же история. В гугле картинка прикрепляется, в яндексе не показывается. Поделитесь секретом верстки html-писем Решил проблему. Ссылка нужна была в punycode.
Убедитесь, что путь к изображению указан правильно в переменной $file, и что оно доступно для чтения. Верстку HTML-письма можно менять по вашему усмотрению, важно правильно связать изображение с контентом через Content-ID.
Для отправки письма с картинкой внутри HTML через PHP вы можете использовать следующий код:
$to = 'recipient@example.com';$subject = 'Тестовое письмо с картинкой';
$message = '
<html>
<head>
<title>Тестовое письмо</title>
</head>
<body>
<h1>Привет!</h1>
<p>Пожалуйста, посмотрите картинку ниже:</p>
<img src="cid:myimage" />
</body>
</html>
';
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers = "From: sender@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/related;\r\n";
$headers .= " boundary=\"{$mime_boundary}\"\r\n";
$message = "--{$mime_boundary}\r\n";
$message .= "Content-Type: text/html; charset=\"UTF-8\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$message .= $message."\r\n";
$file = 'path/to/image.jpg';
$content = file_get_contents($file);
$base64_content = base64_encode($content);
$message .= "--{$mime_boundary}\r\n";
$message .= "Content-Type: image/jpeg;\r\n";
$message .= " name=\"image.jpg\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-ID: <myimage>\n";
$message .= "Content-Disposition: inline;\r\n";
$message .= " filename=\"image.jpg\"\r\n\r\n";
$message .= $base64_content."\r\n";
$message .= "--{$mime_boundary}--";
mail($to, $subject, $message, $headers);
Убедитесь, что путь к изображению указан правильно в переменной $file, и что оно доступно для чтения. Верстку HTML-письма можно менять по вашему усмотрению, важно правильно связать изображение с контентом через Content-ID.