Mercurial > prosody-modules
view mod_email/mod_email.lua @ 3791:34a8f9f996ec
mod_nodeinfo2: Expose XMPP services
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Mon, 30 Dec 2019 22:43:01 +0100 |
parents | 74d7e59b3511 |
children | 070faeaf51bc |
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; headers["Content-Type"] = 'text/plain; charset="utf-8"'; 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