80 lines
1.6 KiB
Lua
80 lines
1.6 KiB
Lua
local moduleName = ...
|
|
local M = {}
|
|
_G[moduleName] = M
|
|
|
|
local USERNAME = ""
|
|
local PASSWORD = ""
|
|
|
|
local SERVER = ""
|
|
local PORT = ""
|
|
local TAG = ""
|
|
|
|
local body = ""
|
|
|
|
|
|
local receive_complete = false
|
|
|
|
function M.receive_complete()
|
|
return receive_complete
|
|
end
|
|
|
|
|
|
local function display(socket, response)
|
|
print(response)
|
|
if(string.match(response,'complete') ~= nil) then
|
|
receive_complete = true
|
|
end
|
|
end
|
|
|
|
function M.config(username,password,tag,sk)
|
|
USERNAME = username
|
|
PASSWORD = password
|
|
TAG = tag
|
|
end
|
|
|
|
function M.login(socket)
|
|
receive_complete = false
|
|
socket:send(TAG .. " LOGIN " .. USERNAME .. " " .. PASSWORD .. "\r\n")
|
|
socket:on("receive",display)
|
|
end
|
|
|
|
function M.examine(socket,mailbox)
|
|
|
|
receive_complete = false
|
|
socket:send(TAG .. " EXAMINE " .. mailbox .. "\r\n")
|
|
socket:on("receive",display)
|
|
end
|
|
|
|
function M.fetch_header(socket,msg_number,field)
|
|
|
|
receive_complete = false
|
|
socket:send(TAG .. " FETCH " .. msg_number .. " BODY[HEADER.FIELDS (" .. field .. ")]\r\n")
|
|
socket:on("receive",display)
|
|
end
|
|
|
|
function M.get_body()
|
|
return body
|
|
end
|
|
|
|
|
|
local function set_body(socket,response)
|
|
print(response)
|
|
body = body .. response
|
|
if(string.match(response,'complete') ~= nil) then
|
|
receive_complete = true
|
|
end
|
|
end
|
|
|
|
function M.fetch_body_plain_text(socket,msg_number)
|
|
receive_complete = false
|
|
body = ""
|
|
socket:send(TAG .. " FETCH " .. msg_number .. " BODY[1]\r\n")
|
|
socket:on("receive",set_body)
|
|
end
|
|
|
|
function M.logout(socket)
|
|
receive_complete = false
|
|
socket:send(TAG .. " LOGOUT\r\n")
|
|
socket:on("receive",display)
|
|
end
|