--[[ Send an HTML Caller ID email based on a trigger event using a simplistic template engine --]] module(...,package.seeall) local xap = require("xap") local smtp = require("socket.smtp") local mime = require("mime") local ltn12 = require("ltn12") local lte = require("lte") local file = require("pl.file") info={ version="1.0", description="HTML Caller ID email" } function sendEmail(frame, template) local mesgt = { headers = { to = "user ", subject = "Home Phone Caller ID", ["content-type"] = "text/html", ["content-transfer-encoding"] = "BASE64" }, body = ltn12.source.chain( ltn12.source.string(template{f=frame}), ltn12.filter.chain( mime.encode("base64"), mime.wrap() ) ) } smtp.send{ from="", rcpt="", source=smtp.message(mesgt), user="user@domain.co.uk", password="password", server="smtp.domain.co.uk", port=587 } end function init() local f=xap.Filter() f:add("xap-header","class","xAP-OSD.display") f:add("xap-header","source","mi4.switchboard.BLACK1") local tmpl = lte.compile(file.read("/etc/plugboard/phone.tmpl"), "htmlEmail") f:callback(sendEmail, tmpl) end