如何在PHP中发送内嵌图像?

时间:2016-11-28 14:33:47

标签: php html html-email email-attachments

此代码将电子邮件发送到另一封电子邮件,但图片无法发送如何解决,请帮助...

$to = "receive email"; 
$from = "send email"; 
$subject = "welcome";
$message = "<img src='img.png'>";
$headers = "From: " . $from . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to,$subject,$message,$headers);
//end
echo "<script>alert('Your Message Has been Successfully Send...')</script>";
}

1 个答案:

答案 0 :(得分:0)

事先的一些信息: 内嵌附件

还有另一种方法可以添加附件。如果要制作带有图像并入桌面的HTML电子邮件,则需要附加图像,然后将标记链接到该图像。例如,如果您使用CID my-photo将图像添加为内联附件,则可以使用

在HTML电子邮件中访问它。

<img src="cid:my-photo" alt="my-photo" />

以下是一个例子:

首先是边界字符串的创建,以及正确编码和分块的图像

// Create a boundary string. It needs to be unique (not in the text) so ... // We are going to use the sha1 algorithm to generate a 40 character string: $sep = sha1(date('r', time()));

// Also now prepare our inline image - Also read, encode, split: $inline = chunk_split(base64_encode(file_get_contents('figure.gif')));

在电子邮件的HTML部分中,图像被引用(使用边界字符串):

<img src="cid:PHP-CID-{$sep}">

然后,您在内联附件的HTML部分下方创建电子邮件的另一部分,如下所示:

--PHP-related-{$sep} Content-Type: image/gif Content-Transfer-Encoding: base64 Content-ID: <PHP-CID-{$sep}> {$inline}

......就是这样! 有些图书馆可以帮您完成这项工作。 如 swiftmailer.org