luasocket/test/testmesg.lua

66 lines
2.2 KiB
Lua
Raw Normal View History

-- load the smtp support and its friends
2004-11-27 08:58:04 +01:00
local smtp = require("socket.smtp")
local mime = require("mime")
local ltn12 = require("ltn12")
2004-05-31 01:30:00 +02:00
-- creates a source to send a message with two parts. The first part is
-- plain text, the second part is a PNG image, encoded as base64.
source = smtp.message{
headers = {
-- Remember that headers are *ignored* by smtp.send.
from = "Sicrano <sicrano@tecgraf.puc-rio.br>",
to = "Fulano <fulano@tecgraf.puc-rio.br>",
subject = "Here is a message with attachments"
},
body = {
preamble = "If your client doesn't understand attachments, \r\n" ..
"it will still display the preamble and the epilogue.\r\n" ..
"Preamble might show up even in a MIME enabled client.",
-- first part: No headers means plain text, us-ascii.
-- The mime.eol low-level filter normalizes end-of-line markers.
[1] = {
body = mime.eol(0, [[
Lines in a message body should always end with CRLF.
The smtp module will *NOT* perform translation. It will
perform necessary stuffing, though.
]])
2004-03-19 07:14:56 +01:00
},
-- second part: Headers describe content the to be an image,
-- sent under the base64 transfer content encoding.
-- Notice that nothing happens until the message is sent. Small
-- chunks are loaded into memory and translation happens on the fly.
[2] = {
headers = {
["content-type"] = 'image/png; name="image.png"',
["content-disposition"] = 'attachment; filename="image.png"',
["content-description"] = 'a beautiful image',
["content-transfer-encoding"] = "BASE64"
},
body = ltn12.source.chain(
ltn12.source.file(io.open("image.png", "rb")),
ltn12.filter.chain(
mime.encode("base64"),
mime.wrap()
)
)
},
epilogue = "This might also show up, but after the attachments"
}
2004-03-19 07:14:56 +01:00
}
2004-11-27 08:58:04 +01:00
--[[
sink = ltn12.sink.file(io.stdout)
ltn12.pump.all(source, sink)
]]
-- finally send it
r, e = smtp.send{
2004-06-22 06:49:57 +02:00
rcpt = {"<diego@tecgraf.puc-rio.br>",
"<diego@princeton.edu>" },
from = "<diego@princeton.edu>",
source = source,
server = "mail.cs.princeton.edu"
}
print(r, e)