Mercurial > prosody-modules
view mod_email/mod_email.lua @ 5107:1e10ddbf5c87
mod_http_muc_log: Tweak style towards the "modern"
Also accidentally converted the hand-minified CSS to SCSS for easier
editing.
This gets rid of the <q> element because it makes browsers (at least
Firefox) add annoying quotes to any text copied out of them,
interfering with opening non-linkified URLs. That could have been
considered a sort of security mechanism, but convenience trumps
security!
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 04 Dec 2022 23:16:31 +0100 |
parents | 070faeaf51bc |
children |
line wrap: on
line source
module:set_global(); local moduleapi = require "core.moduleapi"; local smtp = require"socket.smtp"; local config = module:get_option("smtp", { origin = "prosody", exec = "sendmail" }); local function send_email(to, headers, content) if type(headers) == "string" then -- subject headers = { Subject = headers; From = config.origin; }; end headers.To = to; if not headers["Content-Type"] then headers["Content-Type"] = 'text/plain; charset="utf-8"'; end local message = smtp.message{ headers = headers; body = content; }; if config.exec then local pipe = io.popen(config.exec .. " '"..to:gsub("'", "'\\''").."'", "w"); for str in message do pipe:write(str); end return pipe:close(); end return smtp.send({ user = config.user; password = config.password; server = config.server; port = config.port; domain = config.domain; from = config.origin; rcpt = to; source = message; }); end assert(not moduleapi.send_email, "another email module is already loaded"); function moduleapi:send_email(email) --luacheck: ignore 212/self return send_email(email.to, email.headers or email.subject, email.body); end