当我们使用phpMailer发送带有动态内容的邮件时,如何在邮件正文中显示多个内联图像
我正在尝试用PHPMailer和图像发送HTML邮件。正文从包含所有信息的html文件加载或复制 所以,我如何从body中动态查找内联图像并对其应用AddEmbeddedImage()方法呢 PHP代码当我们使用phpMailer发送带有动态内容的邮件时,如何在邮件正文中显示多个内联图像,php,phpmailer,Php,Phpmailer,我正在尝试用PHPMailer和图像发送HTML邮件。正文从包含所有信息的html文件加载或复制 所以,我如何从body中动态查找内联图像并对其应用AddEmbeddedImage()方法呢 PHP代码 $mail->addReplyTo($from, $fromName); $mail->addBCC($from); $mail->isHTML(true); $mail->Subject = $subject; $mail->B
$mail->addReplyTo($from, $fromName);
$mail->addBCC($from);
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddEmbeddedImage($filepath, $filecid, $filename);
if(!$mail->send())
{
echo "Failed To Send Mail";
exit;
}
else
{
echo "Mail Has Been Sent";
exit;
}
要检索与每个cid关联的文件路径,我们需要一个与图像源相关的cid列表
<?php
// Create associative array for images
// Relation syntax: cid => filename
$images = array(
'file-1' => './src/file-1.png',
'file-2' => './src/file-2.png',
'file-3' => './src/file-3.png'
);
// Retrieve the body contents
$body = file_get_contents('src/body.html');
然后,验证找到的源是否实际上是PHPMailer cid。还要检查我们的$images
数组中是否存在找到的cid
// Is this source a PHPMailer cid?
if(preg_match('/^cid:/', $imageSRC)){
$fileCID = preg_replace('/^cid:/', '', $imageSRC);
// Does the cid exist in our associative array?
if(isset($images[$fileCID])){
// Update image source if we have it listed in array
$imageSRC = $images[$fileCID];
}
}
最后,重新生成图像标记并将其返回到实体,然后打印实体以在浏览器中预览输出
return '<img' . $beforeImageSRC . 'src="' . $imageSRC . '"' . $afterImageSRC . '>';
},
$body);
print $body;
?>
返回“”;
},
$body);
打印$body;
?>
要检索与每个cid关联的文件路径,我们需要一个与图像源相关的cid列表
<?php
// Create associative array for images
// Relation syntax: cid => filename
$images = array(
'file-1' => './src/file-1.png',
'file-2' => './src/file-2.png',
'file-3' => './src/file-3.png'
);
// Retrieve the body contents
$body = file_get_contents('src/body.html');
然后,验证找到的源是否实际上是PHPMailer cid。还要检查我们的$images
数组中是否存在找到的cid
// Is this source a PHPMailer cid?
if(preg_match('/^cid:/', $imageSRC)){
$fileCID = preg_replace('/^cid:/', '', $imageSRC);
// Does the cid exist in our associative array?
if(isset($images[$fileCID])){
// Update image source if we have it listed in array
$imageSRC = $images[$fileCID];
}
}
最后,重新生成图像标记并将其返回到实体,然后打印实体以在浏览器中预览输出
return '<img' . $beforeImageSRC . 'src="' . $imageSRC . '"' . $afterImageSRC . '>';
},
$body);
print $body;
?>
返回“”;
},
$body);
打印$body;
?>
在HTML文件的正文中,您是否有使用PHP Mailer cid的标记
或者更确切地说是
?是的,我有PHP Mailer cid…如果cid“my attach”始终与“my attach.jpg”或“my attach.png”匹配,并且文件都位于同一文件夹中,您可以轻松地遍历所有图像,这是您想要的吗?或者图像是否不总是以cid和文件位置命名?是的,通过这种方式,接收者可以查看收件箱中邮件内容的图像,但如何在发送者一侧的“已发送”框中显示图像。Ohhh在HTML文件的正文中为自己预览(如发送前一样),你有PHP Mailer cid的标记吗?是的,我有PHP Mailer cid…如果cid“my attach”总是与“my attach.jpg”或“my attach.png”匹配,并且文件都位于同一文件夹中,你可以很容易地遍历所有图像,这是你想要的吗?或者图像并非总是以cid和文件位置命名?是的,通过这种方式,接收者可以查看收件箱中邮件内容的图像,但如何在发送者端的“已发送邮件”框中显示图像。Ohhh为自己预览(如发送前)