phpmailer类 - 嵌入图像内联但不是来自文件源

时间:2014-01-23 18:32:52

标签: php phpmailer

我一直在使用PHP的内置mail()函数来发送带有内嵌图像的多部分邮件消息。我的客户通知我他们需要使用经过身份验证的SMTP来发送邮件,但他们坚持认为我们无法修改他们的服务器环境(因此我无法将PHP配置为使用SMTP)。

因此,我现在使用phpmailer类发送消息。一切正常,除嵌入图像外。我已阅读文档并了解嵌入图片,我只需致电:

$mail->AddEmbeddedImage('path/to/image.jpg', 'CID_identifier');

很好,对大多数情况都有意义。但是,我嵌入的图像不是服务器文件系统上的静态文件。它由我编写的脚本动态呈现,并通过使用输出黄油在电子邮件脚本中捕获:

ob_start();
require_once( '_gen_piechart.php' );
$base_64 = base64_encode( ob_get_contents() );
ob_end_clean();

虽然我知道它可能有用,但我不希望将图像写入文件,包含在出站邮件中,然后再unlink()

之前是否有人遇到此案例并提出嵌入图像数据的解决方案?我没有看到用于嵌入除文件系统之外的图像数据的phpmailer类方法。

1 个答案:

答案 0 :(得分:4)

AddStringEmbeddedImage就是您所需要的。它允许从包含图像二进制文件的字符串添加附件。

$mail->AddStringEmbeddedImage($fileContents, 'CID_identifier');