【问题标题】:Send email with PHPMailer - embed image in body使用 PHPMailer 发送电子邮件 - 在正文中嵌入图像
【发布时间】:2011-04-12 02:39:48
【问题描述】:

我正在尝试使用 PHPMailer 发送带有图像的 HTML 邮件。 正文是从一个包含所有信息的 html 文件加载的。

发送邮件时,图像不会出现在正文中,尽管我什至将图像也作为附件发送。

HTML <img> 标记指向与地点相同的地点。

PHP:

$mail->AddAttachment('img/2u_cs_mini.jpg');

如何使 html 指向附件,以便将图像加载到正文中。

查看 PHPMailer 附带的示例,我没有注意到任何区别,并且在他们的情况下,图像确实出现了。

【问题讨论】:

    标签: php html image email phpmailer


    【解决方案1】:

    我找到了答案:

    $mail->AddEmbeddedImage('img/2u_cs_mini.jpg', 'logo_2u');
    

    然后在<img> 标签上放src='cid:logo_2u'

    【讨论】:

    • 这完全有帮助!出于好奇,你在哪里找到这个?请解释一下。
    • 为什么在 cid 末尾有反斜杠?
    • 我很久以前就这样做了,我不记得是否有任何原因。我不认为有。很可能只是一些垃圾。
    • 我相信反斜杠是从以前的代码中错误地留下的
    • 对于需要非专家解释的人:您需要告诉渲染引擎从哪里获取图像以及使用什么协议(要使用附加的图像,您使用 de cid“协议, Content-ID)。然后您使用 AddEmbeddedImage 为附件提供一个 id,以便您可以引用它(请注意,它可以是声音和其他类型的文件)。
    【解决方案2】:

    根据PHPMailer Manual,完整答案是:

    $mail->AddEmbeddedImage(filename, cid, name);
    //Example
    $mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg '); 
    

    用例:

    $mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");
    $mail->Body = 'Embedded Image: <img alt="PHPMailer" src="cid:my-attach"> Here is an image!';
    

    如果您想显示带有远程 URL 的图像:

    $mail->addStringAttachment(file_get_contents("url"), "filename");
    

    【讨论】:

      猜你喜欢
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      相关资源
      最近更新 更多