微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在电子邮件中显示二维码图像?

如何解决如何在电子邮件中显示二维码图像?

我正在使用 endroid/qr-code https://github.com/endroid/qr-code生成 QrCode。 现在我也需要将此二维码发送到我的电子邮件中。

我使用了以下代码

    $result = Builder::create()
        ->writer(new PngWriter())
        ->writerOptions([])
        ->data("This ist test page.")
        ->encoding(new Encoding('UTF-8'))
        ->size(200)
        ->margin(10)
        ->roundBlockSizeMode(new RoundBlockSizeModeMargin())
        ->logoPath($webPath)
        ->labelText('SCAN')
        ->build();

    return $result->getDataUri();

在我的电子邮件树枝页面

<img src = {{ $return_from_result_getDataUri }} >

我从上面那条线弄坏了 img。

当我使用 {{ $return_from_result_getDataUri }} 时,这会显示 data:image/png;base64..... 文本。

有人能帮我吗。

谢谢。

解决方法

对在电子邮件中嵌入带有数据 URI 的图像的支持仍然不是最佳的,而且许多电子邮件客户端根本不支持它。

请参阅 this analysis from Campaign Monitor 显示许多客户端未呈现数据 URI 图像。

强烈建议您将二维码上传到某个地方,然后将其链接为普通图片。

如果您的服务托管在 AWS 上,则可以使用 S3。

否则您可以使用免费服务,但我对它们没有任何经验。这是我找到的第一个结果:https://apidocs.imgur.com/

PS:只是补充一点,您的代码中可能还缺少一些双引号。

<img src="{{ $return_from_result_getDataUri }}" >
,
<img src = {{ $return_from_result_getDataUri }} >

在PHP中,我们将上面写成如下

<img src="<?php echo $return_from_result_getDataUri; ?>" >

但这可能不适用于所有电子邮件客户端。有两种方法可以解决这个问题。

方法一: 正如安德里亚提到的,将文件保存在某处

 $result->saveToFile(`__DIR__`.'/qrcode.png');

然后使用 html img 标签中的 url。

<img src="<?php echo $fullImageUrl; ?>">

方法二: 将图像作为附件嵌入并使用 cid(content id) 引用它

这很好解释here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。