发送嵌入图像的 HTML 电子邮件可能具有挑战性。许多解决方案依赖于外部资源,这可能会导致由于垃圾邮件过滤器或电子邮件客户端限制而导致图像加载失败。
要克服这些问题,请考虑使用可靠的库,例如 PHPMailer。让我们探索如何使用 PHPMailer 嵌入图像:
PHPMailer 的文档提供了有关显示嵌入(内联)图像的出色指导。建议使用 AddEmbeddedImage 函数:
<code class="php">$mail->AddEmbeddedImage(filename, cid, name);</code>
其中:
例如:
<code class="php">$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg ');</code>
要将嵌入图像合并到 HTML 电子邮件中,插入一个 img 标签,并将 src 属性设置为 cid 值:
<code class="html"><img src="cid:my-photo" alt="my-photo" /></code>
这是一个完整的代码示例:
<code class="php">require_once('../class.phpmailer.php'); $mail = new PHPMailer(true); $mail->IsSMTP(); try { $mail->Host = "mail.yourdomain.com"; $mail->Port = 25; $mail->SetFrom('from@example.com', 'From Name'); $mail->AddAddress('to@example.com', 'To Name'); $mail->Subject = 'PHPMailer Test'; $mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png"); $mail->Body = 'Your <b>HTML</b> with an embedded Image: <img src="cid:my-attach"> Here is an image!'; $mail->Send(); } catch (phpmailerException $e) { echo $e->errorMessage(); } catch (Exception $e) { echo $e->getMessage(); }</code>
此代码构造带有嵌入图像的 HTML 电子邮件并发送它使用 SMTP。您可以修改此示例以其他方式发送电子邮件,或者使用 PHPMailer 提供的不同方法,例如 CreateBody 来检索邮件内容并手动发送。
以上是如何使用 PHPMailer 在 HTML 电子邮件中嵌入图像?的详细内容。更多信息请关注PHP中文网其他相关文章!