首页  >  文章  >  后端开发  >  如何使用 PHPMailer 在 HTML 电子邮件中嵌入图像?

如何使用 PHPMailer 在 HTML 电子邮件中嵌入图像?

Susan Sarandon
Susan Sarandon原创
2024-10-23 00:43:03616浏览

How to Embed Images in HTML Emails Using PHPMailer?

如何在 HTML 电子邮件中嵌入图像

发送嵌入图像的 HTML 电子邮件可能具有挑战性。许多解决方案依赖于外部资源,这可能会导致由于垃圾邮件过滤器或电子邮件客户端限制而导致图像加载失败。

要克服这些问题,请考虑使用可靠的库,例如 PHPMailer。让我们探索如何使用 PHPMailer 嵌入图像:

PHPMailer 的文档提供了有关显示嵌入(内联)图像的出色指导。建议使用 AddEmbeddedImage 函数:

<code class="php">$mail->AddEmbeddedImage(filename, cid, name);</code>

其中:

  • filename 是图像文件的路径
  • cid 是用于链接HTML 电子邮件中的图像
  • 名称是将要显示的文件名

例如:

<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=&quot;cid:my-attach&quot;> 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn