diff options
author | Tom Smeding <tom@tomsmeding.com> | 2025-02-11 22:28:42 +0100 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2025-02-11 22:28:42 +0100 |
commit | e82480ae6c4f6ae60904ac82071ca38d570d5be6 (patch) | |
tree | 8dde7df22379a8bea0c3b752f1ba9596622db108 /modules/$email/email.js | |
parent | 4647331ff4f87598adc1dee354377284d95be60e (diff) |
Put disabled modules in modules/$disabled
Diffstat (limited to 'modules/$email/email.js')
-rw-r--r-- | modules/$email/email.js | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/modules/$email/email.js b/modules/$email/email.js deleted file mode 100644 index d7fe171..0000000 --- a/modules/$email/email.js +++ /dev/null @@ -1,71 +0,0 @@ -var cmn = require("../$common.js"), - fs = require("fs"), - child_process = require("child_process"), - bodyParser = require("body-parser"); - -var ratelimitAllowed = (function() { - var numEvents = 20, period = 24 * 3600 * 1000; - var eventList = []; - - return function ratelimitAllowed() { - var now = new Date(); - while (now - eventList[0] > period) eventList.unshift(); - if (eventList.length >= numEvents) return false; - eventList.push(now); - return true; - }; -})(); - -function sendEmail(recip, text) { - var opts = { - stdio: ["pipe", "inherit", "inherit"] - }; - var proc = child_process.spawn("msmtp", ["--read-recipients"], opts); - - // Make sure it doesn't run indefinitely - var timeout = setTimeout(() => {proc.kill();}, 5000); - proc.on("exit", () => clearTimeout(timeout)); - proc.on("error", err => { - console.log("email: Failed to start msmtp:", err); - clearTimeout(timeout); - }); - proc.stdin.on("error", err => { - console.log("email: Failed to write to msmtp:", err); - clearTimeout(timeout); - }); - proc.stdin.end( - "To: " + recip + "\n" + - "Subject: Mail from email module\n\n" + - text - ); -} - -module.exports = function(app, io, moddir) { - var allowedRecipients, password; - - try { - allowedRecipients = - fs.readFileSync(moddir + "/allowed_recipients.txt").toString().trim().split("\n"); - password = fs.readFileSync(moddir + "/password.txt").toString().trim(); - } catch (e) { - console.error(e); - return false; - } - - app.post("/email", bodyParser.json(), function(req, res) { - var body = req.body; - console.log(body); - if (typeof body != "object" || - typeof body.password != "string" || - typeof body.to != "string" || - typeof body.text != "string" || - body.password != password || - allowedRecipients.indexOf(body.to) == -1) { - res.status(400).send("Invalid request"); - return; - } - var text = body.text.slice(0, 1000000); // 1 MB is enough - sendEmail(body.to, body.text); - res.end(); - }); -}; |