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()

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu