You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.4 KiB
Lua

local msg = function(mime, s)
local res = {}
local a = function(s) table.insert(res, s) end
a('Content-Type: ')
a(mime)
a('; charset="utf-8"\r\nContent-Transfer-Encoding: quoted-printable\r\nContent-Disposition: inline\r\n\r\n')
a(s)
a('\r\n\r\n')
return table.concat(res)
end
local plaintext = function(subject, s)
local res = {}
local a = function(s) table.insert(res, s) end
a('Subject: ')
a(subject)
a('\r\n')
a('MIME-Version: 1.0\r\n')
a(msg('text/plain', s))
return table.concat(res)
end
local html = function(subject, s)
local res = {}
local a = function(s) table.insert(res, s) end
a('Subject: ')
a(subject)
a('\r\n')
a('MIME-Version: 1.0\r\n')
a(msg('text/html', s))
return table.concat(res)
end
local plaintext_html = function(subject, s1, s2)
local boundary_string = 'wedcoi' -- TODO:check boundary string against s1 and s2
local res = {}
local a = function(s) table.insert(res, s) end
a('Subject: ')
a(subject)
a('\r\n')
a('MIME-Version: 1.0\r\nContent-Type: multipart/alternative; boundary="')
a(boundary_string)
a('"\r\n\r\n')
a('--')
a(boundary_string)
a('\r\n')
a(msg('text/plain', s1))
a('\r\n\r\n')
a('--')
a(boundary_string)
a('\r\n')
a(msg('text/html', s2))
a('--')
a(boundary_string)
a('--')
return table.concat(res)
end
return {
plaintext=plaintext,
html=html,
plaintext_html=plaintext_html
}