Я пытаюсь включить изображение в свое сообщение в 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>
Добавить на <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"/>
Добавьте этот тег, где вы хотите, чтобы изображение появилось в теле
$mail->Body = "... <img src='cid:logo.png> ..";
$mail->AddEmbeddedImage($_SERVER['DOCUMENT_ROOT']."[path_to_image] logo.png",'logo.png','logo.png');
Работает в Outlook и всех других почтовых клиентских программах
Причина, по которой это не работает, заключается в том, что вы не присвоили строку, содержащую 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>";