用JAVA实现将网页以邮件形式发出去

T_初晴 北京微芯区块链与边缘计算研究院 高级软件工程师  2015-09-01 08:58:47
这是我的网页,用的是JSP+EXT+FusionCharts+FCF_MSColumn2D+DWR 现在需要一个功能,把自己写的网页定时用邮件形式完整的推送出去。求教大神帮忙指点有什么工具可以实现。
...全文
204 1 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
forDream_ 2015-09-01
可以尝试采用mime格式,将网页源文件(即HTML)发送出去,该方法适用于页面无javascript。 如果有的话,且页面通过javascript存在交互,似乎没有比较好的解决方案,只能把url发给对方,让对方在浏览器中自行打开。 如果没有交互性,javascript等仅仅用于一些渲染操作。可以考虑以附件形式发送,甚至考虑采用一些Web测试框架,对页面先进行渲染,然后以图片形式发送给对方。
回复
兔子托尼啊 2015-09-01
整个网页还是网页截图啊。整个网页估计标签会被过滤掉。
回复
迷林 2015-09-01
T_初晴 2015-09-01
引用 8 楼 tigeryu 的回复:
/** * 设置邮件正文外部链接 URL, 信体中将包含链接所指向的内容(包括链接所引用的图片文件) *
那个不是图片 是一个FusionCharts(js框架)用FCF_MSColumn2D.swf文件生成的 相当于flash那种。 现在就把这个当做是图片发送出去。但实际上不是图片
回复
wuyue-tiger 2015-09-01
/** * 设置邮件正文外部链接 URL, 信体中将包含链接所指向的内容(包括链接所引用的图片文件) * * @param urlEmbeddedAttachment * 邮件正文外部链接 URL * @throws MessagingException * @throws MalformedURLException * @throws ParserException * @throws IOException */ public void addURLEmbeddedAttachment(String urlEmbeddedAttachment) throws MessagingException, MalformedURLException, ParserException, IOException { URL url = new URL(urlEmbeddedAttachment); URLConnection con = url.openConnection(); Parser parser = new Parser(con); parser.setEncoding("GBK"); NodeList htmlNodeList = new NodeList(); NodeList linkNodeList = new NodeList(); NodeList imageNodeList = new NodeList(); NodeList backgroundNodeList = new NodeList(); NodeIterator ni = parser.elements(); while (ni.hasMoreNodes()) { Node node = ni.nextNode(); node.collectInto(linkNodeList, new TagNameFilter("LINK")); node.collectInto(imageNodeList, new TagNameFilter("IMG")); node.collectInto(htmlNodeList, new TagNameFilter("HTML")); node.collectInto(backgroundNodeList, new HasAttributeFilter( "BACKGROUND")); } for (int i = 0; i < linkNodeList.size(); i++) { Tag tag = (Tag) linkNodeList.elementAt(i); String linkUrl = tag.getPage().getAbsoluteURL( tag.getAttribute("href")); tag.setAttribute("href", "cid:LNK" + i); MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.setDataHandler(new DataHandler(new URL(linkUrl))); mimeBodyPart.setHeader("Content-ID", "LNK" + i); mimeMultipart.addBodyPart(mimeBodyPart); } for (int i = 0; i < imageNodeList.size(); i++) { ImageTag tag = (ImageTag) imageNodeList.elementAt(i); String imageUrl = tag.getImageURL(); tag.setImageURL("cid:IMG" + i); MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.setDataHandler(new DataHandler(new URL(imageUrl))); mimeBodyPart.setHeader("Content-ID", "IMG" + i); mimeMultipart.addBodyPart(mimeBodyPart); } for (int i = 0; i < backgroundNodeList.size(); i++) { Tag tag = (Tag) backgroundNodeList.elementAt(i); String imageUrl = tag.getPage().getAbsoluteURL( tag.getAttribute("background")); tag.setAttribute("background", "cid:BGIMG" + i); MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.setDataHandler(new DataHandler(new URL(imageUrl))); mimeBodyPart.setHeader("Content-ID", "BGIMG" + i); mimeMultipart.addBodyPart(mimeBodyPart); } MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.setDataHandler(new DataHandler(htmlNodeList.elementAt(0) .toHtml(), "text/html;charset=GBK")); mimeMultipart.addBodyPart(mimeBodyPart); } 参考一下,使用到了老版的htmlparser。 代码功能为邮件增加一个附件,可以把html界面及相关的连接的url都抓下来并内嵌到当前页,并作为邮件体发送,可以通过邮件直接打开
回复
T_初晴 2015-09-01
这个怎么给分呢?第一次发这个不大会
回复
迷林 2015-09-01
引用 5 楼 y515789 的回复:
[quote=引用 1 楼 wi496481 的回复:] 楼主可以去这看看
这个好像只能发送静态页面,静态的也就罢了,关键是图表怎么弄呢? 我听他们说用jfromchar 好像可以,但是网上没找到相关资料。[/quote] jfromchar 这个东西就知道点点 现在都忘光光了,表示没得其他办法咯,不过我还是给你找找看,没得好的方案那就没得办法,就需要楼主自己去摸索了
回复
T_初晴 2015-09-01
引用 1 楼 wi496481 的回复:
楼主可以去这看看
这个好像只能发送静态页面,静态的也就罢了,关键是图表怎么弄呢? 我听他们说用jfromchar 好像可以,但是网上没找到相关资料。
回复
T_初晴 2015-09-01
你们看那个10086话费账单 邮件那种,用java怎么实现的,有图表,有数据。。。。。。就是发个邮件 然后邮件里面有图表 数据等等,用什么可以实现的
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-09-01 08:58
社区公告
暂无公告