Codesnippets > Network
FTP and Email Code Snippets
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