xref: /inferno-os/module/pop3.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.Forsyth# pop3 protocol independent access to an email server.
2*46439007SCharles.Forsyth
3*46439007SCharles.ForsythPop3: module
4*46439007SCharles.Forsyth{
5*46439007SCharles.Forsyth	PATH: con "/dis/lib/pop3.dis";
6*46439007SCharles.Forsyth
7*46439007SCharles.Forsyth	# all functions return status (-ve when error)
8*46439007SCharles.Forsyth
9*46439007SCharles.Forsyth         # open a connection with the pop3 server
10*46439007SCharles.Forsyth         # requires the email server's name or address or nil if a default server is to be used
11*46439007SCharles.Forsyth	# returns (status, errror string)
12*46439007SCharles.Forsyth         open: fn(user, password, server: string) : (int, string);
13*46439007SCharles.Forsyth
14*46439007SCharles.Forsyth	# stat the user's mailbox
15*46439007SCharles.Forsyth	# returns (status, error string, no. messages, total no. bytes)
16*46439007SCharles.Forsyth	stat: fn(): (int, string, int, int);
17*46439007SCharles.Forsyth
18*46439007SCharles.Forsyth	# list the user's mailbox
19*46439007SCharles.Forsyth	# returns (status, error string, list of (message no., bytes in message))
20*46439007SCharles.Forsyth	msglist: fn(): (int, string, list of (int, int));
21*46439007SCharles.Forsyth
22*46439007SCharles.Forsyth	# list as above but return (status, error string, list of message nos.)
23*46439007SCharles.Forsyth	msgnolist: fn(): (int, string, list of int);
24*46439007SCharles.Forsyth
25*46439007SCharles.Forsyth	# top of a message given it's no.
26*46439007SCharles.Forsyth	# returns (status, error string, message top)
27*46439007SCharles.Forsyth	top: fn(m: int) : (int, string, string);
28*46439007SCharles.Forsyth
29*46439007SCharles.Forsyth	# full text of a message given it's no.
30*46439007SCharles.Forsyth	# returns (status, error string, message)
31*46439007SCharles.Forsyth	get: fn(m: int) : (int, string, string);
32*46439007SCharles.Forsyth
33*46439007SCharles.Forsyth	# delete a message given it's no.
34*46439007SCharles.Forsyth	# returns (status, error string)
35*46439007SCharles.Forsyth	delete: fn(m: int) : (int, string);
36*46439007SCharles.Forsyth
37*46439007SCharles.Forsyth         # close the connection
38*46439007SCharles.Forsyth	# returns (status, error string)
39*46439007SCharles.Forsyth         close: fn(): (int, string);
40*46439007SCharles.Forsyth};
41