一尘不染

PHP将图像附加到电子邮件

php

有没有办法将图像附加到用PHP创建的html格式的电子邮件中?

我们需要确保在发送给可能在阅读电子邮件时无法访问Internet的客户的电子邮件上带有公司徽标(显然,他们可以下载文件)。


阅读 273

收藏
2020-05-29

共1个答案

一尘不染

尝试使用PEARMail_Mime软件包,该软件包可以为您嵌入图像。

您需要使用addHTMLImage()方法并传递内容ID(cid),这是一个唯一的文本字符串,您还将在img的src属性中将其用作cid:URL。例如:

include('Mail.php');
include "Mail/mime.php";


$crlf = "\r\n";
$hdrs = array( 
        'From' => 'foo@bar.org', 
        'Subject' => 'Mail_mime test message' 
        );

$mime = new Mail_mime($crlf);

//attach our image with a unique content id
$cid="mycidstring";
$mime->addHTMLImage("/path/to/myimage.gif", "image/gif", "", true, $cid);

//now we can use the content id in our message
$html = '<html><body><img src="cid:'.$cid.'"></body></html>';
$text = 'Plain text version of email';

$mime->setTXTBody($text);
$mime->setHTMLBody($html);

$body = $mime->get();
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('person@somewhere.org', $hdrs, $body);
2020-05-29