--[[
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