this version: D1 [2001-12-10 12:54] Greetings. I've been thinking about basic minimums for implementing IM2000. I don't want to sound like I'm writing code while we're still pondering verbs and protocols, but there are some basic minimums, like data structures for pieces of internet messages. Hopefully we can agree that mail has a body and sender, and we can try to specify more from there. This discussion, I hope, could lead to a better idea of how the protocols themselves will be implemented in the suite. This is my basic pseudo-class for a piece of imail. It does not reflect the notice, the retrieved message, or anything else. It is the piece of mail considered as a gestalt. class imail { string messageid ; this is unique per -server- string sender ; this is the sender's originating mail URN hash headers ; an associative array (name/value pairs) string body ; the message body time time_sent ; the time the message was queued for sending int sender_ip ; the IP from which the message was received string auth_key ; authentication key for message retrieval recipient recipients[] ; users who should receive this message bitfield flags ; management flags } messageid This string uniquely identifies any piece of mail per server for all purposes -- retrieval, management, etc. sender This is the username of the user who sent the message. headers These are the message headers, in full, in "Name: Values" pairs, hashed. body This is the message body. I'm not sure of how we want to handle attachments. time_sent The time, UTC, when the message was received by the IMTP server. sender_ip The IP from which the message was received, for auditing/security. auth_key The key the recipient needs to retrieve the message given some secure method. recipients This is an array of recipient structures. This structure lists the destination address of each user, how many times they've read the message, whether they've been notified of the message, whether they've OK'd deletion of the message, and so on. flags This is a bitfield (could be a hash) of various administrative variables such as "Can this message be autodeleted?" and so on. Thoughts? -- rjbs