Codesnippets > Network

FTP and Email Code Snippets

<< < (2/2)

MrTAToad:
Good idea!

Kitty Hello:
I have some... welll. not too good POP3 code if it's of any use...

--- Code: (glbasic) ---Pop3_Login("post.server.com", 110, "username@server.com", "mailpassword")
LOCAL count% = Pop3_GetMailCount()
STDOUT "Mail count: " + count + "\n"
STDOUT  Pop3_GetSubject$(1) + "\n"
Pop3_Quit()

KEYWAIT




GLOBAL gPop3Sock% = -1
FUNCTION Pop3_Login%: server$, port%, username$, password$
SOCK_INIT()

gPop3Sock% = SOCK_TCPCONNECT(server$, port%)

IF gPop3Sock% = -1
SOCK_SHUTDOWN
RETURN FALSE
ENDIF

// read hello message
LOCAL reply$
WHILE TRUE
LOCAL rv% = SOCK_RECV(gPop3Sock%, reply$, 1024)
IF rv<>-2 THEN BREAK // anything but "not ready"
WEND
STDOUT "Recv: "+reply$+"\n"


IF MID$(Pop3_Cmd$("USER "+username$), 0,3)= "+OK"
IF MID$(Pop3_Cmd$("PASS "+password$), 0,3)= "+OK"
RETURN TRUE
ENDIF
ENDIF

Pop3_Quit()
RETURN FALSE
ENDFUNCTION

FUNCTION Pop3_GetMailCount%:
IF gPop3Sock% = -1 THEN RETURN 0
LOCAL ret$ = Pop3_Cmd$("STAT")
IF MID$(ret$, 0,3)= "+OK"
RETURN INTEGER(MID$(ret$, 4))
ENDIF
RETURN 0
ENDFUNCTION


FUNCTION Pop3_GetSubject$: imail%
IF gPop3Sock% = -1 THEN RETURN

LOCAL ret$ = Pop3_Cmd$("TOP "+imail + " 10")
IF MID$(ret$, 0,3)= "+OK"

LOCAL lines$[]
SPLITSTR(ret$, lines$[], "\r\n")
FOREACH l$ IN lines$[]
IF LCASE$(MID$(l$, 0, 9)) = "Subject:"
RETURN MID$(l$, 10)
ENDIF
NEXT
ENDIF
RETURN ""
ENDFUNCTION




FUNCTION Pop3_Quit%:
IF gPop3Sock% = -1 THEN RETURN
Pop3_Cmd$("QUIT");

SOCK_CLOSE(gPop3Sock%)
gPop3Sock% = -1
SOCK_SHUTDOWN
ENDFUNCTION




FUNCTION Pop3_Cmd$: cmd$
LOCAL reply$
STDOUT "Send: "+cmd$+"\n"
IF SOCK_TCPSEND(gPop3Sock%, cmd$+"\r\n") > 0
WHILE TRUE
LOCAL rv% = SOCK_RECV(gPop3Sock%, reply$, 32767)
IF rv=-1 THEN RETURN "-FAIL ?" // error
IF rv>=0 THEN BREAK // read or disconnected
WEND
STDOUT "Recv: "+reply$+"\n"
ELSE
STDOUT "Send failed\n"
ENDIF
RETURN reply$
ENDFUNCTION

--- End code ---

MrTAToad:
Ah - thats how you do it :)

Navigation

[0] Message Index

[*] Previous page

Go to full version