nodemcu-firmware/lua_modules/email/imap.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