发送使用angular作为电子邮件的网页

时间:2013-04-04 18:05:22

标签: html node.js angularjs nodemailer

我有一个网页(使用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()

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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