Software /
code /
prosody-modules
File
mod_email/mod_email.lua @ 5926:8ff308fad9fd
mod_mam_archive: remove invalid disco#info feature
The feature which was previously added to disco#info was in fact
specified to be used for stream features only (see XEP-0136
section 11).
Emitting it in disco#info is weird at best and breaks stuff at
worst.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Thu, 09 May 2024 10:13:26 +0200 |
parent | 3836: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; 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