Как встроить изображение в phpmailer — не могу, почему?

Я пытаюсь включить изображение в свое сообщение в phpmailer. Ниже приведен мой код: письма отправляются, но без внедренного изображения, вместо этого они, похоже, прикреплены к электронному письму.
Не уверены, что не так с моим кодом, пожалуйста, помогите?

<!doctype html>
<html>
<head>
<meta charset="UTF-8">

<?php
require_once('class.phpmailer.php');
require_once('class.smtp.php');
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->From = "xxxxx";
$mail->FromName = "Jan Nowak";
$mail->AddReplyTo('xxxx');

$mail->Host = "xxxxxx";
$mail->Mailer = "smtp";
$mail->SMTPAuth = true;
$mail->Username = "xxxxx";
$mail->Password = "xxxxxx";
$mail->Port = xxx;  usługi poczty
$mail->Subject = "temat";
$mail->Body = 'treść maila';

$mail->IsHTML(true);
$mail->AddEmbeddedImage('images/Kartka.png', 'Kartka');
$mail->Body = "<h1>Test 1 of PHPMailer html</h1><p>This is a test</p>";
"<p>This is a test picture: <img src=\"images/Kartka.png\" /></p>";


//$mail->addAttachment ('images/Kartka.jpg');
$mail->AddAddress ("xxxxx");

if($mail->Send())
{
echo 'E-mail został wysłany';
}
else
{
echo 'E-mail nie mógł zostać wysłany';
}
?>

</html>
</head>

5

Решение

Добавить на <img> тег положить src='cid:Kartka'

$mail->AddEmbeddedImage('images/Kartka.png', 'Kartka');
$mail->Body = "<h1>Test 1 of PHPMailer html</h1><p>This is a test</p>";
"<p>This is a test picture: <img src=\"cid:Kartka\" /></p>";

Почему вы так много используете? Вы также можете сделать это так:

<img src="cid:Kartka"/>
4

Другие решения

Добавьте этот тег, где вы хотите, чтобы изображение появилось в теле

$mail->Body = "... <img src='cid:logo.png> ..";

$mail->AddEmbeddedImage($_SERVER['DOCUMENT_ROOT']."[path_to_image] logo.png",'logo.png','logo.png');

Работает в Outlook и всех других почтовых клиентских программах

2

Причина, по которой это не работает, заключается в том, что вы не присвоили строку, содержащую html для изображения, переменной, которая используется в теле письма. Проблема с точкой с запятой во второй строке, а затем с тем, как вы ссылаетесь на изображение в строке в третьей строке.

$mail->AddEmbeddedImage('images/Kartka.png', 'Kartka');
$mail->Body = "<h1>Test 1 of PHPMailer html</h1><p>This is a test</p>";
"<p>This is a test picture: <img src=\"images/Kartka.png\" /></p>";

Должно быть

$mail->AddEmbeddedImage('images/Kartka.png', 'Kartka');
$mail->Body = "<h1>Test 1 of PHPMailer html</h1><p>This is a test</p>".
"<p>This is a test picture: <img src=\"cid:Kartka\" /></p>";

Или в качестве альтернативы

$mail->AddEmbeddedImage('images/Kartka.png', 'Kartka');
$mail->Body = "<h1>Test 1 of PHPMailer html</h1><p>This is a test</p><p>This is a test picture: <img src=\"cid:Kartka\" /></p>";
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector