0
我一直在使用PHP的内置mail()
函数发送带内嵌图像的多部分邮件消息。我的客户通知我他们需要使用通过身份验证的SMTP发送邮件,但他们坚持我们无法修改其服务器环境(因此我无法将PHP配置为使用SMTP)。phpmailer类 - 内嵌嵌入图像但不是来自文件源
因此,我现在使用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类方法。
漂亮!我找到了'addStringAttachment'函数,但不知道这个函数。 –
对于任何可能存在此问题的人来说都是一个重要提示:'addStringEmbeddedImage()'和'addStringAttachment()'需要一个原始字符串* NOT *已经base64_encoded。 –