我有一个网页(使用angular和一些javascript),它从服务器请求数据并显示为表格。
我想通过电子邮件发送此网页的副本(使用节点和节点制作者)。
我使用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()
答案 0 :(得分:2)
PhantomJS可能是您正在寻找的解决方案。它是一个无头Webkit浏览器,可以将服务器上的页面呈现为可以邮寄的形式。这个的主要应用是为单页应用程序(SPA)启用SEO。这里有更多信息:"Single-page" JS websites and SEO
答案 1 :(得分:1)
您无法将Javascript添加到HTML电子邮件中。你也不应该这样做。这将是一个巨大的安全问题。
最好的方法可能是发送一个基本的HTML电子邮件,其中包含指向您希望电子邮件执行操作的网页的链接。