0

我有一个网页(使用 Angular 和一些 javascript)从服务器请求数据并显示为表格。

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

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

我将如何做到这一点?

这是我自己的尝试,自然只适用于纯 html 页面,因此缺少 javascript 和 angular 的东西。请注意,这使用的是咖啡脚本。

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()
4

2 回答 2

2

PhantomJS可能是您正在寻找的解决方案。它是一个无头 Webkit 浏览器,可以将服务器上的页面呈现为可以邮寄的形式。其主要应用是为单页应用程序 (SPA) 启用 SEO。这里有更多信息:“单页”JS 网站和 SEO

于 2013-04-05T01:39:58.440 回答
1

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

最好的方法可能是发送一封基本的 HTML 电子邮件,其中包含指向网页的链接,该网页可以执行您希望电子邮件执行的操作。

于 2013-04-04T18:12:25.823 回答