Как отправить через PHP письмо с картинкой внутри html? Отправляю html письмо в PHP скрипте. Внутри картинка с прямым адресом.
В гугл почте все работает, картинка корректно показывается.
В яндекс почте не показывается.
Пробовал через Content-id, такая же история. В гугле картинка прикрепляется, в яндексе не показывается.
Поделитесь секретом верстки html-писем
Решил проблему. Ссылка нужна была в punycode.

21 Авг 2019 в 06:29
201 +1
0
Ответы
1

Для отправки письма с картинкой внутри 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.

20 Апр в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир