-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathserver.js
More file actions
71 lines (62 loc) · 2.14 KB
/
server.js
File metadata and controls
71 lines (62 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
HOST = process.env.HOST || "0.0.0.0"; // localhost
PORT = process.env.PORT || 3000;
// when the daemon started
var starttime = (new Date()).getTime();
var mem = process.memoryUsage();
// every 10 seconds poll for the memory.
setInterval(function () {
mem = process.memoryUsage();
}, 30 * 1000);
var fu = require("./fu"),
url = require("url"),
qs = require("querystring");
var nodemailer = require('nodemailer');
fu.listen(Number(PORT), HOST);
fu.get("/", fu.staticHandler("index.html"));
fu.get("/style.css", fu.staticHandler("style.css"));
fu.get("/client.js", fu.staticHandler("client.js"));
fu.get("/jquery-1.2.6.min.js", fu.staticHandler("jquery-1.2.6.min.js"));
fu.get("/status", function (req, res) {
res.simpleJSON(200, {rss: mem.rss, starttime: starttime});
});
fu.get("/join", function (req, res) {
var query = qs.parse(url.parse(req.url).query)
var email = query.email;
if (email === process.env.MAIL_FROM) {
res.simpleJSON(200, {message: "success"});
} else {
res.simpleJSON(400, {message: "Invalid from email"});
}
});
fu.get("/send", function (req, res) {
var query = qs.parse(url.parse(req.url).query)
var to = query.to || 'hereshem@gmail.com';
var subject = query.subject || 'Test email from Node';
var text = query.text || '<h1>Example HTML Message Body for Node</h1>';
var from = process.env.MAIL_FROM || 'Node Mail <hereshem@gmail.com>'
var host = process.env.MAIL_HOST || "smtp.google.com"
var port = process.env.MAIL_PORT || 587
var secure = process.env.MAIL_SECURE || port === 465;
console.log("sending mail for " + to + " from " + from);
var transporter = nodemailer.createTransport({
host: host,
port: port,
secure: secure,
auth: {
user: process.env.MAIL_USER,
pass: process.env.MAIL_PASS,
}
});
transporter.sendMail({
from: from,
to: to,
subject: subject,
html: text
}).then(function (info) {
console.log(info);
res.simpleJSON(200, info);
}).catch((error) => {
console.error(error);
res.simpleJSON(400, error);
});
});