1. Help with my e-mail project
I am having trouble debugging my POP.e file. I would greatly appreciate
any help.
-- error = POPConnect(server, username, password)
-- POPDisconnect()
-- sequence = POPRetrieveMessages()
-- error = POPDelete(integer msg)
-- error = POPRetrieveHeader(integer msg)
include eusock\winsock.ew
constant TRACE_ON = 1
constant errBadUsername = "Bad user name"
constant errBadPassword = "Bad password"
integer response
object errorRetn
object data
integer client
function readLine()
sequence l
l = {}
while 1 do
data = WsockReadData(client,1)
if sequence(data) then
if TRACE_ON then
puts(1, data)
end if
l = l & data
if length(l) > 1 then
if l[length(l)] = 10 and l[length(l)-1] = 13 then
return l[1..length(l)-2]
end if
end if
end if
end while
return l
end function
procedure writeLine(sequence s)
if TRACE_ON then
puts(1, s)
end if
if WsockSendData(client,s & {13,10}) then
end if
end procedure
global function POPConnect(sequence server, sequence username, sequence
password)
errorRetn = WsockInit()
if errorRetn != 0 then
return errorRetn
end if
client = WsockCallSocket(server,110)
if client = SOCKET_ERROR then
errorRetn = WsockRelease()
return client
end if
data = readLine()
writeLine("USER " & username)
data = readLine()
for i = 1 to 3 do
if find("+OK",data) then
data = {}
exit
else
writeLine("USER " & username)
end if
data = readLine()
end for
if find("-ERR",data) then
writeLine("QUIT")
WsockCloseSocket(client)
errorRetn = WsockRelease()
return errBadUsername
end if
writeLine("PASS " & password)
data = readLine()
for i = 1 to 3 do
if find("+OK",data) then
data = {}
exit
else
writeLine("PASS " & username)
end if
data = readLine()
end for
if find("-ERR",data) then
writeLine("QUIT")
WsockCloseSocket(client)
errorRetn = WsockRelease()
return errBadPassword
end if
return 0
end function
socketTrace = 1
errorRetn = POPConnect("cyberbury.net","JJProg","vb40032")
if sequence(errorRetn) then
puts(1, errorRetn)
end if
WsockCloseSocket(client)
errorRetn = WsockRelease()