【问题标题】:How can I embed an image into an email acceptable to Outlook如何将图像嵌入 Outlook 可接受的电子邮件中
【发布时间】:2021-12-23 00:18:39
【问题描述】:

我有一些工作 php 代码可以将图像嵌入到电子邮件中,如下所示:

<?php

// Initialise
$mailTo =  "john@auser.com";    
$mailSubject = "Image Test";

// (Construct HTML header
$mailHead = implode("\r\n", [
  "MIME-Version: 1.0",
  "Content-type: text/html; charset=utf-8",
  "From: noreply@asite.com"
]);

// Build email body - the image is directly embedded using Base64 Encode
$path = 'test.jpg';
$img = file_get_contents($path);
$imgdata = base64_encode($img);
$mailBody = "<p>Here is an image.</p>";
$mailBody = $mailBody . "<img src='data:image/jpg;base64," . $imgdata . "'/><br>";

// Send email
echo $mailBody;
echo mail($mailTo, $mailSubject, $mailBody, $mailHead)
  ? "OK" : "ERROR" ;

?>

当您运行此代码作为确认时,它会显示整个电子邮件,包括图像。 我可以使用默认的电子邮件应用程序在我的手机上收到此 OK,但在 Outlook 中它无法通过。我得到一个小方块来显示图像存在,但右键单击并选择下载图片什么都没有显示。

任何人都可以建议修复或推荐适用于 Outlook 的不同方法吗? 非常感谢

【问题讨论】:

    标签: php image email outlook


    【解决方案1】:

    大多数电子邮件客户端不支持 HTML 中的 Base 64 图像。 (见https://www.caniemail.com/features/image-base64/

    但是,您可以将图像作为 CID 嵌入式附件添加到您的电子邮件中,然后在 HTML 电子邮件中链接到该附件。

    这是另一个 Stack Overflow 线程回答这个问题:How to embed images in html email

    【讨论】:

    • 您发送的链接建议使用PHPMailer。这可行,但我应该警告其他用户,设置起来并不容易。您首先需要一个 SCP 客户端(我使用 WinSCP)在您的站点上下载并解压缩 PHPMailer。然后看例如help.dreamhost.com/hc/en-us/articles/…
    猜你喜欢
    • 2022-09-25
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2011-10-30
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多