【问题标题】:Send mail with chart发送带有图表的邮件
【发布时间】:2015-03-31 14:09:37
【问题描述】:

我想在 php 的电子邮件正文中发送带有图表的电子邮件,但我没有收到。

我已经测试了一些方法,例如图像图表 google(已弃用)、google charts、jqgraph 但没有成功。

【问题讨论】:

    标签: php email charts pie-chart


    【解决方案1】:

    一种解决方案是创建在服务器上生成的静态图像并将该图像发送到您的电子邮件中。 javascript 图表库ZingChart 提供了一个特殊的构建来与无头服务器端浏览器 PhantomJS 一起使用,允许您创建图表的 png 图像。 http://www.zingchart.com/docs/features/phantomjs/

    我是 ZingChart 开发团队的一员,如果您有任何问题,请告诉我。

    【讨论】:

      【解决方案2】:

      最简单的方法可能是使用静态图像图表生成器。网上有许多不同的服务。为此,我创建了 QuickChart,这是一个用于 Chart.js 图表的开源渲染服务。

      既然你标记了你的帖子pie-chart,让我们做一个Chart.js饼图配置(见Chart.js pie chart reference):

      {
        "type": "pie",
        "data": {
          "datasets": [
            {
              "data": [84, 28] 
            } 
          ],
          "labels": ["Data1", "Data2"] 
        } 
      }
      

      您可以将此配置放入 PHP 变量中:

      $chartConfig = '{
        "type": "pie",
        "data": {
          "datasets": [
            {
              "data": [84, 28] 
            } 
          ],
          "labels": ["Data1", "Data2"] 
        } 
      }';
      

      https://quickchart.io/chart 端点进行 URL 编码:

      $chartUrl = 'https://quickchart.io/chart?c=' . urlencode($chartConfig);
      

      然后,使用标准 HTML <img> 标记将该 URL 直接嵌入到电子邮件中:

      $email_body = "Please see my chart: <img src=\"$chartUrl\" />";
      

      它显示下面的图像!

      替代方法包括:

      • wkhtmltoimage,用于渲染页面的命令行实用程序
      • Puppeteer 等无头渲染器(PhantomJS 也可以,但不再受支持)
      • 自行托管您自己的 QuickChart 实例

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-01
        • 2019-08-04
        • 2016-04-29
        • 2018-05-19
        • 1970-01-01
        • 2011-09-10
        相关资源
        最近更新 更多