html报表提交,通过邮箱发送html报表

前言

需求是发送邮件时, 可以将报表正文贴到邮件里, 可以正常复制选中报表内容.

目前的做法是简单粗暴的转成了一张图片, 这样效果显然是很糟糕的.

今天看到邮箱里可以预览Word, Excel, F12看了下, 他是在一个新的tab里打开,

里面嵌入了一个iframe, 然后调用了永中的dcs做在线预览. 那么报表是不是可以直接输出html到正文, 调用远程css呢.

a9cdd2f0302657ec4b9cbcd0663372e7.png

尝试一: 外置css, js

把报表html中的js, css都改成cdn的地址, 直接单页访问html, 显示正常.

但是插入邮箱正文, 接受方打开邮箱后无法引用css, 报错跨域. 应该是邮箱那边做了限制. 禁止邮件正文引用外部js, css.

尝试二: 内嵌css, js, 直接通过邮箱发送

将finereport.css复制出来, 直接内嵌到html中.

h1{color:red}

p{color:blue}

......

复制html内容, 粘贴到qq邮箱正文, 选择html编辑内容, 发送成功.

980588fe8b529b83f1abc98b198b9487.png

尝试三: 通过javax.mail发送html邮件

通过代码发送上述相同的html邮件, 邮件发送成功, 但是接受方收到的邮件是空的, 只显示了一个<.>

0c13618efdf675c2c8723813d837b4b0.png

试了下简单的html, 可以正常发送接受, 收到的也是富文本格式的.

那么猜测是邮箱服务器限制了html的大小, 毕竟直接简单粗暴的把一个报表转成html, 内容会比较庞大.

我们案例中用的html体积大概350KB, 可能是因为这个导致通过api发送邮件被bang掉了.

尝试四: 精简html大小

简化了下模板, 只留了两个单元格. 简化了下80多KB的finereport.css, 删掉了控件, 菜单, 图表等一堆css.

得到一个30KB的html, 再次通过javax.mail发送邮件, 这次正常了. 应该就是大小影响了.

268425934598e9987b504ac3fbe79b69.png

Linux配置邮箱发送(MUTT&sol;MSMTPQ)

配置邮箱发送 http://www.ilanni.com/?p=10589

java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例

研究了近一天的时间,通过查阅相关资料,终于对java发送邮件的机制,原理有了一点点的理解,希望能够帮到大家! 1.首先要向你的项目里导入1个jar包:mail-1.4.4.jar即可(实现qq和163 ...

spring 实现邮箱发送

使用spring mail 实现的邮箱发送功能,包括附件的发送(附件发送要保证附件存在的路径是真实),使用maven集成jar包,通过spring mvc 实现前后台的调用,发送方使用的是163邮箱, ...

java邮箱发送

一.为何要使用邮箱发送 相信大家在日常工作生活中少不了和邮件打交道,比如我们会用邮件进行信息交流,向上级汇报日常工作:邮件发送的原理是什么?邮件是如何发送的呢?本系列教程将会讲解邮件如何申请可用jav ...

JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...

qq邮箱发送,mail from address must be same as authorization user

由于邮箱发送的邮箱账号更换,所以重新测试.结果一直出错,要不就是请求超时,要不就是未授权. 用smtp 开始的时候,端口使用495,结果是请求超时. 后来改成25,结果是未授权. 再后来听人说,有一个 ...

Java邮箱发送——企业版

企业版邮箱发送工具类 import java.security.Security; import java.util.Properties; import javax.mail.Authenticat ...

SpringBoot中快速实现邮箱发送

前言 在许多企业级项目中,需要用到邮件发送的功能,如: 注册用户时需要邮箱发送验证 用户生日时发送邮件通知祝贺 发送邮件给用户等 创建工程导入依赖 < ...

Spring Boot 整合Spring Data以及rabbitmq,thymeleaf,向qq邮箱发送信息

首先得将自己的qq开启qq邮箱的POP3/SMTP服务 说明: p,e为路由key. 用户系统完成登录的时候,将{手机号-时间-IP}保存到队列Phone-queue中,msg-sys系统获得消息打印 ...

随机推荐

将光标放到input内容的最后

在使用setSelectionRange方法的时候一定要加setTimeout,否则无效,代码 var num = $('#input_phone').val().length; setTimeout ...

MYSQL里使用正则的速度快还是使用like模糊查询语句快?

LIKE 会略快一些.但显然LIKE的功能无法与REGEXP相比. 另外是索引的问题,LIKE有可能使用索引但REGEXP则很难.

利用dns解析来实现网站的负载均衡

当网站的访问量大了就会考虑负载均衡,这也是每一个架构师的基本功了,其基本地位就相当于相声里的说学逗唱,活好不好就看这个了 :) 传统的负载均衡思路是单点的,不管你是硬件的还是软件的基本都是这样的原理 ...

Apollo学习

Apollo的配置 参考: Apollo 配置详细步骤(Windows环境) MQTT再学习 -- 搭建MQTT服务器及测试 分布式部署指南 Java客户端使用指南

Nero8刻录引导系统光盘镜像图文教程

刻录可引导的Windows系统光盘一直是电脑使用者较为需要的,今天,倡萌抽空写了这篇图文教程,希望对于菜鸟级的朋友有所帮助,大虾请飘过.本教程以最为强大的刻录软件Nero 8做为工具(其他版本的Ner ...

使用MagicOnion实现gRPC

1.什么是gRPC 官方文档:https://grpc.io/docs/guides/index.html 2.什么是MagicOnion MagicOnion开源地址:https://github. ...

linux 安装python 和pip

下载文件 python官网:https://www.python.org/downloads/ 百度网盘http://pan.baidu.com/s/1mixGB12     密码   9nzu [r ...

mybatis的0和null

这样判断会把0也当做null的 另外写一个条件判断0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值