【问题标题】:How to display qrcode image in email? [closed]如何在电子邮件中显示二维码图像? [关闭]
【发布时间】:2021-05-28 11:43:02
【问题描述】:

我正在使用 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 示例。
  • 我已经得到了我的问题的答案。损坏的图像意味着图像未显示。数据 URI 正在返回我在问题中所写的 base64 编码文本。
  • 我不知道为什么这里的人喜欢经常关闭问题。

标签: php html symfony4 qr-code


【解决方案1】:

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

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

我强烈建议您将二维码上传到某处,然后将其链接为普通图像。

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

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

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

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

【讨论】:

    【解决方案2】:
    <img src = {{ $return_from_result_getDataUri }} >
    

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

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

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

    方法一: 正如 Andrea 所说,将文件保存在某处

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

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

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

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

    这很好解释here

    【讨论】:

    • 谢谢我按照方法1
    猜你喜欢
    • 1970-01-01
    • 2011-04-03
    • 2011-09-06
    • 1970-01-01
    • 2020-08-20
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    相关资源
    最近更新 更多