我正在尝试通过phpmailer向我的用户发送.png图像。当我使用<img>
标签时会显示图像,但我希望它显示为用户可以打开/保存/打印的真实附件(如this screenshot中所示)。我读到我可以使用$mail->addStringAttachment
。所以我尝试了这个,它确实发送了一封电子邮件的附件,但当我尝试打开它时,它说Windows Picture Viewer无法打开该文件。保存到我的电脑然后用Paint打开不起作用,它告诉我这不是一个有效的文件或东西。我认为这是因为它不是静态图像,而是由API生成的图像,即:
$qr = 'http://api.qrserver.com/v1/create-qr-code/?data=' . $guid . '&size=250x250';
所以this图片应作为附件发送。有谁知道我怎么能做这个工作?
答案 0 :(得分:1)
通过执行以下操作,我可以将其作为附件正常工作:
$qr = file_get_contents("https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=Example");
$mail->addStringAttachment($qr, "qr.png");
答案 1 :(得分:0)
它失败的原因是您尝试将网址附加为图片数据。您需要先从URL获取数据,然后将其附加到某些内容。
一次一步 - 确保在尝试通过电子邮件发送之前恢复有效图像 - 例如。
file_put_contents('qr.png', file_get_contents($qr));
并确保您获得保存在其中的有效图片。当您知道它正在工作时,请尝试通过
发送电子邮件$mail->addStringAttachment(file_get_contents($qr) 'qr.png');
虽然可能会有更多的错误检查!