[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Lua Socket (SMTP)...
- From: Matthew Percival <matthew@...>
- Date: Tue, 02 Aug 2005 15:01:46 +1000
G'Day,
I just have a couple of questions about the SMTP side of Lua Socket.
The first, and likely easiest, question relates to HTML emails. I do
not really the specifics of how they are sent, but I believe there are
just some slight differences in the headers between a plain text email
and a HTML email. As such, is it possible to send HTML emails with Lua
Socket? If so, what are the additional lines required for a basic HTML
email?
Secondly, while I have been able to successfully send regular emails
with Lua Socket, I have not yet managed to send an email with a simple
attachment. The LED showing CPU activity glows almost the whole time,
but nothing ever happens --- I end up having to kill the script after
waiting several minutes. I have copied my source below: I would imagine
I have made a simple error that can be quickly spotted by someone more
experienced. If not, then any suggestions on how to debug this would be
greatly appreciated.
-- Matthew
--begin source
#!/usr/local/bin/lua
smtp = require("socket.smtp")
mime = require("mime")
ltn12 = require("ltn12")
mailserv = "XXX"
mailport = "25"
from = "<XXX>"
rcpt = { "<XXX>", "<XXX>" }
mesgt = smtp.message{
headers = {
to = "XXX",
subject = "Test Lua Email"
},
body = {
preable = "This email contains attachments.",
[1] = {
body = mime.eol(0, [[
"With any luck, we are able to see a Lua-sent
email here."
]])
},
[2] = {
headers = {
["content-type"] = 'text/plain; name="smtp-test.lua"',
["content-disposition"] = 'attachment; filename="smtp-test.lua"',
["content-description"] = 'the send script\'s source',
["content-transfer-encoding"] = "BASE64"
},
body = ltn12.source.chain(
ltn12.source.file(io.open("smtp-test.lua", "r")),
ltn12.filter.chain(
mime.encode("base64"),
mime.wrap()
)
)
},
epilogue = "A few words at the end..."
}
}
r, e = smtp.send {
from = from,
rcpt = rcpt,
source = mesgt,
server = mailserv,
port = mailport
}
if (e) then
io.stderr:write("Could not send email: ", e, "\n")
end
--end source