2013-04-04 72 views
0

我有一个网页(使用角度和一些JavaScript),从服务器请求数据并显示为一个表。发送使用角度作为电子邮件的网页

我想通过电子邮件发送此网页的副本(使用node和nodemailer)。

我使用http.get来获取网页的html,但自然这只会让我的HTML。我想将浏览器中显示的页面(加载完成后)放入电子邮件中。

我该如何做到这一点?

这是我自己的尝试,自然只适用于纯html页面,因此缺少javascript和角度的东西。请注意,这使用coffeescript。

nodemailer = require("nodemailer") 
http = require 'http' 

sendmail = (html)-> 
    transport = nodemailer.createTransport("SMTP",{ 
    service: "Gmail" 
    auth: 
     user: u 
     pass: p 
    }) 

    mailOptions = 
    from: f 
    to: t 
    subject: s 
    html: html 

    transport.sendMail mailOptions, (err,res)-> 
    console.log err if err? 
    do transport.close 

http.get 'http://localhost:3000/something', (res) -> 
    res.on 'data', (data) -> 
    sendmail data.toString() 

回答

2

PhantomJS可能是您正在寻找的解决方案。这是一个无头的Webkit浏览器,可以将您的服务器上的页面呈现为可以邮寄的表单。这样做的主要应用是为单页应用程序(SPA)启用搜索引擎优化。在这里有更多的信息:"Single-page" JS websites and SEO

+0

谢谢,这应该解决我认为的问题。 – user2005152 2013-04-05 14:50:02

1

您无法将Javascript添加到HTML电子邮件中。你也不应该这样做。这将是一个巨大的安全问题。

最好的方法可能是发出一个基本的HTML电子邮件,其中包含一个指向您想要电子邮件的网页的链接。

+0

我真的不需要添加JavaScript的电子邮件,只需发送一个看起来像页面的电子邮件,就好像它是用JavaScript呈现。 让人们访问网页是不是一个选项,因为这需要重新整个登录系统以及有问题的页面 – user2005152 2013-04-05 08:18:05

+0

这个答案没有解决方法来转换基于角度/ JavaScript的转换为no-js inline-css格式,在电子邮件中工作 – 2017-03-11 00:33:30