2013-04-04 69 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